May 15, 2012

Symbolic Icons

GNOME 3 introduced a new style of icons we call symbolic. Last year, Meg Ford joined the effort we kicked off with Lapo and did a great job extending the theme coverage, without us having any style guidelines in place yet. This year, we’ll have another Woman Outreach program participant joining the effort, so I’ve edited a little video introduction on how we design these icons along with a little overview of all the icon styles currently in place.

May 10, 2012

GNOME Design Update, Part Two

I left it too long to blog about what’s been happening in GNOME design, and I’ve been left with a backlog of things to tell everyone about! In my last post, I wrote about the work the GNOME designers have been doing on the core user experience, including things like the lock screen, notifications, printing and scrolling. In this one I’m going to review application design efforts, as well as work we’ve been doing around application integration.

Application development is a major focus for us in GNOME design. We recognise that GNOME needs new, updated applications, and we’ve been making good progress in that direction. GNOME already has some new applications in the shape of Web, Documents, Contacts and Boxes. Others are starting to emerge, such as Photos, Videos and Clocks. Not only are we assisting in these ongoing application development efforts, but we are also designing other new applications, and we are also working on improving the integration between applications and GNOME 3.

Here’s our recent application work.

Clocks

Clocks is planned to be a new core app, which will provide handy tools for viewing the time in different parts of the world, alarms, setting timers and a stopwatch. Jon has elaborated his original designs recently, so that we have a fairly complete design for the app.

Hi-resolution mockups for this one come courtesy of Jimmac.

Notes

While there are notes apps for GNOME, we don’t yet have one that works well with GNOME 3 look and feel. We think there’s an opportunity to provide a new app that is both highly integrated and more refined than what we’ve had previously, and Jimmac’s stepped up to the plate to design a brand new application.

If anyone wants to help implement this design, they should definitely get in touch. I know this is something that a whole bunch of us would really like to see happen.

To Do

This one is a little personal project of mine. It’s an idea for a simple to do list application, modelled on GNOME 3 application design principles. To Do is definitely not one destined to be a core GNOME app, but it would make a good optional application, and could be a nice little hacking project for someone.

Activities Overview Search

Ensuring that applications are able to effectively integrate with GNOME 3 is also a big focus for ongoing design work. Integrated application search is one area where this has been happening.

GNOME 3.4 introduced the ability for applications to add their own search results to the Activities Overview. Documents and Contacts are doing this right now – if you are on 3.4, searching from the overview will give you results from these applications as well as displaying applications and settings panels.

In the future we want to have other apps providing search results to the overview. This will mean that a single search will tap into the full range of apps you have on your machine. We’ve been working on designs for how to display these integrated application search results and preliminary details of the new designs are on the wiki. (No pretty mockups yet, but they’ll come.)

Content Selection

One of the big aims behind GNOME 3 is to radically improve the ease with which users can find content, such as documents, music, videos and so on. It is this aim that led us to develop the new GNOME Documents application, as well as the designs for Photos, Music and Videos.

Each of the new GNOME content applications are intended to improve on the file system (and file manager) as a way to store and access content. They focus on presenting relevant content, will come with effective search facilities, and will allow you to filter content and create flexible collections.

The next step in this content story for GNOME 3 is to bring the benefits of the new content applications to selection operations. With this approach, choosing an item to attach to an email should work in exactly the same way as it does in one of the new content apps. This will closely tie the content applications in with the rest of the system.

The content selection designs are still work in progress. It’s a tricky design to get right and we’re taking our time with it. The current plan is to test a few of the patterns that make up the design before embarking on anything more adventurous.

As you can see from the mockup, the new content selection designs still include the option to use a file manager style interface, should that be required.

Application Menus

Last but not least, we’re pushing hard to achieve consistent application menu adoption for GNOME 3.6. Application menus have been planned as a feature of GNOME 3 for some time, but it was only in the last release that applications got the ability to define their own menus. Now that they have this, the challenge is to ensure that GNOME applications start using them consistently.

I recently proposed a GNOME Goal to promote the adoption of application menus, and some progress has been made. There are still a lot of bugs to be fixed though, so feel free to help out if you can.

<< Fin >>

Phew, that’s it. As you can see, the denizens of GNOME design land have been busy recently, and there’s lots of work to report on. If you would like to help make any of these designs a reality, just get in touch or look in the usual places. The future is looking really bright for GNOME, and I still get excited when I think about all the plans we have. The sooner we can get to where we want to be, the better!


Cyrillic

Allan has done a great job giving an overview of what we’ve been focusing on recently among the design team. This still leaves some room for me to give a peek on some of the details of what’s coming.

One of the decisions we made for GNOME 3 in terms of identity, was embracing Dave Crossland’s Cantarell and its open source pedigree and making the typeface our own. So far I have only been humbly shaping minor aspects of the typeface, but a long standing issue has been left long untouched, support for Cyrillic. Typeface design is certainly going outside my comfort zone. Luckily most of the glyphs can be dealt with by borrowing from their latin counterparts. The major part of the work involved (and will involve) some shape tweaks, metrics and hinting. Again, the bold weight poses bigger challenges at small sizes, which is our main focus.

Substituted cyrillic glyphs were all sorts of broken.

.

As you can see, there’s still some tweaking left to do on the shapes and hints before rolling out 0.0.9, but those not intimidated by jhbuild, please give it a go so you can help me identify issues that aren’t apprent to me. Another set Cantarell needs to support is Greek, as it’s stylistictically required to keep close to the Latin set.

May 08, 2012

GNOME Design Update, Part One

As always, the GNOME design crew have been hard at work of late. We helped to drive many of the changes you can see in the last GNOME release, including a new color picker, updated application designs, new scrollbars and updated spin button widgets. We haven’t taken our foot off the gas though, and there’s plenty of work to report.

It’s an exciting time in GNOME design land right now. GNOME 3 is a big undertaking: we’re working to improve the entire experience, including everything from interface widgets and controls, through to applications and the core user experience. But we are making good progress, and more and more pieces are slotting into place. Slowly but surely, the design of the overall experience is starting to take shape.

It has been far too long since I’ve posted a GNOME design update. In fact, it’s been so long that I’m dividing this update into two. In this first part, I’m going to detail design work that is focusing on the core GNOME user experience. The second post will cover application design updates, as well as application integration. I’ll post that update in the next few days.

Excitingly, many (though not all) of these new designs are planned as features for the next GNOME release. If you want to help implement any of these designs, just get in touch.

Lock and login screens

This is something that we’ve wanted to do for some time. The lock screen plays much the same role as a screensaver – it is what is displayed when your device is idle. The difference between the lock screen and a screensaver is that the lock screen is really useful, of course, since it will display the time and updates about notifications (the notifications part will also be configurable).

Cue a motion mockup from Jimmac:

This motion mockup shows several things. In the first section, you see the process from boot through to user selection. (Yep, a simple spinner and fade in is all we want.) The second demonstrates what should happen once the machine has gone idle – the screen blanks, is woken up to display the lock screen, then the lock screen is removed and login occurs.

[Edit: a note about this - although the video shows the lock screen being removed with a short mouse drag, it will also be possible to remove it using the keyboard or with the mouse wheel.]

More details about the lock screen design can be found on the lock screen wiki page.

Message tray design updates

One area where we’ve all been keen to see some improvements is around notifications and the message tray. The GNOME design crew recently returned to those designs and came up with some updates which we think will make a big difference.

Under the updated designs, pop-up notifications will avoid the mouse pointer (some of this behaviour already landed in GNOME 3.4, actually) and linger until we are sure they have been noticed. The expanded notifications will also queue up so you can always see when new messages arrive.

Plans are also afoot to replace the moving targets in the tray with larger static icons:

Scrolling

Jon and Jimmac have spent quite a bit of time working through the details of how scrolling should work under different conditions. The idea here is to keep things as consistent as possible across different types of devices, while still leveraging their different strengths.

Jimmac’s motion mockups show the desired behaviour for both pointer and touch devices. We’re hoping to see scrolling improve along these lines in future GNOME releases.

Printing

Jon and Lapo have done a bunch of work that aims to improve the state of printing in GNOME, and they have produced some quite detailed mockups for new print dialogs. These look great in my opinion, and are a huge improvement on what we have right now.

One of the best things about these designs is that they let you get a clear preview of what will be printed. They also present a clear set of simple options.

Initial Setup

Initial setup is intended as a specification for what the user should see the first time they boot into GNOME 3. This is new territory for GNOME, but it is an important piece of the picture if we are going to produce a consistent experience for our users. The goal is to ensure that the system looks and feels like GNOME from the moment someone starts using it.

The initial setup assistant will be an optional component that can serve as a reference implementation for distributions. It includes several important elements for new users, such as a setup screen for online accounts and a product tour to help people get started.

And more…

There are other areas that the GNOME designers have been looking at, but which aren’t as fully developed. Other recent design work on the core user experience includes:

My next post will deal with recent application design work, as well as application integration. See you then. :)


April 02, 2012

Widget Factory

If you’re looking into creating high fidelity mockups of your GNOME application, you might find this widget asset library handy.

March 22, 2012

Every Detail Matters: Objective Achieved!

We set an ambitious goal for the first round of Every Detail Matters: we said that we would aim to fix 20 UX bugs by the end of the current release cycle. That’s not an easy thing to do: seemingly trivial bugs can turn out to be tricky little blighters, and 20 bugs is a lot of fixes to develop, review and land.

For much of this cycle, I wasn’t sure whether we would reach our goal. We did some great work, but the big 20 target often seemed a long way off. But, thanks to a last-ditch push by the GNOME Shell crew, we managed to hit that 20 bug total. Florian Müllner, who has been fantastic throughout EDM, closed the last bug right on the whistle, just before we hit the code freeze.

This is a really fantastic achievement, and I’m really impressed with everyone’s determination to make Every Detail Matters a success. I’d like to thank everyone who has contributed patches and helped to get them reviewed and landed.

I’m currently testing the upcoming GNOME 3.4 release, and I can definitely say that it is much improved thanks to everyone who has been working on EDM. There are some nice visual improvements that should be noticeable but, just as important, there are also many invisible fixes that will prevent frustration or annoyance.

So, without further ado, here are the champions who contributed patches and made it happen:

  • Stefano Facchini
  • Zan Dobersek
  • Joost Verdoorn
  • Florian Müllner
  • Seif Lotfy
  • Jean-Philippe Braun
  • Stefano Candori
  • Vít Stanislav
  • Marc Plano-Lesay
  • Alex Hultman

What’s really nice is that most of the people in this list fixed more than one bug each, and quite a few were collaborative efforts. (You can see the full list of fixed (and unfixed) bugs on the Every Detail Matters wiki page.)

All of the Every Detail Matters work will be included in the upcoming GNOME release (version 3.4), which will be out next week. Every Detail Matters will hopefully return for another round early next development cycle.


February 28, 2012

Looking forward to GNOME 3.4

The first beta of GNOME 3.4 came out at the tail end of last week, which means that we are roughly on track for a final release at the end of March. The beta also marks the beginning of the UI freeze for this cycle, so now seems like a good time to check out the cool stuff that’s coming in 3.4.

The following are just the changes that I know about; I’m sure that there are plenty of others. There’s no shortage of things to talk about though: the amount of improvement in recent GNOME releases has been really impressive, and this release looks like it will be no exception.

Updated Applications

Applications are where many of the big changes can be found for this release. Documents and Contacts had their first releases in 3.2. Now they’re back, and they’re joined by Boxes too. All three of these new GNOME applications feature updated user interfaces, which is the outcome of the ongoing application design work that I discussed in my last blog post. We think they’re better than what we had before; we hope you do too.

GNOME Documents Screenshot

Improved GNOME Documents (click to enlarge)



GNOME Documents no longer has a sidepane, and instead features inline collections and a big thumbnail grid that fills the entire window. The searching and filtering experience has also been greatly improved.

GNOME Contacts Screenshot

New look GNOME Contacts (click to enlarge)

Contacts has been redesigned to include a new list layout and a cleaner contacts pane that features inline editing and automatic linking suggestions.

Several existing GNOME applications have also received big updates this cycle. Epiphany is the principal example here. It has lost its menu bar and gained linked back and forward buttons and a really nice new address bar.

Epiphany Screenshot

Epiphany just got sexy (click to enlarge)

Empathy also has a new video calling UI, and Seahorse, the GNOME keyring application, has been given a facelift.

The GNOME keyring application

UI Components

There have been a number of improvements to GNOME’s user interface toolkit and visual theme this cycle. Application menus have now arrived, so that GNOME applications can place a menu in the top bar. This will be an important feature for future application design work, and a number of applications, such as Documents, Contacts and Epiphany, are already using it.

Epiphany Application Menu Screenshot

Epiphany's application menu

Smoothing rough edges and improving polish has been a big focus for 3.4. Several user interface widgets have also been substantially improved for the release. Spin buttons, which were rather tricky to use previously, have been re-engineered to make them easier. GNOME’s colour chooser dialog has also been modernised, and is vastly improved as a result.

New Style Spin Buttons

The new colour chooser dialog

The GNOME 3 visual theme has also received a lot of work this cycle. Many of the changes are subtle, but almost every part of the theme has been modified in some way. The overall effect is that it feels and looks much better.

The toolkit crew are also working hard to get smooth scrolling included in 3.4 and, I’ve been told, are almost done. This will be a major improvement to the whole experience if and when it is incorporated.

Core User Experience

Improvements have also been made to the GNOME 3 core user experience. One of the most important of these is the new ability for applications to act as search providers for the Activities Overview. GNOME Documents is already taking advantage of this, meaning that you will be able to search your documents directly from the overview.

These changes to the way that GNOME 3 does search means that any application will be able to provide search results for the overview. Eventually we hope that searching from the overview will allow you to tap into virtually all of your applications from a single place.

Search documents from the Activities Overview

The Activities Overview also features a lot of small improvements, thanks to the Every Detail Matters initiative. This includes many bug fixes and visual improvements, such as restyled application and window labels. The overview should provide a much smoother and easier experience thanks to these efforts.

New style window captions

New style dash labels

There are also some nice enhancements to the GNOME System Settings, including better looking power settings and enhanced graphics tablet configuration.

Power Settings Screenshot

Power settings, now with pretty charge indicators (click to enlarge)

There are lots of other changes in 3.4, of course: there have been improvements to GNOME 3′s built-in screen recorder, a live wallpaper that subtly updates throughout the day has been created, and we have new, fully integrated authentication dialogs for networking. And I’m sure there are many other improvements besides those.

Altogether, the changes in 3.4 should provide a much nicer, smoother experience. This is also an important release in terms of what it means for the future. 3.4 contains the results of GNOME’s new focus on application development, which is something that will continue for a long time to come. It also provides new facilities for applications – such as application menus and integrated application search – that will become central parts of the user experience in the future.

Thanks to everyone who helped with the screenshots for this post!

Comments on this post are now closed


February 10, 2012

A New Approach to GNOME Application Design

One of the things that the GNOME design crew have been focusing on recently is creating a new approach to application design for GNOME 3. We want GNOME applications to be thoroughly modern, and we want them to be attractive and a delight to use. That means that we have to do application design differently to how we’ve done it in the past.

Design is always an iterative process, and the new GNOME application design approach has been steadily evolving for some time. There have been lots of design ideas and mockups, and there has been plenty of testing of prototypes and of proper implementations. This process has resulted in some design patterns being consigned to the scrapheap while others have come to have an increasingly important place in our hearts. Slowly but surely, things are starting to fall into place.

As the new GNOME 3 application design approach has stabilised, we have been able to pursue the development of more new applications. GNOME Documents and Contacts have been joined by Boxes, Web and Clocks. We also have designs in the works for many other new applications, including Mail, Videos, Chat, Photos, Calendar and more. Each of these new designs utilise the application design approach that we have been developing. We are also starting to document our new application design approach in a new version of the HIG. This will help application developers to create their own GNOME 3 apps.

In what remains of this post I’m going to try to give you a taste of the new application designs, as well as give a bit of background about why they have been designed in the way that they are.

Maximised Windows

GNOME Web Mockup

Displaying multiple windows at the same time means that screen space isn’t used efficiently, and it means that you don’t get a focused view of what it is that you are interested in. Windows that aren’t maximised also create additional tasks for people. Often you need to adjust their size, or you have to move them around.

These are just some of the reasons why GNOME 3 applications have a particular approach to windows. In general, their primary windows will maximise by default, and they will lose their titlebars when they are maximised (smaller utility applications will not be affected by this). This will mean that the screen will be dominated by the window that you are focused on. It will also mean that the maximum amount of screen space will be devoted to useful stuff (like content).

Views

Each window of a GNOME 3 application can display different views, so that you can navigate to different parts of the app within it. Breaking up an interface into different views makes it more efficient and more pleasurable to use. It means that the content and controls that are displayed are always relevant to the task in hand, and means that superfluous interface elements are kept to a minimum.

GNOME Music Mockup

The designs for the GNOME 3 Music app are a great example of this. It contains a view for browsing and a view for looking at a particular album, artist or playlist. Each view only contains content that is relevant to the current activity, meaning that each experience is enhanced, and that you travel through the application to the functionality that you want, rather than having it presented to you all at the same time.

Primary Toolbars

The Clocks Primary Toolbar

In GNOME 2, primary toolbars were like a toolboxes. They were a mixed bag, containing a variety of things that might or might not be useful to you at any given time. There was also a lack of consistency between apps, and the layout of toolbars often didn’t help you to understand their functionality. Together, this gave toolbars a high cognitive overhead and meant that they lacked visual elegance.

GNOME 3 primary toolbars are a bit different. They will only contain a few elements, and they will be much more consistent across applications, making them much easier to use. Their contents will also follow common alignment points, so they will look much nicer.

Primary toolbars in GNOME 3 also play a navigation role. They take over the job of labelling the view from the window titlebar, and they are at the top of the user interface’s hierarchy, framing content and providing key mechanisms for interacting with it. They’re object orientated.

Selections and Contextual Actions

GNOME Documents - Selections and Actions

The design pattern for making selections and acting on them is the result of a lot of work. It has been through quite a few iterations. Jimmac even created a whole series of html prototypes to help determine the best approach. There’s still one online that you can try.

Selections and contextual actions revolve around the checkmark button. Pressing it activates an overlay that allows multiple items to be selected and acted on using an overlaid toolbar.

The new design makes selecting multiple items possible without the need for a keyboard (since shift and alt modifiers aren’t required) and is touch compatible. Providing a separate space for contextual actions also guides users by providing a consistent mechanism for acting on content.

Search

GNOME Documents Mockup - Search

Search can be an incredibly powerful tool, and it is central to GNOME 3 application design. Search will be ubiquitous and instantly available within GNOME 3 applications. If you are not editing a text field or a document, all you have to do is start typing to initiate a search.

Search will also be accessible using this nifty pull-down search design. This is a nice way of making search always available without having search boxes attached to every single grid or list of content. There are also variants of the design pattern that will allow you to use predefined filters on your content.

And more

There are many other application design patterns that we’ve been working on, including application menus, a new grid view for displaying collections of content, in-app notifications, new models for dialogs, nice full screen controls and a sidebar list pattern. Together, these provide the opportunity to create applications that efficient, modern, elegant, and a pleasure to use

The design patterns that I’ve introduced in this post aren’t the end of the story though. This new approach to GNOME application design is still evolving. We’re still testing the patterns we have come up with, and there are still missing pieces to this new application design approach. We are still investigating how to make maximised windows work well on very large screens, for example.

As the new GNOME applications develop, so will the design patterns. Everyone who is working on these new applications – both developers and designers – are helping to determine the shape of GNOME’s next generation of applications. And if you want to contribute you can also play a part.

Edit:

Judging by the comments it would seem that there is a bit of confusion about what is meant by maximising windows by default, so let me try and clarify:

  1. Not all applications will use this behaviour – only those that have been designed to do so. If an app won’t work being maximised, it won’t be.
  2. Although these applications will maximise by default, it will still be possible to unmaximise them. If you want to be able to view more than one window at once you will still be able to do so.
  3. There will be mechanisms put in place that will adjust the behaviour to compensate for large screens. We are currently investigating a number of options here, including not automatically maximising windows on these large screens or adjusting their layout to make best use of the extra space. Everyone involved is well aware of the need to work well with large screens!

Comments on this post are now closed


December 12, 2011

Touch Input Scroll Breakdown

In the next installment of teh Blender for Motion Design series, we look at constraints and shape keys. Download the project file if you want to continue with the dissection yourself.

Touch input Scrolling Breakdown

November 22, 2011

We Deliver

As you know, in GNOME, we’re committed to bringing you the easiest, most beautiful, and most advanced operating system in the world today. A major part of this effort, now, is to build a suite of amazing core applications that provide the operating system key or essential features. Today, I’d like to talk about our goals for one of these apps. It is just the earliest stages but here’s a taste of where we’d like to go.

I’m pleased to introduce you to…

“Absolutely, Positively Anytime”

Boxes is designed to be the easiest way to use or connect to applications running on another Windows, Mac, or Linux system. Whether the system is virtual and local, a home computer you need to access from the road, or a centrally hosted corporate login — we’ll get you there.

We’re taking a different approach. We’re focusing on you. Your stuff. Your work. Your time. Leave it to us to worry about whether the system is local or remote and keep your mind on your task. The user experience is streamlined to keep you focused on your content. Anytime, anywhere.

What can Boxes do for you?

If you are reading this post you are very likely a GNOME contributor in some way. So, that’s where I’ll begin.

If you are involved in designing, developing, translating, documenting, testing or any of many other crucial activities responsible for producing the next kick-ass version of GNOME you need to be working with the supple green and tender new growth. And here’s the thing about the supple tip; it ain’t always good for standing. We want GNOME to have built-in support for bridging this gap. It needs to be dead easy for us to participate in the future of GNOME. Running the latest git master in a Boxes virtual machine is a great way to do this. We want to invite a new generation of readers to become leaders.

Perhaps you are an application designer or developer. We want to make it simple as pie for you to try out the competition on other systems. We know you can do it best.

Perhaps you are a web developer and need to ensure your site renders correctly on a variety of platforms. Or occasionally need to use that ugly proprietary program your client makes you use. Don’t spend money and effort on keeping separate systems running. Run them all in Boxes.

Are you a system administrator with that one last expensive, stodgy, and hard to update proprietary app blocking your migration to free software? Box it up.

Are you excited to finally try out GNOME and experience the best of open source but worried about leaving your old familiar system behind? Take it with you. And use it anytime, anywhere…

Without the fuss.

“When you absolutely, positively, got to kill every motherf***** in the room”

We don’t aim to do it better. We aim to do it best. With the power of Linux KVM based virtualization, the efficiency of the SPICE protocol, and the elegance and ease of use of GNOME — accept no substitutes.

So, let’s get started. Check out the design whiteboard. Zeeshan will fill you in on some details and give a brief demonstration. Be sure to ask how you can help!

November 13, 2011

Blender for Motion Design — Part 7, Animating Textures

Took a while to bring you another part. Enjoy.

See Part 7

October 02, 2011

SparkleShare Plugins

Yesterday I did some work on adding plugin support to SparkleShare. This feature allows you to write your own plugins in the form of a simple XML file. It’s possible to preset an address or a complete address + repository, as well as which backend to use (only Git and experimental Mercurial at this point):

<?xml version="1.0" encoding="UTF-8"?>
<sparkleshare>
  <plugin>
    <info>
      <name>Red Hat UX Team Hub</name>
      <description>Internal server for the UX team</description>
      <icon>redhat.png</icon>
      <backend>Git</backend>
    </info>
    <address>
      <value>ssh://git@design.bos.lab.redhat.com/</value>
      <example></example>
    </address>
    <path>
      <value></value>
      <example>/project</example>
    </path>
  </plugin>
</sparkleshare>

Save the XML file (ending with .xml, and along with the 24×24px icon) in ~/.config/sparkleshare/plugins and it will appear the next time you start SparkleShare. Granted, it’s not a very friendly way to add plugins, but I’ll work on that.

SparkleShare Plugins

By the way: does anyone know how to make the secondary description line in the TreeView row 50% transparent and white when the row is selected? I guess I have to take the selection background colour and the selected text colour and then blend them, but I’ve no idea how… :)

June 14, 2011

Sparkly thingies

Hello everyone. Thanks for being here this morning. We’ve got some great stuff for you today.

Put some effort into revamping the SparkleShare event log this weekend. It aggregates all events from all your of folders into one window. Amazing. Much more useful and easier to see what what happened to all your projects during the time you were slacking off. Fantastic. Dealing with several windows felt a bit clunky, so now you can filter the list by using the dropdown at the top. Great. The folders in the menu now take you to the actual folders instead of opening a log, which is a much better mapping. Super easy.

Also added libappindicator support so it integrates well on Ubuntu with help of Bertrand. All of this will be available in stores when someone decides to package it.

Thanks for coming. We’ve got a hands-on area for the press set up. See you soon. Thank you very much.

June 08, 2011

New Pony

For a long time I was of the opinion that the problem with file management was the management. And the problem with file systems was the system. If only we could design a better management system we’d be all set. I think that turns out to be wrong. We didn’t need a better horse. We needed a new vehicle.

Everything is a file (until it is better).


This poses quite a dilemma for the design of Finding and Reminding in GNOME 3. So it is worth spending a bit of time investigating.

First, let’s limit the scope to the type of stuff we use files for today. For most people this is basically: Documents, Music, Pictures, Videos, and Downloads.

Documents are a bit hard to define. I guess in the “Places” scheme it more or less meant anything that isn’t Music, Pictures, Videos, or Downloads. An accepted definition seems to be something like: page-based information or evidence usually created by an application. Which probably means that most web pages aren’t documents until saved as PDF or something. This seems pretty close to how we use it.

Clearly, documents have been files. Even Merriam-Webster includes the term file in the definition. But are they always files and will they continue to be? Since quite often Documents are just a shorthand for Office Documents let’s look at what is happening there. Will such documents continue to live solely as files on your computer hard drive and be shared as email attachments? Not with Google Cloud Connect for Microsoft Office. And not with Microsoft’s own cloud initiative. You don’t open a file – you connect to a document.

Even when you look directly at the Google Docs app interface it is really hard to identify the documents as files. It isn’t just a cloud drive with a bunch of files in it. There is no “native” file format. At least to the user, the things just are what they are – spreadsheets, drawings, etc. The unit of storage is an implementation detail that just doesn’t matter until you need to export to another format – which is rare.

And the big news this week is that Apple announced they too will be hosting documents in the cloud:

Every doc, every edit, everywhere.

Not because of hype, not just to make money – but because it is better.

Music is slightly different in that we’re accustomed to both possessing and streaming music. Our purchased music lives in files on our various devices and we have elaborate systems for moving it around and backing it up. However, this too is changing.

Google Music is a serious attempt to dramatically improve the user experience around music consumption. It is:

A better way to play your music. Upload your personal music collection to listen anywhere, keep everything in sync,
and forget the hassle of cables and files.

It isn’t a coincidence that files are mentioned here explicitly.

Yesterday, Apple announced that the key part of iCloud is iTunes in the Cloud. And the pitch for this was in part:

…music you purchase in iTunes appears automatically on all your devices.

Without concerning yourself with downloads or files. Really, iCloud is all about elimination of files from the user experience. That is part of what is meant by “post-PC”.

Amazon also has some interesting things going on here. It is really nice to be able to just click on an album in Amazon’s store and then be able to play it on all of your devices. Without downloading files.

But music not being tied to files isn’t that new. I have playlists on Last.fm, Pandora, and YouTube and at no point does the experience of creating them or using them expose me to files.

Well, you may ask, why do I have so much music on my computer then? Basically, because you put it there and you were working around the RIAA. Once you have a better place to put it you won’t. Music in the cloud is a better user experience.

Pictures are interesting for a few reasons. One thing is that even though you still probably have most of them on your computer you very likely don’t actually interact with the files. Cameras store them in weird ways and there are a boatload of crappy apps that help manage them. Another thing is that you all take a shitload of photos. Which is one reason I suspect that even Apple won’t be permanently storing all photos in iCloud by default. Also, some of you are shy and the rest of you are pervs. ;)

In any case, we don’t really think of the content on Facebook, Picasa Web Albums and Flickr as a bunch of files and more than not that is where we are looking at photos.

And again, it isn’t because it is fashionable but because it is better.

Videos can either be similar to photos or similar to music. There really isn’t much different from what I’ve said already in those areas. YouTube, Flickr, Picasa, etc are where we expect to find and share videos.

Downloads are different. In most cases I think this is more for temporary storage for something that doesn’t have a well designed and integrated workflow. In many cases we still need to download software before installing it, download PDFs before printing, or moving to a USB stick or some other type of file bouncing. I hope to investigate this more in future posts.

 

So, this doesn’t mean that files are going to go away. But we do need to start to think of files differently. Perhaps more like a cache. Perhaps the local system as only one of many possible data providers.

Avoiding files allows us to side step some of the most frustrating things about computer use. When Google says “we want to strip out what frustrates people about operating systems” a large part of what they mean is removing the concept of files. And all their related annoyances: syncing, backups, “I left that at home”, “I’m out of space”, “where did I leave that”, etc. Files are a mechanical world metaphor that retain many of the problems of “things” in the real world.

There really isn’t any disagreement in the industry about this. Where people seem to differ is in how to handle it. I think there are a few approaches here: deep application integration, web primary, and service aggregation. Apple/iOS is doing the first, Google/ChromeOS the second, and maybe HP/WebOS the third.

I think the third approach is the only possible one if you don’t have your own hardware, OS, and huge-ass datacenter.

This all leaves us in Free Software land in a bit of a pickle. Our relevance or even existence depends on how well we can navigate these clouds. But the sky is filled with flak: proprietary licenses, restricted trademarks, limited terms of use, brand “nationalism”, collusion and cooperative agreements.

It is a huge challenge that we must face. Even if you are personally happy to manually manage your local files – the rest of the world isn’t – and this isn’t about you. It is about our future and the future of free culture. This isn’t a problem for tomorrow. This is all happening right now. How do we enable these better experiences without compromising our freedom? What do we do about this new pony? Let’s figure it out together.

Well, you’re so bad and nasty
But I love you, yes I do

— Bob Dylan New Pony

 

June 07, 2011

Releasing SparkleShare 0.2!

A first stable release had been in the air for a while now, but issues kept creeping up every now and then that were holding it back. The result was too much rewriting of the code and adding of features than that is good for after a release candidate, but after about two weeks of no critical bugs being reported, and the fact that it’s succesfully syncing my Linux box and Mac, after about a year since the start of the SparkleShare project, I’d like to finally announce SparkleShare 0.2! :)

