With Plone 4, the Dexterity content-type-development framework has become a practical and desirable alternative to the Archetypes framework Plone has featured in previous versions. This course will show how it's possible to use Dexterity now to build reliable and maintainable new content types for Plone 4+.
Prerequisites: Basic Python, HTML and XML. Command-line skills on your platform of choice.
So you've heard about Plone, this smart, secure and powerful content management system and you'd like to get started. Where to begin? This training course is for you.You'll learn how to install Plone, how to create your first website and get started adding content, how to get quick, simple victories for your new project, and how to deploy your site when you're ready to go live.
Learn to develop and deploy like a Plone pro! On the first day, you will learn how to set up a powerful and productive development environment, employing the tools the professionals use to debug, document and release manage their code. The second day will focus on caching, performance optimisation, deployment configuration and application lifecycle management.
Technologies covered will include: Buildout; mr.developer; the Python debugger; plone.reload; Sphinx; PyPI-style distribution management; plone.app.caching; HAProxy; Varnish; and nginx.
Prerequisites: Some Plone customization or development experience will be helpful to bring the content into context. Familiarity with the command line will be necessary for day two.
Pyramid has emerged as a fast, modern, lightweight web framework for the Pylons and Zope communities. When you just need a web app, and not a full CMS, Pyramid lets you retain many of the same Plone technologies. This hands-on tutorial covers a little about a lot: practical introductions to the most common facilities. Fun, fast-paced, and most certainly not aimed at experts.
Prerequisites: Basic Python, HTML
This training session includes front-end design of a Plone 4.0 site from start to finish using two methods: Traditional Plone theming, and using plone.app.theming. The training will be a hands-on, introductory walk-through of the process, using a pre-created sample design. Attendees will need their computers and will be expected to follow along on their own local instances.
Prerequisites: Knowledge of XHTML and CSS; Basic familiarity with Plone.
Is this your first Plone conference? Are you looking to meetup with new people in the community? Come have breakfast before the conference starts 1 on 1 with some of our senior members. They will give you the ins and outs, who's who, and answer any questions you may have about how to get the most out of the conference or the community. (Hint: this is the first step!)
UPDATE: This breakfast will be at Ducca San Francisco. It is large enough to house everyone but please bring a jacket if you want to sit outside.
A look at the new user-interface (CMSUI) and other recent development for Plone that may or may not end up defining the next major version of our favorite CMS.
This talk will introduce the audience to the Web Services Gateway Interface protocol, and some of the more commonly used toolsets surrounding it. It is aimed at developers with minimal experience.
From the beginning, the Zope Catalog has provided Plone with out-of-the-box content search, an important feature not found in all open source content management systems. However, search engine technology has been racing ahead and user expectations of what search should do have been changing. At the same time, search engines have gone from premium enterprise product to cheap commondity. The most important search engine worth considering these days is also open source: Lucene/Solr. Several add-on products exist that integrate Solr with Plone, and interest in this technology is growing. What does Solr bring to Plone? Should Solr become part of Plone core?
This talk will introduce the audience to the Pyramid web framework, which is a subproject of the Pylons Project. It is aimed at developers who possess some experience writing web applications on other platforms.
Learn how Sass and Compass keep your style sheets DRY and ultimately make CSS fun again.
Users experience your website from many different viewpoints and using many different technologies -- large high-resolution monitors, iPads, iPhones, Androids, Blackberries, older laptops and handhelds; the list goes on. And then we have users who make adjustments such as dramatically narrowing their browser windows to accommodate lots open windows in their work space... We can design for an optimal viewing experience by using standards-based technologies that are more flexible and adaptive to the media that renders them. Using fluid grids, media queries, and flexible images, you can create a far more responsive web design -- no matter what the technology or user preference.
Site conversions are a pain. Clients expect sites that look and act exactly like their old site, no matter how complicated the theme or large the site. Normally they don't expect to pay a lot for it either. This talk take you though the tools you need to convert a site in a day*, regardless of site size or theme complexity. Covers mr.migrator, collective.transmogrifier, funnelweb and diazo.
* Normal rules of treating claims in a conference abstract as hyperbole apply
Pyramid is an "un-opinionated" framework. There is a fair amount of terminology to learn. There are multiple configuration systems, several templating systems, dozens of persistence engines, and several ORMs being used with Pyramid. There is an assumption that users either know or are willing to learn Python. There are multiple ways to launch launch a Pyramid application. There is no mandated file system layout.
Much like the stages of grief, there are some very typical stages that a new Pyramid user goes through when given this amount of freedom: panic, paralysis of choice, terminology overload, "where does this piece of code go?", (if then need it) authentication and authorization problems, and finally, appreciation.
Recently, an exciting new addition to Plone add-on citizens has been published, allowing users to work together in real time on editing content simultaneously, similarly to how Google-docs works. The technology behind it will be introduced and demystified while emphasis will be given on getting you started and using it for your sites. Readily available features covering collaborative editing, messaging and micro-blogging will be demonstrated with real-world examples. Finally, additional features that can be readily developed, leveraging the existing stack, will be explored.
There is no right or wrong when it comes to managing multilingual sites. You have several usecases which you can solve in different ways. This talk will go through these use cases and what you should think about when choosing a solution. This talk has been presented 2010 and 2009.
A case study of how our university upgraded to Plone 4.1 with all the pros and cons of trying to be on the cutting edge.
WSGI middlewares were designed to allow new features to be injected intodownstream applications without any special handling code in the applicationitself, a use-case that isn't in much use currently. This tutorial willprovide you with the skills to intercept requests and responses and modifythem to improve other applications.
Diazo is the new Plone theming technology that lets you quickly and easily build a theme for your site from a static webpage and a simple rules file. This is an introductory level tutorial covering the key, basic features.
Tales of building high availability "web scale" Plone platform for an Emergency Services organisation in Australia. Covers what it takes to make Plone geo-redundant and realisticly load tested in order to survive the slashdot effect, earthquakes, floods, storms and tsunamis.
A basic introduction to CSS, and how you can use Firebug to help you with your styles.
Groundwire is building a medium-scale business networking website for Net Impact, an international NGO which empowers individuals to use the power of business to create a more sustainable world. The site features a directory of some 40,000 members, a job board, and registration for Net Impact's annual conference.
Net Impact's main database of members is in Salesforce.com, but Plone needs to have access to up-to-date member data in order to drive the member directory and allow members to log in. This talk will explain the design challenges that the project faced and how Plone and Dexterity made it possible to solve them.
Sessions are fundamental to most web applications, followed quickly by various levels of application caching. This talk focuses on effectively using Beaker (and friends) to get the most out of Pyramid by understanding the different levels and options of caching, how Beaker helps avoid the thundering herd problem, and when/where you'll want to change your session options for the load you're experiencing.
Plone offers great security, community, and a solid, mature development platform for websites - yet often falls below people's radar when they are looking for a content management system.
This talk describes some straightforward and inexpensive methods of promoting your Plone business to potential clients and the press to take advantage of these strengths. We'll also discuss common issues people have in this area and use the Plone brand to your advantage.
The target audience is anyone - but it may be particularly useful to those non-coders and those who interact directly with the product. This will be an interactive session - so be prepared to be actively involved.
Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite your customer needs is essential.
In this talk I would like to present recent successful story using closely together Pyramid and Plone. Basing on this example I wished to highlight the main reasons for using Plone as a CMS only and letting Pyramid do the rest (ERP). Moreover, I will underscore good and bad practices during integration process and how to make farsighted architectural decisions in a right moment.
This talk will cover URL Dispatch routing in the Pyramid framework which is both similar to and more powerful than Django routing and Pylons Routes. It is aimed at developers who possess some experience writing web applications and requires very little knowledge of Pyramid.
In the many years that we've been providing Plone consulting services, we've done some projects where Plone was clearly not the best choice of technology for the job, and we paid the price of making the wrong decision.
In other projects, we've steered the customer to use one of the Python web application frameworks such as Django or Pyramid, and we and the customer have been pleased with the results.
This talk will explore scenarios when a full-featured CMS such as Plone is the right tool for the job, and when a more lightweight web framework is preferable.
On the opening night, we encourage everyone to walk over and join us all at Belden Place. We have coordinated with the owners of all of the restaurants to prepare for an extra large croud on a first come first serve basis (it is recommended that you make reservation online). Family and conference goers alike are welcome.
There are 8 different restaurants, from Catalan to Italian to French in a wonderful outdoor setting. The weather should be perfect, but it could get chilly so please bring a coat if you plan to sit outside.
For full details, please see: http://ploneconf.org/event/dinner
"Just build it."
How many times have you heard (or said) that? Technologists have a unique role and responsibility in the design of experiences. However, they are far too often ignored when discussing UX in a room full of designers. As digital products become increasingly complex, technologists will be all the more vital for them to succeed and delight. What does this mean for the day-to-day work of technologists and how will that change how they work from this point forward?
Like workflow, Plone has a state. Come here for fuxxy wuzzy good feelings and a backrub* from the president of the Plone Foundation and it's cofounder.
* This statement has not been validated by the speakers.
How to make Plone a success story by improving developing experience through better documentation and newcomer friendly community processes. What's the current situation and how we can make it better.
No one lives forever. Life sucks and it is too short to be spend banging your head against unsurmountable heaps of undocumented legacy code. By improving developer community experience and documentation we can make Plone a success story.
The talk will educate developers and senior Plone community members how to make tools and documentation accessible for not-so-senior members. Also, newcomers can learn what's the state of the art how one should approach Plone development and start sharing their newcome knowledge from the beginning.
A round-up of most of the mistakes people developing/deploying Plonecategorized by experience level.
Tools and ideas to make your intranet viable and relevant, bringing users back to it day after day... without flogging!
In this talk I will show how a Pyramid application can be deployed using a front end web server, like Apache or Nginx. I will also cover how to automate deployment using buildout and a PyPI clone. I will also go into the subject of post-deployment creation off variety maintenance scripts and cron jobs which meant to perform a number application specific tasks through Pyramid.
Our community has been using buildout with measured success (and occasional cursing) for almost half-a-decade. This talk attempts to describe some lessons learned in building a deployment buildout with lots of inter-related parts. I will aim to present my own observations and then encourage discussion, feedback, and questions to expose similar informal knowledge from other community members for wider consideration. Topic covered include configuration, layouts, security, must-have recipes, and special attention to CMMI parts.
Paul will give a tour of characters and events just before and during the early years. Who did what and why. Geir will handle the second half of the Foundations' life, including the present and directions the current board is going.
This talk will cover the Zope and Plone features that make writing secure code easy, like AccessControl and plone.app.protect along with the common mistakes people make in their use. Where possible examples from Plone security flaws will be included alongside information on how we handled their release.
Year in summary plus general elections for the next Plone Foundation board.
Not sure what to do Firday Night? Hop on the M muni and stop at 153 Noe where the Sixies are hosting a Friday night get together at their pad.
New to Plone and/or PloneConf? This is a can't miss. Find the origin of the myth, the legend, the Sixies.
Directions from the conference venue: http://maps.google.com/maps?saddr=153+Noe+St,+San+Francisco,+CA+94114&daddr=835+Market+St,+San+Francisco,+CA+94103+(san+francisco+state+university+downtown+campus)&hl=en&sll=37.775837,-122.420182&sspn=0.029274,0.041113&geocode=FZFFQAId5dCz-A%3BFYqNQAIdvjm0-CnFKZMPhoCFgDGAxaTxOnnpyg&vpsrc=0&dirflg=r&ttype=now&noexp=0&noal=0&sort=def&mra=prev&t=m&z=15&start=0
This talk will cover some high level strategies that CoActivate and Karl, both real world relatively large web applications, have used to deal with increasing complexity. Various takeaways and lessons learned will be discussed, as well as an overview of where they were coming from and where they are headed.
Dexterity, Diazo and Deco have long been promised as integral components in Plone's future. Unbeknownst to many, all of them have made great strides recently and either are, or are fast becoming, production-ready. This talk will give a summary of the how far along each of the three technologies is, and discuss how they fit together to make a compelling improvement to Plone.
Successfully landing a large scale project means immediately having to deal with resource demands and processes you may not have dealt with in smaller projects. This talk will provide an overview of what to expect, and how to survive.
Have you ever seen or used Django or Flask Debug Toolbar? Pyramid Debug Toolbar started as a port of them to Pyramid and is becoming it's own beast. For development it provides a set of panels that display various debug information about the current request/response and for exception handling it powers a lightly sanded down version of the Werkzeug debugger from the Pocoo team. In this talk I will present how the debug toolbar works while you’re developing and how you can use pyramid_exclog to handle your exceptions when you’re in production.
In a busy schedule people tend to feel that testing gets in the way. This talk aims to demonstrate why we should do testing, what kinds of testing are there anyway, and how can this be done cheaply and efficiently.
Learn why US Bank went with Plone over tools like Sharepoint and Liferay, what their content migration strategy was, user training and system rollout, and then recent lessons from creating a multi-ligual site and rolling out internationally.
Pyramid tweens were introduced in Pyramid 1.2 and you might have been using them without knowing it! This talk will dive into what tweens are, how they work and how they are useful. We will look at what existing tweens do, and how to create our own.
An overview of how Plone uses and abuses Jenkins CI to maintain a testing infrastructure (unittests, static code analysis, selenium testing) and handle releases (packaging, deployment, installer creation). Also some discussion of what else we could be doing.
What is the secret to turning a CMS prospect into a Plone client? As Content Management Systems have become mainstream, customers are more sophisticated in the questions they ask and initial contacts can include in-depth comparisons to competitors. Organizing your information and having a plan to pitch Plone is the key to successful client acquisition. In "How to Seal the Deal", Calvin will unveil the process he follows to win.
This is a run down of the mistakes we made and the lessons we learnt trying to scale a big Plone site with un-anticipated traffic once the site had gone live and the budget all been spent. Find out what we did wrong, and how we fixed it.
A lot of Brazilian Government sites use Plone as theirs CMS but when it comes to community collaboration we've been way behind. This talk will explain why this gap happens.
This talk will describe how to implement an application server with Pyramid and MongoDB to aggregate/analyze Android stack traces submitted using ACRA (http://code.google.com/p/acra/). ACRA is a library enabling Android Applications to automatically post their crash reports. This talk is aimed at developers with minimal experience
This presentation will demonstrate developer and end-user add-ons for managing named human-to-content relationships.
collective.subscribe is a library aimed at making it easy for developers to create applications indexing relationships between humans and content items. Humans (site members, or anyone else with an email address or OpenID) can subscribe to content using named predicates such as "like", "dislike", "follow", "invited", "confirmed attendance" or any other arbitrary relationship. Such relationships are indexed in a purpose-specific "Subscription Catalog" for use by applications needing to track them. An example add-on demonstrating like/dislike buttons will be demonstrated along with collective.inviting, a calendar event invitations management add-on for Plone. collective.subscribe supports any Python-based application that can use the ZODB and Zope Component Architecture, and is liberally licensed (MIT).
** Currently, these packages are unreleased and under a different set of names (currently uu.subscribe and uu.inviting). I intend to release these July 24, 2011 to PyPI and collective repository on GitHub. Source is currently available in Bazaar branches on launchpad.net:
Looking to theme a site more complex than a simple three-column CSS layout? Excellent. Wanting to roll out two to three completely separate designs on a single Plone instance? Great! Dying to theme Plone’s backend? We weren’t either, until we did :)
Come learn how we did it and the tips/tricks we used to get there.
So you decided to use Plone for your project or are considering it. One of the greatest benefits about that decision is that you get to work with Python. Don't stay on the shallow end of the pool, go deeper into Python and see how you can use it to make your site work better and maybe even do some parts of it independent Python apps.
We may know that our content is safely stored in the ZODB, but there's a lot more than the Zope Object Database can do for us. In this talk we cover some tips and tricks to do things like rescue crashed databases, do ad-hoc reports of database objects, view the contents of the ZODB outside of Plone, using relstorage and more.
Make Plone lean and mean. By focusing on smart choices over the entire lifetime of a site, from technical design to layout to deployment, you can make Plone a good option even for smaller, resource-challenged organisations or departments. Reduce operating and upgrade costs, and maintain that lean, toned, up-to-date appearance over the years your site runs!
This is the story of how O'Reilly Media began using RDF, SPARQL, and Pyramid to sell $4 million in Ebooks. Learn from our missteps, disasters, and Really Bad Ideas(TM).
Transmogrifier is a fantastic tool for moving content from one website to another. Simple, flexible and powerful, it makes the difficult tasks of migration easy and the impossible possible. But there's more to migrating with transmogrifier than just learning the tool. The everyday task of managing content can lead to complex problems. You need a plan. In this talk, we'll look at a real-world example of the migration of a large, content-heavy website from Liferay to Plone. We'll talk about where the hidden traps were found, the tools we used to get past them, and the knowledge that would have helped us avoid them in the first place.
Where I work, most developers come to Plone from Drupal. To build really great websites they must let go of old idioms and learn to think in Plone. In this talk I will explain how to use the features of Plone that are most essential in solving your customers' problems. To better emphasize the mindset shift, I'll compare with equivalent approaches in Drupal.
There're two target audiences for this talk: 1) the small set of integrators taking this same journey between CMSes, and 2) the wider Plone community curious about how the Plone out-of-the-box experience compares to another CMS from an integrator's perspective.
Solr, a powerful enterprise search platform, is more than just a ZCatalog replacement. This talk shows how you can use Solr to provide a unified search experience across multiple web sites, both Plone and non-Plone.
Microblogging and activity streams are core features in any social networking environment, yet sorely missing in Plone. Collective.kwetter integrates a Zeromq-based messaging platform, designed and coded to provide Twitter-like microblogging capabilities inside of Plone
plone.app.discussion is an extensible and flexible commenting framework for Plone. Out of the box, it provides a state-of-the-art commenting system and is well integrated into Plone itself. It is a core component since Plone 4.1, but also available as add-on product for Plone 3 and 4.
The talk will give an overview of the out-of-the-box functionality and design principles of plone.app.discussion. Furthermore it will show how plone.app.discussion provides functionalities such as comment moderation workflows and batch editing of comments, email notifications, catalog integration and comment listings.
I will show how integrators can extend plone.app.discussion with existing add on products and provide hands-on examples of how to extend the commenting form, and how to customize comment moderation workflows and notifications.
In addition I would like to give the audience an impression how I spend my Google Summer of Code in Barcelona working on plone.app.discussion and how this helped me to become more involved into the Plone community and a better developer.
In this talk I'll walk through some highlights of SQLAlchemy internal design and methodology, based on the upcoming chapter for the "Architecture of Open Source Applications" book. We'll have a little bit of SQLAlchemy philosophy, an overview of the Core, and then a 500-ft view of how the ORM goes about things, with plenty of cool looking diagrams.
The goal for PloneEdu (ploneedu.org) is to provide opportunities for collaboration, knowledge sharing, and support of Plone for all levels and types of educational uses. In May 2010, we launched our website to promote PloneEdu and over the last year we have made significant progress in developing the community. We would like to share our success stories with the entire Plone community.
In this session, you will be introduced to the PloneEdu effort, you will here about what we have accomplished over the past year, what we are planning for the next year and how you can participate in our activities. As part of the talk you will have an opportunity to share what you are are doing in the education sector and pitch your ideas for potential projects for which you think there is a need.
Many organizations have big ideas about what they want their website to do,but a budget that common wisdom would judge too modest for those aspirations.The University of Minnesota Press had lots of great ideas for a cutting-edge,dynamic, data-driven site where users would get lost exploring their remarkable catalog of books. Their budget, however, was only enough to cover a modest 200hours of development. In this talk we describe how we were able to create the site that UMP dreamed of within their budget constraints by using Plone, plone.app.theming, and Plone add-ons such as eea.factednavigation. Visit the site at upress.umn.edu.
Did you know that you don’t have to use Zope in order to use ZODB? Writing an application in Pyramid doesn’t mean you have to give up everything you’ve learned to love about Zope and Plone. With Pyramid, ZODB and repoze.catalog you can have your cake and eat it too. This talk will show how easy it is create a ZODB based application with search capability in Pyramid using tools like pyramid_zodb, repoze.catalog and Jove.
A story about testing different visual editors in Plone 4, what feedback we got from our users, what choices we made in the end and how easy it can be to add customizations,...
I'll cover the processes, people, and groups that make Plone happen and how to become a contributor.
Shifting paradigms is never easy: finding a way to exploit existing skills in a new context can ease some of the pain, and get you to “productive” sooner. This talk is aimed at existing Python web developers who are interested in deploying apps to one or more mobile platforms (tablets, phones, etc.) without completely retooling themselves.
In particular, the talk focuses on adapting practices learned as a Python / Zope / Plone developer to touch-oriented, device-deployable HTML5 applications, using the jquery.mobile toolkit.
Lennart Regebro does a lot of subcontracting for various Plone companies, and has seen a lot of buildouts. In this talk he walks through a buildout configuration that takes the best bits, stolen from companies like Jarn, Jazkarta and SixFeetUp.
Lennart Regebro does a lot of subcontracting for various Plone companies, and has seen a lot of buildouts. In this talk he walks through a buildout configuration that takes the best bits, stolen from companies like Jarn, Jazkarta and SixFeetUp.
"Just add the egg to your buildout." Sounds so easy, right? But so often, doing that without care leads to a Plone instance that won't start up.
Trying a cool-sounding new Plone add-on should not have to be a terrifying experience. With a mix of practical advice and peeking behind the scenes at how things work, this overview will give you the skills you need to install add-ons with confidence. We'll walk through some examples of installing add-ons into abasic buildout, and see what happens.
Solr is a powerful open source search engine server which has become a popular choice for extending the search capabilities of Plone sites. The default configuration works well, but how do you answer the client's request to "Make my search just like Google's"?
In this talk we will take a look at the various options that are available for configuring Solr's schema and configuration. We will discuss how to set up stop words, spell checking, n-grams and alternate query handlers. We will see what effect these settings will have on the search results and find out how to debug problems when they arise.
My talk gives an overview about using Plone in the field of professional electronic publishing. Electronic publishing covers the authoring, conversion and publishing of content in various formats on the web. Single-Source Multi-Channel Publishing made easy with Plone.
A double-edged look at the tandem technology-development and human-cultivation required to elicit participation in purposeful, online communities. The talk will explore and contrast projects in both higher-education and healthcare, illustrating some of the fantastic Plone features and add-ons that I’ve harnessed to bring the monster to life.
This talk will introduce the audience to Pyramid's authentication system which is capable of providing complex object-level security in a variety of different scenarios. The talk will focus on applying authorization to Pyramid's URL Dispatch routing system.
Organising sprints. We all like going to them, we all like meeting up with people, exchanging knowledge and having fun. Plone depends on them for development. But what does it take to organise one? Thats the question I want to answer with this talk.