Summing up day 3 – the last day at the conference for us. You can also check out day one and day two.

10:00  Lesser known Drupal 7 (link)

Queues

There also seems to be backport of this for D6.

implementations of queues:

Pluggable caches

In drupal 6 you could swap the whole cache implementation, in D7 you can swap any cache bin:

  • bootstrap cache (new in 7 -> variable cache, modules and theme list, registry and hook cache)
  • page cache (can be swapped by a null cache on sites that already have an external cache (varnish, nginx))

Pressflow has external cache (null cache) and is actually much like a backported D7 performancewise.

  • Block cache:
    Doesn’t work as soon as you use any node access mechanics (so same issue as in D6 ;)
  • Render cache

D7 also has (crazy) built-in support for ESI (edge side includes). ESI is used to cache specific elements on the page.

Renderable arrays

  • Drupal 7 has a completely reworked rendering pipeline.
  • Even the whole page has a renderable array.
  • Heavy processing (SQL) can be delayed as late as possible using #pre_render callbacks

Flexible database drivers

New database layer : php PDO

Use case were this might be useful:

  • automatic slave health monitoring
  • site specific initialization sequence
  • automatic query tagging
  • document oriented storage (mongoDB)

File streaming

  • no need for shared filesystem anymore

Session handling

  • D7 has a completely new session handler
  • Anonymous user on D7 will not receive a cookie at all
  • Careful fragile: don’t store anything in sessions if not necessary because it will break your page cache

Keynote: the Design of HTML5 (link)

Video is online here! This was an amazing (one of the best ever keynotes on Drupalcon) talk about HTML5. It was so fast paced and interesting I didn’t even make any notes, but if you want to read about it instead of watching the video check the liveblog at drupalradar.com.

Some keywords:

  • pave the cowpath
  • degrade gracefully

Drupal HTML 5 modules & links:

You can really start using html5 today, IE needs js creating the new elements and be aware of the vaildation tools limitations.

Quotes:

  • “In case of conflict consider users over authors over implementators over specifiers over theoretical purity” (Priority of constitiencies)
  • “Be conservative in what you send; be liberal in what you accept.”  - robustness principle (Postel’s law)

13:30 Drupal performance boost solutions (link)

Pretty general talk abour various way too boost your performance. You might also be interested in our our blog-post about frontend performance in Drupal.

14:45 Views 3 (link)

Views 3 has got some amazing features. There are however UX issues: (13 boxes is too much) – join/follow the discussion for that here. Also it’s not yet entirely stable.

  • use the dev instead of current alpha  (at time of writing)

16:00 Developing iPad/iPhone/Android apps using Drupal as a base system (link)

  • speaker: @sumitk
  • webkit growing
  • 40% internet traffic mobile 2013
  • native apps are more capable then browser framed
  • titanium
  • http://sf2010.drupal.org/conference/sessions/developing-apps-iphoneipadandroid-using-drupal-base-system
  • http://civicaction.com/blog/sumit

16:00 Writing better CSS for Drupal (link)

Mverbaar really addresses an urgent problem that should be fixed for Drupal 7. See his presentation on slideshare.

17:30 Closing session

Drupalradar did live video streaming covering the closing session which had an appearance from the kittenkillers (video). But the whole closing session video is not available yet I think. There was also the announcement of DrupalCon Chicago in March 2011.

Dinner / Evening:

Oh, just look at the pictures ;)

This week, our team arrived from the Netherlands by car and plane in Copenhagen, Denmark. We are attending DrupalCon and here is a overview of our  day one. You can also read about day two and day three.

9:00 Drupal distributions Do’s en Don’ts (link)

Presented by one of the maintainers of Open Atrium.
Some topics:

  • install profiles
  • Exportables (ctools)
  • Kit specification (for features + context, drush make)

Tips:

  1. Install profiles just list modules, and are executed on install, not update.
  2. use batch (API) processing (ist of modules can take a long time to install).
  3. organize features functionality.
  4. use context (especially version 3.0 which has layouts).
  5. always fix module versions in your drush make.

Unfortunately there was little time left to talk about some of the possible business models which are possible as a service or product.

10:00 Propeople: behind the scenes (link)

Case studies of a large Drupal company. They talked about fdm.dk and unicef.dk and how you can impress a client by just showing what Drupal can do.

Don’t be afraid to give your client control or even the possibility to extend the system (indirectly by asking you for some module functionality).

Do ask you clients for testimonials after a succesful project, which you may use on your website.

11:00 Dries Buytaert Keynote – State of Drupal

This one was a bit different as usual. Dries didn’t have much news on D7 or the drupal.org redesign. So instead the keynote was about different visions on how Drupal might look like in 2020. The future of Drupal and the community.
I enjoyed how Dries is able to pull together the big picture and put things in perspective in his keynotes, but there was some discussion on some of Dries’ remarks about women in the community.
Other topics:

  • Everybody is looking for Drupal Talent – but it’s pretty hard to find that talent.
  • Drupal is invading the enterprise.
  • Why? It’s actually become a better piece of technology.
  • Looking back at history, trends and current situations, Drupal wil grow a factor 10 by 2020
  • 10% of the web might be Drupal in 2020 (currently 1%)
  • Comparison with Apple – don’t sell the features

