An improved Webform user interface for Drupal

At Acquia, we spent a lot of time improving the Webform module, one of the top 10 most popular Drupal modules, as well as the Form Builder module, a companion module that provides an improved user interface for the Webform module. The Webform module and the Form Builder module allow people to create custom forms such as contact forms, online surveys and more.

Both modules are maintained by Nate 'quicksketch' Haug, one of the top Drupal contributors. Like anything Nate does, the modules are amazingly powerful and have great code quality. We wanted to add support for creating custom forms to Drupal Gardens and believed that the Webform and Form Builder modules were the right way to go. No need to reinvent the wheel.

Before making Webform and Form Builder available as part of Drupal Gardens, we wanted to try and see if we could make Webforms easier to use, without making it less powerful. We spent about 200 hours to explore various different design and interaction models. We used both paper prototypes and working prototypes to conduct usability tests, and used these to drive further optimizations. After we felt good about the direction, we ran it by quicksketch. With quicksketch's guidance, we helped upgrade both modules from Drupal 6 to Drupal 7, and implemented the new user interface on top of that. The new drag-and-drop interface puts some things in different locations on the page and has a number of different interaction patterns compared to the old user interface. To do so, we wrote a couple of modules that add our user interface on top of the Webform and Form Builder modules. It is layered like a stack: Webform → Form Builder → Alternate UI.

Fast forward 25 person-weeks, and we've now rolled out our improved user interface as part of the latest Drupal Gardens release. To see how it looks, take a look at the video below or create a free Drupal Gardens website if you prefer.

We're contributing everything back to the community -- some things we've already contributed back, other things we're in the process to. We're also helping to back port some changes to Drupal 6, even though we don't need them for Drupal Gardens. With these contributions, everyone in the community can benefit.

The new user interface is an incredible achievement that a lot of people deserve recognition for, including quicksketch who spent many years of getting Webform and Form Builder modules to where we were able to use them as a starting point.

I'm pretty excited about this user interface, and would love your feedback and suggestions. What do you think?

The Drupal Christmas song

Jon Stieglitz sent me the following Drupal Christmas song! Ho ho ho!

Building blocks of a scalable web crawler

I recently had the pleasure of serving as a thesis advisor on a work by Marc Seeger, who was completing a portion of his requirements for a Master of Science in Computer Science and Media at Stuttgart Media University. Marc's thesis was titled "Building blocks of a scalable web crawler".

Marc undertook a project for Acquia that I had originally started in 2006; a Drupal site crawler to catalog, as best as possible, the current distribution of Drupal sites across the web. That is a task for which there is no easy answer as Drupal can be downloaded and used free (in all senses of the word). The best way to find out how many Drupal sites exist, is to develop a crawler that crawls the entire web and that counts all the Drupal sites one by one.

With Marc's help, I was able to resurrect my crawler project. Marc spent 6 months working with me; 3 months were spent in Germany where Marc lives, and 3 months were spent in Boston where Acquia is based.

During that time, Marc explored suitable architectures for building out, collecting and managing website data on the order of many millions of domains. He examined different backend storage systems (Riak, Cassandra, MongoDB, Redis, CouchDB, Tokyo Cabinet, MySQL, Postgres, ...), contemplated the methods of collecting the data while simultaneously allowing search and access. As part of his work, Marc explored a variety of different database technologies, database schemas and configurations, and experimented with various configurations of Amazon's Elastic Cloud hardware (EC2). Issues common to any large deployment were investigated and analyzed in detail, including HTTP persistent connections, data locking and concurrency control, caching, and performant solutions for large-scale searches. HTTP redirects, DNS issues -- his thesis covers it all, at least in terms of how each of these items impacted the search for an acceptable algorithm.

The crawler has been up and running for a number of months now, and investigated about 100 million domain names. Now we crawled about 100 million domain names, I plan to start publishing the results.

Marc's work is available in PDF from his blog post, and it's a good read, even if I'm slightly biased. Thanks for the great work, Marc! Time to look for a couple new thesis projects, and thesis students that want to work with me for a few months. Ideas welcome!