Get the Linux an Mac versions fresh off the front page. There is a Mac binary available, but for Linux there’s still only source code. Hopefully the Linux distributions will make installable packages very soon. Please read the documentation before getting started.

Changes since 0.2 RC1

  • Added support for Growl to show notifications on Mac.
  • Removed the dependancy on GitSharp.
  • File rename detection support in the event logs.
  • Fixed all crashes reported in RC1 and improved sync algorithm.
  • Redid collision detection and conflict resolving (use a copy of each version).
  • Improved about dialogs with version checking.
  • Pluggable backend (experimental Mercurial support).

Known issues

  • For now, a central notification server (an irc daemon) is needed to notify clients of changes because there is no specific server side code yet. Only update infomation “Hey, there are new changes on the server!” is send. You can override this to use your own server by adding a <announcements>my-server.com</announcements> element to the appropriate folder element in ~/.config/sparkleshare/config.xml.
  • The Mac version doesn’t have file manager integration yet.
  • Resuming from suspend is a bit buggy. Restarting SparkleShare fixes it.
  • SparkleShare won’t yet be notified of changes made to the git repository manually by using the command line tools.

Plans for the near future
I would really like to try and get more people involved to work on the Windows version (it runs, but it’s hard to get running and it doesn’t integrate well with the system) and mobile versions for Android and iPhone (these would be simple clients, able to browse your files on the server, download and upload stuff, etc.).

Now that SparkleShare’s backend is pluggable, I’d like to implement something based on SFTP or similar. While Git is very cool, it’s not always the best solution for storing huge files in. So there are problems to be solved there. Git support will definitely always stay by default though, because it’s the most awesomest DVCS ever made. The right balance needs to be found between having a history and not using too much space.

More ideas can be found on the wiki. Join the IRC channel: #sparkleshare on irc.gnome.org, if you’re interested in helping.

Finally…
…I’d like to thank all contributors and testers. Specially Alex Hudson, Bertrand Lorentz, Lapo Calamandrei, and Łukasz Jernaś. Thanks!

Now have fun and create cool stuff!

May 03, 2011

Today was my first day…

…here:

Red Hat

April 25, 2011

Resistance to making things better

Bikeshedding is very common when building things in the open. You get used to it, and you learn which comments are contructive and which ones to ignore pretty quickly.

One thing I still don’t understand though, is this resistance to making things better: denying there is a problem, and trying to think of reasons why you should not improve things. This isn’t because “your design sucks” or “you should have done it this way”, those kind of comments can actually be useful to an extent. The kind of comments I’m talking about are the ones oblivous to the points made and those that just resist change for no good reason.

I bumped into it again on this article at OMGUbuntu! (the writer has good points). Sure this is OMGUbuntu! which can be considered the new Slashdot (comments) from time to time, but because this one was about the font install dialog in GNOME that was redesigned by me and Thomas Wood about two years ago, it reminded me of the same comments we got at the time.

I did a bit of quote mining. Now some of these could be taken with a tongue in cheek kind of way, but it wasn’t very clear. You can read the comments yourself too.

Um… Just drag the folder into Fontmatrix, confirm you want to install those 20 fonts, tick families to activate

I don’t know if you hunted those chocolate eggs, in my ~ the .fonts folder isn’t really far away. Just had to copy fonts there and update the cache.

how is putting fonts in folder called .fonts not intuitive? And setting up a preconfigured copy operation is very easy. You can even add this folder to your favourties on the left and just drag the files onto it…

On ubuntu just double click… Only power users have to install a lot of fonts at same time, and they’re smart enough to locate the .fonts folder!

A simple custom action in Thunar would solve this.

sudo apt-get install nautilus-actions

I always install fonts manually (both on Windows and Ubuntu) just because I like it.

kde has a font installer does what you need

You can install fonts via synaptic. There is a package there that has 500mb of fonts.

This article is really a non-issue unless you install twenty fonts at a time, in which case, opening a file manager is really nothing hard and much better than cluttering up the right-click menu.

I found the same kind of backlash (altough to a lesser extend) in my post about the first redesign.

there is (was) an easier way to install fonts in gnome just write “fonts://” in the address bar of nautilus and drag and drop the font you want to install

I’m confused. Why is putting something in /.fonts so hard? When I download a font, the archive manager asks me where I want to stick it. So I say, “Archive Manager, my good man, put it in the .fonts directory,” and it is done. And the next time I fire up whatever program, lo, there is the font.

Why is this, and what can we do about it?

August 09, 2010

Shotwell usability testing

As part of the UX advocates project, I’m working together with Charline Poirier of Canonical to conduct some usability testing on Shotwell (which is scheduled to be the default photo manager in Ubuntu).

To get an idea of how we should construct the tests, I did a preliminary one: I just grabbed a friend, gave her a few tasks and watched her using the program. I’ll explain the procedure more in the next post, first up are the results:

Scenario

  1. Get photos from camera
  2. Select the best, delete the rest
  3. Edit when needed
  4. Categorize
  5. Upload to Flickr