Trends:

  • Drupal SaaS (for the low-end user)
  • Drupal distributions
  • Integration with other system (legacy or social like facebook)

Directly after this, the group picture was made:

13:30 Drupal: the next generation (link)

Very interesting session by Larry Garfield who talked about future plans for Drupal 8 or “how Drupal 7 sucks”. Because while D7 might be awesome, it still is pretty bad at some very fundamental issues:

  • Contexts
    Drupal has no idea about contexts. You have node pages and blocks, but there is nothing tying it all together. There are some solutions in contrib like context and spaces or panels, but they work around an existing fundamental problem in Drupal core.
    We need an intermediate layer -> the butler project
    There is also a premature D7 module on github.
  • Swappable functionality
    Because hooks are meant to add functionality not replace it.
  • Drupal returns html
    Sometimes you want to return just a part of a page or something in JSON, SOAP, etc. (now you must use the services module and the required bootstrap requires a lot of code needed to be loaded which you do not need.
  • Performance
    Too much code on every single page request. Render API is a memory hog. Related: http://www.garfieldtech.com/blog/benchmarking-magic

The new architecture would also mean things are cached by context -> ESI caching (Varnish) building into drupal (more)!

So Drupal 8 will be much about cutting overhead processing, some fundamental redesigns (will we still need hook_menu if we have contexts?) and other performance optimizations.

This will probably mean that Drupal 8 will be more of a change ‘under the hood while D7 has a lot of ‘outer’ user experience and usability improvements.

14:45 MongoDB: humongous drupal (link)

This was a pretty theoretical session by Chx about the benefits of nosql.

  • nosql
  • clash of two cultures
  • ACID vs BASE
  • reality isn’t rigid (example: sell cars, color attribute, but what if a car has 2 color)
  • You need a lot of ram en a lot of diskspace

Others non relational databases: cassandra (facebook and twitter use that) and couchdb.

14:45 Getting Early Estimates Right (link)

This is an excellent session my colleague Erik attended, covering your client’s question which is always difficult to answer: So, how much will it cost?

You can find notes about this session over here.

16:00 Building scalable high performance drupal sites in the cloud (link)

Another advanced session by Barry Jaspan, a senior architect at Acquia.

File sharing on AWS :

  • Drupal needs a POSIX filesystem for user-uploaded files
  • elastic block store (EBS) is single instance
  • rsync does not scale past two web nodes
  • S3FS is worse than useless for this (too slow, non-POSIX, unreliable, unsupported)
  • A network filesystem is required…

Challenge: HA load balancer

  • load balancer might fail
  • elastic load balancer (requires a hot spare or second active instance)
  • Elastic IP (also requires hot spare)

Then there was also some talk about Puppet as a solution for a lot of issues. Which was pretty neat to hear, because our hosting partners are actually now adopting Puppet.

17:00 Awesomeness redefined: Drupal 7 theming (link)

Session presented by Morton and Jenny, talking about the changes in Drupal 7 for themers (which are great!) and Bartik - one of the new core themes for Drupal 7.

Some of the new theming stuff in Drupal 7:

  • hide and render will be your new best friend
  • hooks are possible in template.php (which means themers now at last can modify/theme forms!)

If you want a more detailed overview check out this video from Drupalcon Paris on this topic.

As for Drupal 6, you might want to check out Display Suite, which makes the life of a Drupal 6 themer a lot easier.

Evening /night:

After a good meal of pasta in a nearby gigantic shopping mall (our appartment is actually around 200m from the Bella Center and 5km from the city center) We spent the evening and night at the FooBar which had sponsored beer. Nice!

Also very nice in Copenhagen: the metro runs 24 hours a day!

May
9

Scratching Your Own Itch

Gepost in Drupal, Projects, Sociale media door Albert

So, it appeared I had some unscheduled spare time the last few weeks, and in order to survive the misery, I decided to choose #3 and work on my pet-project.

You know, that great idea you have had for years but you just never seem to find the time to get it done (or even started)? That site you want to built because no one else seems to have done it? The itch nobody else seems to scratch so you’ll just need to scratch it yourself?

I had three weeks, lots of inspiration and – most importantly – I had experience in setting up Drupal-powered sites. The community site I created is for fast cyclist in the Netherlands. Each week, an estimated 500.000 Dutch people jump on their fast bicycle to ride tracks anywhere from 20km to 100+ km. I’m one of them myself. However, I had a problem. While there are an increasing number of devices to record your tracks using GPS, there does not seem to be a site - specifically for fast cyclists – where they can share these tracks, so I created it:

Wielrennen web 2.0

Fast prototyping and iterations
In order to design, develop and build the site by myself and release it in three weeks as a beta, I had to cut some corners. Instead of going through a detailed functional design and graphic design, I did a quick analysis, put down the basic elements of functionality and started looking for an existing theme that matched my vision best. I think fast cyclist are generally more attracted to gadgets, innovation, technology and design. So I wanted the site to have a certain ‘polished’ look. I decided to use the Acquia slate theme as a basis for my design. While this template is originally designed for corporate use, it met my first requirements.

After the first week, I had a basic Drupal community site with all the essential modules. The remaining time was used to create a custom module, tweak settings, setup content-types and adapt the theme. For example, I implemented the nivo views slider as a way to provide a quick overview on the frontpage of the site for anonymous users. The entire process was – and still is – one of small iterations, small steps, and pragmatic improvements, fueled by lots of coffee, drush and a number of people who were so kind to provide feedback along the way.

iPhone, Android,… iPad?
I also wanted to leverage the possibilities of GPS-enabled smartphones like iPhones and Android devices allowing users to use their favorite app to record a track and easily share it. After doing some research, I ended up by modifying the trackfield module. Now users can simply enter the Google Map url genereated by the Android MyTracks app or iPhone Cyclemeter. Support for other devices and apps is in the works, but ultimately we have plans for great apps of our own which we hope to have built by specialised iphone/ipad/android developers.

Besides sharing tracks, there is the whole community part. There is facebook integration and users can create profiles and connect with each other. They can put up notes on the messageboard and comment on anything. There is a blog and newsletter to keep everyone in the loop, and there are plans to implement features like achievements, and statistics/ visual graphs about your own tracks and performance. But in order to keep everything simple, there aren’t any advanced options yet like groups, private messaging, friend-making or ratings.

Future features will be added along the way, but only if they will benefit the community. In the end, it all depends on passionate users and the content they generate. And while this project is a personal one and not directly related to my company, it’s always a good idea to eat your own dog food. It’s one thing to build Drupal site, but it’s a whole other ball game if you are forced to actively use your own product. You will understand your complaining clients a lot better.


Feb
1

Module review: tablefield

Gepost in Modules door Albert

I thought it might be nice to do a series of module reviews, handpicking some of the more interesting modules which have been released in the last couple of months. As you might know, new Drupal modules are released daily, and while they’re often beta’s or alpha’s many of them have great potential to become very useful, and maybe you didn’t even know they exist.

Tablefield
Take tablefield for example. It offers a simple, lightweight solution – though yet limited in features – to a common problem: displaying a simple table on a page. Of course there are wysiwyg editors which offer this type of functionality, but they require your client to understand how to use these more advanced options, often hidden under a right mouse-click pop-up menu.

Other alternatives would be to display an entire table-view beneath your node. But that is probably more than you need most of the time.

Depending on your needs, it might be enough when an editor could use a simple ‘wizard’ to enter some data, like a pricing sheet, which can be easily updated without having to fear you could mess up the entire layout. This is exactly what tablefield does. It offers a new cck field called ‘tableview’, which behaves like any other cck field. The options are limited to a number of columns and rows, and the first row will automatically be rendered as a header.

Biggest limitations: you can’t (yet) insert a new row or column, and while you can used filtered HTML, if you would like to put a link or image in a cell, it would require manual html input, since all cells are simple textfields. Also, since it’s a cck field, you can’t easily insert the table inline. Maybe integration with the excellent insert module could be an idea?

Nov
2

What’s new in Drupal 7

Gepost in Drupal 7, Usability door Albert

With the code freeze underway for some time, Dries has posted an update about the upcoming Drupal 7 release. I thought this might be a nice time to overview some of the most exciting new stuff in Drupal 7 and see where all the action is happening right now.

Some overall highlights:

[1]  module screen improved (in progress), disable preview buttons,  vertical tabs in core,  better password checker and much more

[2] and improved support for installation profiles

[3] also, hopefully, there will be a nice new front-end core theme which could replace Garland

[4] with some discussion about the chosen database storage solution (see also screenshot).

[5] also called update manager, one of the code freeze exceptions

[6] improved password algorithm,  protected cron, flood login control and much more

An image is nog longer a widget of file, but a seperate field type

An image is nog longer a widget of file, but a separate field type

For developers / themers:

[7] see complete what-developer-need-to-know on javascript in Drupal 7

[8] building upon that, a project to support Oracle

Some things that didn’t make it

The list is a bit longer than this, but here are some things which will have to wait until Drupal 8 or become available as contributed modules.

Also, there are some concerns about the performance of Drupal 7 (versus Drupal 6) this point. But there is a lot of movement in this area and it’s only natural that a piece of software which gained a lot of new features needs to be optimized in code freeze. Something else which seems a bit worrying is the comment on Dries’ post by sun about the status of the field API in general. Looks like there is much cleaning up to do in the API.

If you want to take Drupal 7 out for a spin to check it out for yourself, you can download a development snapshot here. Needless to say, you don’t want to be using this in a production environment.  I think it still looks a bit rough (css issues in different browsers) and while the admin interface is a *lot* better than Garland, it does feel unpolished yet (the dashboard for example). Icons would provide a much more pleasant first time experience, but I think everybody is currently more occupied with the shortcut toolbar issue, which has proven to be quite a challenge to implement. It also one of the issues tagged as Drupal 7 priority.

And for those who want to know when Drupal 7 will be ready? When this list becomes empty.

Other references: