The Trouble with Explicit Loading and Saving

Much of today’s users experience with common software is still shaped by a bottom-up approach, starting from what has been possible within the constraints of hardware from long ago. It’s like most what we have resembles Assembler, C and C++, not Lisp, Smalltalk or Haskell.

Of course, some of the constraints are still there and won’t magically disappear because you take a bottom-down approach, starting from the user, not the hardware side.

Take the explicit loading and saving of Files. The reason for it is the lack of affordable memory that offers relatively high capacity, is fast enough to not be too much of a bottleneck, and that is persistent even without power. The usual workaround is using hard disc drives and RAM of rather limited capacity.

The need for loading and saving files, even when no removable media is involved, can’t be understood without this technical background. Actually, a naive user might not be aware or think of even the mere existence of a hard disc drive and RAM. It’s all just the computer. Without a sufficient mental model, no predictions can be made. Instead of confidence and flexibility, you will likely see clinging to rituals known to be safe, but that might contain unnecessary steps.

The split between a file on disc and a file in memory becomes interesting, if you open one file in several applications, or move or rename a file you have loaded somewhere. Instead of having one thing in one place with one current state, you get 2 or more things (or one thing with several states) in 2 or more places. If you want to rename a file you are currently working on (and exactly that work might be what leads to a better name), you either have to close, rename the file and load it again, or use Save As and later on remove the old version. Too complicated for a task that should be atomic.

Ideally files should just appear open. Progressive rendering, Caching and modularised applications where viewer components are loaded first, could help to approach the ideal.

Having to safe explicitly sucks. It’s not unreasonable, and I suspect common, for first-time computer users to expect changes to just persist, as that would be in line with real world experiences. If no revision control is involved, you might run into situations where you have to think about whether saving the current version might destroy a previous version you might want to keep. Saving shouldn’t be destructive.

Maybe one day we will have memory that combines all the desired characteristics, allowing real persistence and immediate access. Until then, it should be considered to mimic persistence without destroying data by automated commits to a revision system. Finding the right strategy regarding power consumption, noise and safety is tricky, of course. In the most simple case, such a system would permit you to just keep working, never interrupting your thought with repetitive management tasks like saving. More advanced use would include tagging states to return to them easily (resembling commits). Selected states could be collected in sets, resembling branches with a carefully crafted history, so they can be published. Thus instead of a hard break between simple use and the needs of software developers, there could be a progression.


Intelligent Design instead of Evolution

The Trouble with Evolution

A few years ago I decided to try Ubuntu’s default email client Evolution, as that seemed convenient. It was just there and I had no clear preference, after leaving mutt behind because my approach with it didn’t scale to the amount of email I burdened myself with.

Evolution worked reasonably well, but at some point started to fail at emptying the trash. A few mails would remain in there until a restart. Seeing emails that I moved between folders in the trash kept making feel uneasy, even after I understood that it are just copies. Deleting or renaming folders sometimes works and sometimes results in utter chaos that can only be fixed by restoring a backup.

Since the last update with Ubuntu 10.10, Evolution does not quote the content of HTML emails any more, unless I select the text beforehand (known issue). The way editing emails works with blocks of content often leads to situations where I fight with the program in a way that I only recall from MS Word (well, OO Writer, too). And now Evolution sometimes dies when I click Send.

Why I didn’t make sure there are bug reports for these issues? With one exception where I did do so, they are all random, so I can’t list steps to reproduce them. Not to forget that switching to another application takes less time …

After looking around for other options, I chose Thunderbird.

To be fair, I can’t yet know how it fares regarding reliability, but I already know it does account setup much nicer and feels less clunky. Also: hooray for incremental search!

How to migrate from Evolution to Thunderbird

I followed this guide for emails. The only issue was ending up with the content of the Junk folder in my new local Inbox folder, so either emptying Junk or the old Inbox beforehand would have been a good idea. Otherwise I just had to mark everything as read again (and switch to threaded view).

Evolution exports the addressbook in vCard .vcf format. This online tool allows to convert that to LDIF, a format that Thunderbird can import (found via their wiki).

Mailing lists


Once in a while, but frequent enough to be annoying, someone asks to be unsubscribed from a mailing list. Explaining how they have to and can unsubsribe themselves off-list means making it likely several such mails will be send. Doing it on list adds more junk to everyone’s inbox and the archive.

Perhaps subscribing to a mailing list is too simple, if it is that much simpler than unsubscribing? I wonder if there should be a quiz to make sure people understand how to unsubscribe, before they can subscribe.