Participant
German user, advanced digital and analog photographer, Ubuntu user since 6 months. First time using Shotwell, normally uses file manager and Image Viewer, sometimes Picasa (for editing) or Photoshop when on Windows. Names folders after events (e. g. »Hamburg«) and pictures »DDMMYY (##).jpg«.

Results

For the problems that already had a bug filed in the ticket system, I attached the corresponding one.

Get photos from camera

  • Drag & drop from device to »Photos« does not work (proceeds by clicking »Import all«): »That was shitty, I always use dragging.«
  • No automatic renaming for photo title / file name [Ticket]
  • After importing, unclear what »Behalten« means (keep photos on device)

Select the best, delete the rest

  • No delete button in the toolbar
  • Remove dialog does not have an option for »don’t ask again« (like Image Viewer)
  • Library is confusing: »If I say delete, I want to have it deleted.« (from the hard drive) »Otherwise you always have duplicate photos.«
  • Initially thought that zoom slider is a horizontal scrollbar [Ticket]
  • Hide function frightens (»Aah«),no way to view hidden photos, continues by undoing it: »I wouldn’t know any other way to recover it.«

Edit when needed

  • Edits not directly visible while sliding, only when slider stops [Ticket]
  • Plays around with sliders to see what happens [Ticket]
  • Sliders sometimes jump too far when not »correctly« clicked
  • Not obvious that the histogram can be adjusted (did not use histogram editing that often)
  • Discovers after a while that histogram changes when moving sliders, didn’t notice it before
  • Accidentally discovers that menu can be moved: »The mouse cursor did not look like it.«
  • Likes to get menu out of the picture
  • Position of »Adjust« menu is reset
  • Not obvious that »Enhance« is automatic (especially because »Adjust« is a menu), expected a similar menu [Ticket]
  • »Enhance« is too extreme: »This overdoes it a bit.« [Ticket]
  • No »Undo« in toolbar, starts to use keyboard shortcut Ctrl + Z (on German keyboards, Z is where Y normally is)
  • No function to sharpen image [Ticket]
  • »Crop« handle seems hard to use (looks like the window manager handle which is sometimes only usable in a very small area), expected a double-sided arrow
  • Drop down menu opens with all the entries below, needs to be scrolled down to see them
  • »Do I need to save after editing?« »I always think I need to save. I don’t, right?«

Categorize

  • How to rename pictures? Did not discover / expect »Titles« in view menu [Ticket]
  • Photos can not be reordered by drag &amp; drop
  • Expected »Sort Photos« in »Photos« rather than »View«
  • Created an event from photos and wondered why they were sorted the other way round, (previously edited sorting order while trying to reorder)
  • About the tag function: »I never use that. Everybody always says I should but then I would have to do that for all my photos.« [Ticket]

Upload to Flickr

  • »Publish« does not work if no photo is selected, not obvious
  • Has problems selecting specific photos (uses Shift instead of Ctrl)
  • Need to choose if one comes from the program or from a sent link: »Why doesn’t it know that I used the program?«
  • Flickr site in English, likely because my account is configured to English (used mine because user forgot the password)
  • Label of »Publish« button is truncated for German translation »Veröffentlichen«Wants to go to the library because the upload takes long, does not work [Ticket]
  • Visits Flickr site to check uploaded photos [Ticket]
  • Normally does not give photos on Flickr titles (removes them after uploading)

General

  • Found welcome popup not overly helpful: »Better than nothing but it is obvious that you need to get photos from somewhere.«
  • Sees right-click context menu as unordered: »Lots of weirdly chosen items from the menus.«
  • Double-click good (»Like on YouTube«) but inconsistent: Switch between grid and single, but not exiting slideshow
  • Button for »Leave fullscreen« not obvious: »Maybe an ›X‹?«, expected the button to just make the slideshow smaller
  • Slideshow has settings only for one setting
  • Delay slider behaves weirdly [Ticket]
  • »Fotos« whereas in home it’s »Bilder« / »Photos« whereas in home it’s »Pictures«
  • Accidentally clicks help, browser opens: »Oh no!« »I don’t like that at all.« [see below]
  • Help contents open a browser, English only: »The address already looks fishy.« »That’s exactly what I imagined! Everything in another language, unordered and everything is called differently.« »I expected something like the help window in Word, that would have been ok.« »While searching in the help I could instead search for the function myself.« [Ticket]
  • »Zum Schlüsselfoto für dieses Ereignis machen« / »Make Key Photo for Event« not obvious, does not know what it does
  • After discovering it: »Maybe ›Album thumbnail‹ would be better.«
  • Can not figure out how to adjust date and time, tries to click on the left pane, right-click on the event dates
  • Sees »Exposure time will be shifted …« as nice to know, but not necessary
  • Did not discover star after marking a photo as favorite
    Likes »Adjust Date and Time« function as good for scanned photos
  • Likes that empty events are deleted automatically

August 01, 2010

Shell Yes!

Back home after a typically exceptional week at GUADEC.  It is always really inspiring to be surrounded by so many people who are passionate about GNOME.  This year was particularly special for me because we are really starting to see the next wave of heroes becoming more involved with the project – and making an impact.

The overall tone of the conference was amazingly positive and productive, welcoming and fun.  Which seems to be a bit of a contrast to the debates and discussions that have occurred online in reaction to some of the talks.  It is at once sad and funny.  Well, tragic really.  Deciding who is right isn’t interesting if the question isn’t the right one to ask in the first place.

We are dividing and conquering ourselves – lost before we begin.  Are we so hungry and desperate that we must devour each other in order to survive?  I hope not.  These tribal distribution boundaries are guarded jealously and they fight over the smallest (one) percentage of the market and mindshare.

I think it is time we reunite.

If we want to change the game, think big, and demonstrate that we can truly be relevant – we need to work together. If we want to change our approach from mere assembly to something that we design and construct with consideration in a unified and coherent way – then we need to start at the source. We need to start with GNOME.

What lies underneath is mostly just implementation detail. What matters is what we expose to the user and the developer. I propose that we take notes from Android, WebOS, Meego, and others and consider Linux an implementation detail and start to define the OS as we see fit.

The question is not can we, but will we?

Shell YES!

Please see the slides from my talk for a bit more on this topic.  Read the notes for each slide for some idea of what I was saying since I wasn’t reading off the slides.  Hopefully the video will be available soon because there were some fantastic questions asked in the discussion period that followed the slides.

April 07, 2010

The Grip, the Trip, and the Slip

If you’ve been following the GNOME Shell design documents you may have noticed that it had these FIXMEs and sets of random notes where there should be designs for what we’ve been calling the finding and reminding problem.  Now that some of the other parts of the design are falling into place – ’bout time we get to it.

What is “finding and reminding”?  Generally, having a simple and effective way to keep track of, recover, and be reminded about various types of content and information.  In the traditional desktop computing model this often meant “file management.”  But this is 2010 and we just don’t want to party with files or management anymore.  They used to be cool but now they’re old and out of shape and make us do a lot of boring work and status reports every week?!  Sorry.  Back on track.

Most traditional computing environments offer a variety of tools which attempt to address aspects of the problem. These often include:

  • “Desktop” (folder)
  • “Places” (folders or collections)
  • Search
  • Recently used lists
  • File Manager (eg. Explorer or Finder)
  • File open/save dialogs

You’re probably thinking “hey no biggie they all work together or at least consistently, right?”  Nya.

Functional Evaluation

Well, if you take a step back and you think really hard about the problem and analyze the interactions and you’re super clever, you can come up with a functional evaluation of the system.  Or you can just cheat and find them in journal articles like I did.  Actually, I smooshed a few together to come up with the following categories of information:

  • On hand (grip) – should remain easily and quickly accessible while relevant
  • Under foot (trip) – should be visible to facilitate opportunistic finding and reminding
  • Out of sight (slip) – when the shelf life of the first two types of information expires it should gradually slip out of view

Information that is frequently used or currently relevant should be kept around and readily available. Information that is incomplete or needs attention or action should be kept in a place where it may be tripped over to offer opportunistic finding. Other information that may no longer be immediately relevant should be available but out of the way so it won’t interfere, clutter, or confuse.  Out of the way information should have a distance that is roughly proportional to its relevance (likely time of last use).

To be most useful the information retrieval system should be:

  • Available – ubiquitous access
  • Persistent – can be relied upon as a record
  • Current – up to date and relevant
  • Contextual – includes information in context
  • Present – serves a useful reminding function
  • Shareable – easily shared between people
  • Transparent – don’t require effort to maintain

The system should be designed with the following types of users in mind:

  • No Filers
  • Spring Cleaners
  • Frequent Filers

GNOME 2

OK then.  If we use that kind of analysis to evaluation GNOME 2 how do we fare?

It turns out – not that well.  It requires too much work, is too isolated, lacks coherence and context, and doesn’t keep the right information on hand or in sight.  I’ll spare you the details until the end.

GNOME 3

So let’s try to do better next time.  Oh wait, that’s like now isn’t it?  OK.  Hmm.  Here’s an idea…

How might we design a solution that marries the Desktop, Search, Places, and the Recently used list? How might the roles complement one another?

  • What if the Desktop was a place to stage items that need to be addressed?
  • What if items could expire from the Desktop and fall safely into a time ordered list and eventually into an archive bucket?
  • What if Places were just a default set of tags that can be used as filters?
  • What if we had enough abstraction from the filesystem that we could transparently include non-local information in the same view?
  • What if we had enough abstraction from the filesystem that would could include information that isn’t that file-like?
  • What if this same desktop+timeline view allowed me to schedule items to address in the future?
  • What if similar or related items were automatically stacked together so they don’t clutter the Desktop?
  • What if I could access my Desktop from anywhere?
  • What if the Desktop wasn’t hidden behind all my other activities?
  • What if I could easily share my content with others?
  • What if everything in my archive was readily searchable and had rich contextual metadata?
  • What if it was easy to add almost any kind of item to the Desktop?
  • What if one had the ability to tag, star, and make notes about content directly from a document window?

Might be pretty sweet actually.  What could this look like?

Hold on.  What are we looking at here?  Sigh, I mean besides a lot of lazily duplicated document icons and some poorly pixel-grid aligned… (Hi jimmac – I’m trying but it is late)

Essentially it is a representation of the following schematic:

  • This coming week
  • Tomorrow
  • Desktop (Now)
  • Today
  • This week
  • Last week

If things aren’t pinned into the Desktop they will gradually fall down the view until they safely drop out the bottom into the Archive.

Items may be filtered by any number of labels. A useful set of labels would be provided by default but users may add their own as well. Items may be starred to denote relevance or whatever meaning the user wishes to assign to that designation.

I’ve written up a lot more boring details on the wiki so feel free to check it out and make comments in the appropriate section.

What do you think?  They tell me it is doable.  And no it’s not a pooper.

Drop by the GNOME Shell design office hours today (Wed) 2 – 4PM EDT (UTC-4) on irc.gnome.org:#gnome-shell and let us know what you think.

March 03, 2010

Above the clouds

Finally settling back into the groove after an exciting week in London at the GNOME 3 Usability Hackfest.  Despite the title of the event, I’m glad that it turned into a wide-ranging, and multidisciplinary discussion of user experience design for GNOME 3.  These kind of free-form, high bandwidth, and deep tissue discussions are so much more effective in person.

We started the week by talking about high level goals and broad stroke experience design.  It was awesome that Seth Nickell was able to be present for this and, as always, brought a lot of fantastic ideas and energy to the conversation.  These discussions and the goals for GNOME 3 that we list in the GNOME Shell designs seemed to inspire some of the various blog posts he made during the week.  It was a lot of fun to “throw up waves of leaves and dance in them.“  However, of course, one of our next challenges will be to try and figure out how to rake them back into piles.  I’ll try to cover that in another post, soon.

For me, two things became clear after these discussions.  The first is that we have a really compelling and exciting story to tell about GNOME 3.  The second is that we need to do a lot better in telling that story.

This kind of big picture thinking and goal setting is really valuable and far too rare.  It allows us to establish markers to help navigate and iterate our way forward with more confidence and less risk than simple dead reckoning.  Without overly specifying or constraining the path.  This is an important thing to remember on any journey – be it a trip to London, a stroll through the woods, or a software design and engineering effort that may change the world.  Don’t believe a 5 year plan.  Allow for the unexpected.  Leave room for fun.

What are the goals for GNOME 3?  I can throw at few at you.  But feel free to come up with your own.

gapingvoid.com

Yes, I’m super serial.  It’s in the GNOME Shell design document.

Inspire the world.  With our designs.  Our code.  Our culture.  Our ability to listen and adapt.  Our get shit done ethic.  Our spirit of adventure.

Prove we’re relevant to a broad spectrum of people.  Finally start to meet the promises and match all the big talk.  Show that everyone deserves great design, an open and accessible platform, and a participation model that facilitates and encourages personal growth from “reader to leader.”

Provide a framework for taking responsibility for the user experience.  No more excuses.  No more: NOTGNOME, not my module, not my problem.

Help us cope with modern life in a busy world.  Help us connect, stay on track, feel at ease and in control.  Manage being informed without being disrupted.  Allow us to get deep in the zone while our next activity only a gesture away – right where it always is.

Design a first class technical platform that can meet the challenges of and take advantage of the capabilities of modern computing hardware.  Bring desktop programming into the web age.  The Shell is Javascript and CSS – yes, that Javascript and CSS.  The same ones that a gazillion teenagers are playing with right now.  Provide a clear and consistent guidance to application developers.

Sound good?  Love to hear what you think.

[Will continue with more from the hackfest in the next few posts]

Feeds