Drupal 7 to be released on January 5th (with one ginormous party)

Drupal 7 has been a multi-year effort on behalf of over 1,000 contributors. Since February 2008, we've manged to make enormous improvements; it is a true metamorphosis for designers, developers, and administrators.

The last months we've seen Drupal 7 getting steadily closer to its release and critical issues dealt with one by one. Release management is not always easy, and I've always based my decisions part on data, and part on my "gut". Both are indicating that it is time to release Drupal 7. It is important to all of us in the Drupal community.

We decided that we will try to release Drupal 7.0 on January 5th, 2011 -- unless we run into outstanding critical bugs that are absolute showstoppers. All software ships with bugs, and sometimes serious ones. If there are remaining critical issues on January 5th, they will be evaluated on a case-by-case basis, but may be pushed out to Drupal 7.1 release and beyond. With over 28,000 automated tests and thousands of existing Drupal 7 sites "in the wild", Drupal 7 is the most tested version of Drupal in our project's history. Without doubt, Drupal 7.0 will be more stable than the initial Drupal 6.0 release.

Now that the release date is set in stone, we still have 3 weeks to make any final adjustments. The holidays are a perfect time for bug fixing. Get the entire family involved! :)

To celebrate the release of Drupal 7, the Drupal community is organizing world-wide local release parties on Friday, January 7th. If you're looking for a Drupal 7 release party to attend, check http://www.drupal7releaseparty.org or organize your own. So far, we'll have parties in more than 50 cities around the world. Let's see if we can increase that to one in every country in the world!

Drupal Developer Days Brussels 2011: call for speakers

We co-located the very first DrupalCon in 2005 with FOSDEM, now Europe's largest open source developers meeting. The first DrupalCon was an instrumental moment in the history of Drupal that has set the tone for all other DrupalCons and DrupalCamps. Ever since, co-locating a Drupal event with FOSDEM has been near and dear to my heart. In keeping with this good habit (e.g. 2008, 2009, 2010), I want to call upon the Drupal community to consider speaking at the Drupal Developer Days in Brussels.

Registration is now open for this free-as-in-beer event. It takes place from Friday, February 4 to Sunday, February 6 in parallel with FOSDEM. On that Friday there will be a code sprint. On Saturday and Sunday at the Vrije Universiteit Brussel (VUB), you can enjoy two days of presentations and workshops on everything that is happening and exciting in the Drupal world.

A large part of the program is defined by the attendees so you are encouraged to propose sessions. So, register and submit your ideas for sessions. Even if you don't present a session, you'll enjoy yourself and learn more about getting the most from Drupal. Plus, you'll be able to see where DrupalCon got started.

Everyone should be a millionaire

Like everyone else, I have to assume that I need to take care of my own retirement. I only finished school 3 years ago, so I don't have a lot of money. However, by the time I retire, I'd like to have at least a million euros in my bank account. Bing! And I think you should too.

In the best case scenario, I assume a 5% annual interest rate. Given a million euros, that would translate to 50,000 euros a year in interests, or 4,166 euros a month. Given that inflation erodes the value of money, a euro today is worth more than a euro tomorrow. If we assume inflation will be 2.5% year over year, prices will double in 30 years. So by the time I retire, that 4,166 euros is the equivalent of 2,000 euros today. In other words, a million euros doesn't look like a crazy number to aim for.

In the worst case scenario, I assume a 1% annual interest rate on one million euros. In this scenario, I can't live on the interest rates and would need to eat slowly away from my one million euro bank account. Assuming that I withdraw the same 4,166 euros a month during my retirement, I'll burn through my one million euros in less than 25 years. Some people live longer than 25 years after they retire.

As said, I don't have a lot of money, but in both scenarios, it seems like a million euros is a good number to aim for. It is also an easy number to remember. The bad news is that saving a million euros is hard. How do you plan to get there?

K'Naan - Take a minute

I like this song. It resonates. It swings.

© 1999-2010 Dries Buytaert Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.
Drupal is a Registered Trademark of Dries Buytaert.