BTW, are there special email addresses to get on and off Ubuntu’s mailman lists?

Digest mode

Replies to digest mode mails tend to be confusing, have no proper subject and often indicate that the sender does not have a good idea of what’s going on. For these reasons, I think digest mode is harmful and would be glad to see it removed. As to the recipients side of this: what’s the value of the same amount of text with less structure and a terrible interface if you want to reply?


Northern hemisphere summer 2017:

Ada walks into an electronics store to buy a new, larger pad, as she earned more than enough credits with her free-software contributions, recently. Instead of giving the old pad into a reuse-or-recycle program, she just handed it down to her little brother. Of course only after cleaning it of all her data and customizations with a single command (and a confirmation). The system automatically made sure there was a complete backup on her personal virtual server, first.

All the available devices, be it pads, laptops or wearables, have one thing in common: they come with a pre-installed system, but one that supports a common standard for installing an operating system environment of your choice. Or several in parallel. Ada chooses a pad to her liking and pays electronically, using a scheme that involves a one-time proxy account. This minimizes the information that the shop and her bank gain.

The new pad is ready for action on the push of a button. Plugging in here little key card—she tends to wear like jewelry—allows Ada to establish a secure connection to her server, despite using wireless.

2 touches later, her preferred system gets installed by pulling the base from the next public server and applying a patch-set that represents the changes she made while using the old pad. Differences in hardware are accounted for automatically, by use of a number of profiles and device-categories. She tests the configuration with an obscene gesture bound to a custom command … alright!

Both the software modules and her documents she accesses on the go are kept on the server and cached on the pad, though she can manage what is kept where and synced when in as much detail as she wants to. Downloading and installing has become just using it (almost) immediately. Ada recalls vague memories of how laborious migrating data and settings and keeping things in sync used to be and smiles ๐Ÿ™‚

On Design Contests in FLOSS

It seems to be somewhat popular to hold a contest, if a FLOSS project needs a (new) logo or other seemingly singular asset.

Proponents may bring up that a contest would:

  1. lead to large range of choices thanks to the shear number of participants.
  2. generate publicity, as both the announcment and outcome of the contest may seem newsworthy.
  3. attract new contributors to the project.
  4. Demonstrate commitment to openness, community-building and meritocracy
  5. The community can vote on the result, democratically.
  6. At least the winner, if not other participants, too, gets a portfolio piece out of it.


  1. Much of the increased quantity will go along with low quality. In the end, what you need is one great concept in one great execution
  2. You may get publicity, yes. But what message does it send?
  3. Attracting new contributors this way could work, but so far I only heard experiences to the contrary.
  4. You may demonstrate a commitment to openness, perhaps. A contest does not speak of, or encourage, collaboration, but rather of everyone against everyone else. Building on the work of others is discouraged. Trying to reach consensus is usually done away with, you vote.
  5. The outcome of a democratic voting process is (even looking past the shortcomings of every possible voting scheme) only as good as the insight the majority has into the topic at hand. Seeing how often people see no issue with throwing drafts around with no briefing in sight suggests to me that this is not very good, usually. Maybe I contributed a tiny bit to the problem with some drafts presented without much explanation, but I can assure you that I always think about what I’m trying to achieve with a work, first.
  6. Regarding a portfolio piece: does having won a contest beat having gained the trust of a client and having worked with them successfully? All other participants would have been as well off with a made-up client/project.

What does it say about you, if you are fine with the number of participants all investing the time and effort it takes them to come up with proposals, just on the chance of creating the winning entry? Think about participants * time spend,ย  a limited resource.

One issue that tends to appear with contests, but is not intrinsic: No briefing, no message, no strategy. Visual design associated with a project should always help, or at least not be in conflict, with the goals of the project. Based of a briefing, a mission statement for the project, you can work out a strategy regarding your communication. Because visual design is communication, if you treat it as such consciously, or not. This leads to the message you want to get across and the tone you want to hit.

The assistance of a trained designer makes working out such a briefing easier, but doesn’t fit into the picture of running a contest so well.

What to do instead of holding a contest

Developing a briefing, as well as technical and legal requirements, is a task best handled by a very small group.

You may then select a single or maybe 2 or 3 designers, based on their availability and past work.

Or have a concept/drafting phase open for all. But instead of turning it into a contest, it should be a designer’s job distributed on many shoulders. This means to encourage that participants pay attention to widening the range of concepts early on, avoiding to all cover the same ground. Later stages should be marked by providing feedback to each other and generating small variations on the search for the optimum.

