Overview
Version 2 of the popular Views module was rewritten from scratch to make it even more flexible and powerful. With more flexibility comes more complexity and quite some time was spent working out a user interface that could expose all these powerful features without becoming an enormous scrolling form. This session retraces the process that led to the current interface, showcasing how developers and interface designers worked together to find a working solution to a complex problem.
Agenda
- Views1 to Views 2: adding multiple dimensions of infinite flexibility.
- Concepts, wireframes, and other false starts.
- Two basic concepts: sentences and summaries.
- The end result. Do you like it? What could be better? How can we translate the good bits to other use cases?
Goals
First of all, this presentation wants to provide an overview of the design process for this particular user interface. The larger picture is that the web is rapidly evolving from websites into web applications. The Drupal UI toolkit has to be extended with smarter and more complex form widgets to build the interfaces for these web apps. Ideally the good stuff in Views 2 can find it's way into other Drupal applications as well.
Resources
Bring your own feedback on the new interface! What do you like, what do you think could be improved?
Overview
Over the past few months, we've seen a number of major drupal site rollouts that make extensive use of Panels2 (See, for example, http://drupal.org/node/241344 and http://drupal.org/node/242993). We've also seen a few modules implement the Panels API in rather different ways - most notably, Advanced Profile Kit and Organic Groups Panels - that hint at how flexible Panels can be.
We'll start this session by highlighting these different Panels implementations and providing a birds-eye view of how Panels' moving parts work. We want to make sure attendees have a good sense of what Panels2 can do now - because the second half of the presentation is all about the future of Panels - otherwise known as Panels3.
Panels3 isn't so much about changing the data model (that part already works pretty well) as changing the API and interface. One good way to think about this difference is to consider Panels2's limitations on who can use it. Right now, it's very difficult to scale down the power of Panels to a level that's appropriate for normal users. Panels3 aims to break down that barrier. We'll spend the remainder of the session overviewing some of the current plans for how Panels3 might do that, as well as noting attendee suggestions for some of the large-scale directions we might consider.
Agenda
* Briefly overview Panels2 to bring everyone up to speed on the most recent developments.
* Provide some concrete examples of ways that the Panels API is currently being implemented.
* Present some of the current plans for the future development of Panels
* Gather participant reactions to the proposed ideas, and take general input on possible directions to go as well
Goals
Participants should expect to leave the session with a grasp of Panels' capabilities in the present, and a sense of what to expect in the future.
Resources
None needed. Just bring yourself!
Overview
The Context and Spaces modules are tools to make complex site building tasks easier. This session will cover the approach of the Context and Spaces suites, and show developers how they can be used and extended. The examples in the presentation will focus on 'Communities of Practice'-style online collaboration, Sites-within-sites, and Intranet projects.
Background
The Context suite provides a way of mapping various architectures on top of Drupal's components. Allowing developers to define what panels, views, content-types, menus, blocks, etc comprise the recognizable 'sections' of their sites. Spaces extends this concept by integrating with Organic Groups. This allows you to associate 'sections' with groups and provides a way to enabled and customize these features on a group by group basis.
Agenda
Goals
To give developers and advanced Drupal administrators an idea of the advantages of using context and spaces on their projects. We'll review the standard set of problems the context and spaces aim to address and look at sites where it's been used.
Resources
http://drupal.org/project/context
http://drupal.org/project/spaces
http://www.developmentseed.org/tags/context-ui
Overview
This session presents a replacement for the existing aggregator module in Drupal 7 core. It is not just geared towards coders but to anybody who's dealing with aggregation in Drupal. We'd like to show you what's exciting about the new aggregator, talk about new possibilities it opens up and ask you for your feedback.
Background:
Drupal core's aggregator module wasn't designed with a wide range of use cases in mind. It supports aggregation of RSS and Atom feeds to a configurable set of categories on your Drupal site. But there is much more that users want to do with aggregation in Drupal aside from simple news aggregation, e. g.:
* Import iCal feeds to events
* Import to complex content types with custom fields
* Support workflow, access control or commenting on feeds or feed items
* Import special feed formats like NewsML
These and other demands have lead to a plethora of aggregation modules in contrib land: aggregator2, leech, simplefeed, aggregation and feedapi are just some of them. Most of them satisfied specific use cases and failed to cover the wider field of scenarios, hence none of them made the breakthrough to being the prevalent solution.
After a first attempt with FeedAPI in 2007 Aron Novak did it again for Google Summer of Code 2008: he took on the task to come up with a solution fit to replace ye olde aggregator. The result is a simple yet extensible and efficient architecture that should serve us well as a basis for the coming years.
Agenda
* Give an overview over existing aggregation modules in Drupal and its properties
* Explain why a new aggregator in core is better than the module-that-fits-best out there
* Present architecture of new aggregator for D7
* Present important features and explain specific design decisions
* Real world examples of what the new aggregator does or enables us to do:
** aggregate lightweight feed items or nodes
** lazy instantiation of feed items
** high performance setups
** (more to be announced when presentation is ready)
Goals
* Give you a good understanding of what's in the box
* Get your feedback on specific design decisions
* Do another step away from "many similar incompatible modules that do the same thing but slightly different" towards "many compatible modules that give you more flexible and better options"
* Inspire you to think beyond the current boundaries in aggregation
Resources
This is not mandatory by any means, but if you want to prepare for this session, we recommend to
* Test drive the new aggregator: http://drupal.org/project/new_aggregator or http://drupal.org/node/236237 (patch)
* Read the architecture outline http://groups.drupal.org/node/12772
* Have a look at the code
Overview
This session, run by the authors of Organic Groups and Domain Access, will give an introduction to the workings of Drupal's node access system.
Agenda
* What is Node Access?
* How does it work?
* What modules provide node access?
* Exploring the current API
** Enabling node access
** Defining access realms
** Defining access grants
** hook_node_access_records()
** hook_node_grants()
** db_rewrite_sql()
** Changes from D5 to D6
* Common problems and issues
* Best practices for using node access
Goals
New users should come away with an understanding of the features and limitations of the node access system. Programmers should come away with the ability to write a node access module, using the existing API. Everyone should come away thinking about how to make the system better.
Resources
See the node acccess example module for background.
Overview
Ubercart is well on its way to a Drupal 6 release (codenamed Uber Tuber). As of this posting, 26/32 modules have been migrated. However, these are quick API migrations without a lot of retooling that would drag out the update process. Uber Tuber will be similar in functionality to the 1.0 release, just compatible with Drupal 6 and sans a few external dependencies.
As was laid out in our development roadmap, we're planning further core improvements and Drupal 6 API updates for a 3.0 release. We have a good idea of what many of these improvements should be, but we want to do some serious brainstorming with other developers and themers with some planning toward actual implementation. We're excited about the new features Drupal 6 brings to the table and can't wait to fully embrace them in Ubercart.
As such, we invite anyone to attend who is interested in Ubercart on Drupal 6 or has knowledge of how the core changes from Drupal 5 to Drupal 6 might benefit Ubercart. We also aren't ashamed to admit that many of our core systems have proven less helpful for developers and themers than we initially imagined. As such, anyone who wants to see changes in the Ubercore should attend and provide feedback on how things can be easier.
Please see the "Optimization" paragraph related to Drupal 6 in the development roadmap for more information.
Agenda
* Update on the current status of Drupal 6 development.
* Discuss core Ubercart API improvements.
* Discuss theming improvements:
- General core improvements
- Updates for improvements in Drupal 6
- Address invoice templates
- Anything else?
* Discuss performance improvements:
- Using 'file' for menu items
- ... ?
* Discuss internationalization improvements:
- Country/zone system overhaul
- VAT!
* Discuss improvements in the contribution process.
Goals
Drupallers who attend this BoF will get up to speed on the state of Ubercart development in Drupal 6. Further, we'll be planning many improvements for Ubercart that will be worked into Ubercart 3.0 and recruiting as many people as possible to help in the work!
Resources
* Ubercart 2.x-dev - http://drupal.org/node/280820
* Development roadmap - http://www.ubercart.org/forum/development/5115/...
* Migration status - http://support.ubercart.org/discuss/67/...
Related sessions
Drupallers looking for a more general introduction to Ubercart should consider attending Introducing Ubercart instead. Most of the features will be the same for Ubercart 2.0, so that session should prove more helpful!
We'll also be performing A Hands On Guide to Module Development in which we will discuss the things we've done wrong and are starting to do right in module development. The session will include an example of developing a module that integrates with Ubercart.
* This session was posted as a BoF but could be turned into an actual session with enough interest. We would keep the tone informal, but could reach a broader audience with the larger space if necessary.
Overview
Lets brainstorm about what improvements we can make to the node access control system.
Agenda
* How to make it easier to grok
* What features should be there but aren't
Goals
Close with a sentence or two describing the outcome you'd like from this session. For example, is the goal to define a problem and come up with a solution? If you're imparting knowledge, what sort of knowledge should attendees hope to gain by the end?
Resources
Please read node_access() and all the functions it calls. Also be familiar with node_db_rewrite_sql(). If you have written a node access module, you are very encouraged to attend.
Overview
Although MySQL is sometimes perceived as a minimalist DBMS, it has a huge potential for creative hacks. The Federated and Blackhole engine, MySQL Proxy, user variables, and some other hooks allow the imaginative developer to achieve impressive results independently from the client's programming language.
MySQL is commonly perceived as a feature poor DBMS. That may be true if you are looking for specific functions or behavior as found in popular commercial database. While lacking 1 to 1 features, MySQL has a flexibility that allows users to achieve the wanted result with a workaround or some settings. But MySQL has much more. Its modular architecture offer to the user a number of creative ways of implementing features, which is sometimes more powerful and affective than the built-in feature of competing databases.
Agenda
In this session, I will show some creative ways of taking advantage of MySQL hidden pearls, regardless of the programming language used in your client.
Goals
Your imagination is the limit! This session will just give you the raw material and some ideas to get you started.
Overview
The MySQL Server is a very widely used open source database system and often used as the storage backend for Drupal sites.
Creating backups and maintaining a secure installations are two very common tasks for any Drupal administrator.
In this talk, Lenz will provide useful hints and suggestions on how to improve the security of a MySQL installation and how to properly perform backups of the databases and tables. The session will cover both tools that are included in the MySQL server/distribution as well as common tools/facilities provided by the operating system (Linux in particular).
Agenda
Goals
Users attending this session should take home some useful hints on how to secure their MySQL installations and how to perform proper backup.
Overview
MySQL is a popular open source database system and often used as the backend for Drupal installations. This session will give an overview about different solutions and technologies available to make a MySQL Server system highly available.
After the theoretical part, a practical demonstration of a HA cluster for Drupal will be performed. With the help of Red Hat Cluster Suite, we will build a HA solution using MySQL replication. If time permits, we will then extend the solution to use shared storage device.
Agenda
Goals
Attendees will gain more insight into how MySQL Server setups can be made more fault-tolerant and how to ensure high availability. The practical part will provide an insight into how the RHEL Cluster Suite works, what you need to build a High Availability solution and configuration basics.