Nov 28 2011
Nov 28

Last weekend, between November 25th to 27th,
the awesome guys from Comm-Press hosted a views (code) sprint in their new office .

At first I was a little bit sceptical. Can you scale a codesprint up to 20 people?

But they proved it's definitive possible!
At Saturday everyone said hello to each other and Karsten started to throw in some ideas what people could do. It turned out there where enough tasks for everyone, such as:

  • conduct a usuability test
  • develop some UI ideas based on the UX test
  • provide regex support for both string and numeric filters
  • port views_cloud to d7
  • write a views integration for taxonomy_entity_index
  • improve the webform views integration
  • issue triage, more about this might be added later
  • review the existing documentation and start to improve it
  • go through the "needs review"/RTBC patches and reduce their numbers

 Review des Views Sprints

Quite some people started with the issue triage aka rock in the issue queue.
For this, Karsten gave a really good explanation on how to act in the issue queue.
After that, around 10 people started to work on it, and the outcoming results blew my mind: they worked
on 250 isses within two days (c.f. http://drupal.org/project/issues/views?page=4&status=All ) accompanied by around 50 issues in several other issue queues. This impressive figures don't even include the work of the documentation and the UI team, because they did more kind of a preperation work for future issues.

The enviroment was incredible: We were provided with food, something to drink and even some nerf guns! Furthermore, special thanks go to @freudenreich_m and @ralfhendel for organizing the famous German hacker elixir "club-mate" at Sunday morning.

The total statistics:
* ~300 issues
* 60 commits directly to Views and 40 to other projects/sandboxes etc.
* 5 Nerf guns

Thanks for all people which took part or were involved via sponsoring etc.
The drupal community is unique!

There were also some remote part-time sprinters: das-peter, damz and maybe other people I forgot to mention (I apologize if that might have been the case).

Aug 23 2011
Aug 23

Views3 UI

Views UI Design

Every site builder new to Drupal ought to learn and get used to Views in order to be able to build really flexible websites without writing code.
The current UI is kind of hard for beginners although it is much better than the one Views 1 had.

In order to achieve further improvements within the View UI, Acquia , a Drupal company founded by Drupal creator Dries Buytaert , asked its interaction designer Jeff Noyes to brainstorm and discuss designs with merlinofchaos, the maintainer of Views.

Their goal is to integrate Views 3 into Drupal
Gardens
, which provides customizable starter Drupal packages that can be set up an configurated in a few minutes and are then also hosted by Acquia.
The target group for Drupal Gardens is an audience with presumably little experience with module as complex as Views, thus, the Views 3 UI should be redesinged in order to make it more intuitive.

Codesprint

After Jeff's mockups were finalized, Acquia's engineering team knew they would need help from the Views maintainers to implement the design quickly enough, so they decided to host a code sprint.
Last week (14-18 February 2011), a group of developers met in San Jose (CA, US) and was joined virtually by others to further develop the new Views UI.

The working location for those developers from various parts of the globe was an apartement booked by Acquia, where they put together developers from all over the world, paying their travel costs and other expenses.

After a relaxing Sunday evening the work started the next morning.
Having determined the current state of the code, everyone got started on a specific part. On some days we had video-meetings with Jeff to discuss issues with the design.

During the day and the evening, and sometimes even at night, the hacking went on at incredible speed.

UI Changes/Designs

The new UI has many changes, here are just some of them:

  • A new wizard in order to create new views easily and provide some default settings.
    So for example if you create a new node view, the "node/content: published filter" is added by default.
  • A new listing of existing views integrated into CTools Export UI. So every module which uses CTools Export UI (and you should) has some kind of similar listing interface.
  • completely reorganized view edit screen.
  • The settings links got ordered/grouped by importance. See the screenshot [#1]
  • Every setting appears now by default in a modal
  • The add new field/filter/argument/sort form was redone. It provides some serious awesomeness[#2]
  • "Search-as-you-type" form
  • a listing of already added items is now at the bottom
  • the filter configuration page was completely redone in order to provide the 80% most frequent usecases as easy as possible.
  • The 80% usecase was considered in all areas of the new UI. So important stuff got moved up and less important stuff got moved into the "more" fieldset.
  • the same was done for arguments, fields and stuff like that, so, for example, the field configuration form is much smaller when you open it.[#3]
  • in order to calm down everyone: No views features were removed. Some bugs even got fixed.
  • Configure your view in the preview: You have contextual links for editing/adding new elements directly in the preview.[#4]
  • View templates: You can provide some default views which act as templates. The difference to a default view is that you "clone" the view template every time you use it.
  • Many more things that would exceed the average size of a blog entry Wink

If you want to try out the new UI you have to checkout the current UI from drupal.org/github or wait until it's merged into the official version of views.

Sadly enough, there's still one serious issue with the new interface: Once you get used to it, it's really hard to go back to the old one.

At the end of the week we nearly finished the work and the crowd scattered again. Some work also got started to provide an automatic migration of views for renamed tables from d6 to d7. This upgrade path is the main blocker for a beta.

People involved in making the new UI a reality:

Thanks for the really great week!
Thanks also to erdfisch for supporting me that week and in general, during my involvement in Views.

Oct 11 2010
Oct 11

On websites with a lot of users and especially a lot of nodes a lot of queries can kill your site performance.

One central problem is the usage of node access. It's recommended to avoid it as long you can, but there might be other ways to get around some problems. Here is one specific example which is quite interesting.

The goal of the view was to show the X latest users together with it's profile picture and some additional stuff. The site used content profile so a view with the base_table "node" was used. Sadly this query was horrible slow so views caching was set to a long time(using views caching is a easy and good improvement and is highly recommended).

When the cache had to be rebuild the query was still slow. So instead of using node as base table choosing user as base table made it. This improved the query time by the factor 10, because of several reasons:

  • no node access system is used(which wasn't needed on this view)
  • less rows has to be joined

In views3 recently a patch landed which allows to disable node access on a certain view: http://drupal.org/node/621142

Aug 29 2010
Aug 29

Many people ask is views 3 ready for production. Here is an answer

A quote from earl miles

Right now I only recommend Views 3 in production if there's a Drupal expert on staff/call, mostly due to the fact that a lot of modules are not yet Views 3 compatible and that will really screw you.

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web