All that said, I’m guilty of having participated in the countdown banner contests, but only because I was so confident (or arrogant) of making it every time. Not to forget that I really like the topic and constraints :}

Somewhat related: 28 talking points, about commercial crowd-sourcing.

Towards a LibreOffice Briefing

This has to be discussed inside the project of course, but perhaps my audience can help with some input ๐Ÿ™‚

Ideally all design and development activities should be based on a briefing, a mission statement with the overarching goal of the project. It’s important to know what you are actually trying to do. Especially in a collaborative project.

While I think I have a reasonable clear picture of the desirable characteristics of a font already (more work to follow), the larger visual design effort needs a strategy, a message, based on the mission.

So what is the most minimal core of a missions statement, what is the essence, the high level goal just a bit more specific than make the world a better place? ๐Ÿ˜‰

A first, rough proposal for a Mission Statement

Develop an office productivity solution and make it and the project itself available to and accessible by a majority of humans.

It follows:

  • Internationalization
  • Given our modern world, there needs to be software
  • Free Software
  • All major platforms
  • Interoperability
    • Open, documented interfaces
    • Open, documented file formats
    • Compatibility with other solutions
  • Collaboration
    • Meritocracy (there needs to be some hurdle for contributing and based on ability*effort is best, if you care about the result)


I would usually encourage defining an audience as narrow as possible, but it seems the widest possible scope is actually defining for this project. If not, please step forward with definitions of a narrower audience.

The statement is phrased in a way that opens the door for education and non-software bound approaches.

The word develop shall imply optimizing the process and outcome. Best
or optimal would just bloat the statement, as it’s clear that you don’t want an just-acceptable solution. However, it’s not clear what optimal or best possible really means in the end.

But what is an office productivity solution or an office (software)
, actually? How do you define the scope here, short of enumerating the current components? How do you include enough, but not too much?

You could say: the solution must cover:

  • text documents with embedded graphics, from letters to books
  • presentations, including animations, embedded sound and video
  • doing Calculations, including in a tabular fashion (spreadsheet)
  • managing interlinked data and doing queries (relational database)

Long term, both spreadsheets and relational database might be too specific, as they don’t define the actual needs and goals being
addressed. Seeing spreadsheets and relational database as solutions, can you define the problems they solve succinctly?

How to rule out (given we really have/want to):

  • (full-featured) audio and video editing?
  • advanced animation features (think Flash, Synfig)?
  • advanced scientific and engineering needs regarding calculations, including simulations?


Not many people who can or could use a computer at all can be excluded from the wider audience. The strategy and visual design doesn’t have to try to address everyone, but should rather focus on where it can make a difference.

It is important to note that what LibreOffice has to offer is or should beย  interesting to all kinds of organisations, including companies of any size and government agencies. Reliability, continuity and support solutionsย  are important, here. Think of the impression you want to make and translate it into visual design.

Back from UDS-N

Got back home from Ubuntu Developer Summit in Orlando on Sunday. Had some good times and it was great to meet people, who I have been communicating with online, in person. Thanks to everyone who made this UDS and my attendance possible!

Two sessions about user testing have been among the more interesting for me.

One about Charline‘s work in China, a first foray into researching the needs and possibilities of adapting Ubuntu for chinese users. The participants interpreted the window buttons on the left as a sign of Canonical/Ubuntu not understanding the chinese culture. Apparently a culture with a strong preference of the right hand and putting things to the right. But wouldn’t that include the menubar contents? Is there really a difference to western culture? Could it be a kind of idiom, said to quench any discussion?

The other about testing Unity. Charline walked us through several issues that had come up repeatedly with the test participants. A very good reminder of how much powerusers, including developers and designers, have behavioral patterns and background information they don’t think about anymore, and how less technical users don’t have this mental framework. Trying to recount the session here wouldn’t do it justice. I hope Charline will repeat the demonstration in front of a camera, as suggested by a member of the audience.

The best reason for me to be there was the Reinvigorate the Artwork Team session and related discussions. I suggested to turn the Artwork team into a Design team, because the terms Art or Artwork suggest a rather intuitive, not planned approach, are not very fitting for themes and mockups and rule out interaction design. I think the team should be enabled and encouraged to cover the whole continuum of design from wallpapers to information architecture and user experience.

There is a strong consensus that the wiki is not suitable for submitting and managing assets. We talked about the needs to track requests, for proper briefings and guidance through the design process and the educational aspect.

We will start a web presence project, not necessarily ubuntu-specific. First step will be a questionnaire, to be created by Ivanka. Well … stay tuned ๐Ÿ™‚