Interrupt-free computing

On debian-devel, there has been a discussion about the security issues of "spontaneously" appearing popups demanding the root password to make immediate security updates.

There is a much more general issue related to this: computing without interruptions.

Most of us have probably seen some friend or acquaintance with a (usually non-Linux) PC that is constantly beeping and flashing with chat notifications, new email popups, Adobe update this, Java update that, etc. In one recent case I came across somebody who had experienced a dramatic drop in his productivity as a consequence - giving him a laptop with a freshly installed copy of Linux made a dramatic difference to his work.

I can already hear people insisting that security trumps everything (which isn't an original argument either) and that popups can't be avoided.

A search on the web for "computing without interruptions" reveals users have a particular distaste for these things appearing while watching a video. Websites responding to that complaint fill the search results. With many types of interactive real-time content (video, WebRTC phone/video calls and so on) deployed within browsers, it is even more important for UI designers to contemplate when it is not appropriate to interrupt a user and to do everything possible to avoid interrupting the user.

Preparing for disaster

On the other hand, just ignoring security updates and not telling the user their disk is filling until 0 bytes remain available could only shift the problem down the road (from constant annoyance to periodic crisis).

That said, sometimes you can still fill the disk very suddenly (especially with fast SSDs) and rather than relying on popups to keep users away from the precipice, applications (particularly the core desktop and daemon processes) could be tested more regularly to ensure they remain resilient in full disk situations.

Managing information overload

Popups are just part of a wider problem of information overload. There are emails too: some applications, such as Drupal, will send daily or weekly emails to a user if their system is not up to date. For many virtual-hosted sites, this starts to resemble a small flood. There is a flaw in this design: applications are competing for attention by sending more and more emails and popups or making them more annoying (e.g. the security updates in Debian 6 were ignorable popups in the top right-hand corner of the screen, Debian 7's Gnome Classic mode displays a big password prompt in the middle of the screen).

The solution would be to develop a mechanism for unifying, de-duplicating and then prioritising these information/event flows. Some fault alerting systems already do this for their own events - these are niche solutions that aren't always applicable to the average PC-owner, although the principles are well tested. Some email organisation tools have similar features, but only for email. I'm not currently aware of any solution that synthesizes such an experience for all possible information sources.

Setting priorities

One well-read work on this subject in the business world is The 7 Habits of Highly Effective People (Stephen R. Covey, 1989). Of particular interest for the problem at hand is the priority matrix (borrowed from the Eisenhower Method):

The left column, Urgent items, typically must be executed by a certain date (e.g. buying a gift before a birthday or installing a new SSL certificate before the old one expires). A security update or Acrobat reader update does not have this same characteristic. Under this model:

Urgent Non-urgent
Important Replace SSL certificate
Buy birthday gift
Security update
Run backup job
Not important Register for conference before deadline for free gift Non-security update for Acrobat reader

Covey even released an Outlook plugin, Plan Plus to help people organise their tasks (and their lives) using his methodology. Unfortunately it is closed-source software with a terrible set of ratings on Amazon - this review from a customer stands out:

"My take is that Franklin does not consider robust software nor customer support to be either Urgent or Important."

Could this be replicated more successfully with an open-source plugin for Mozilla Lightning or a similar productivity tool, and could the concept be extended across the range of data sources, including email, calendar items, system notifications and more to provide a unified approach to both the computing platform and general productivity (real-life) time management?

Would this help solve the same problem in a more effective manner? In other words, would such an effort to help users integrate the demands of technology with the other demands of life make them more likely to keep their systems up to date?

The wider community experience

Going beyond the desktop/user experience, could this model be extended to automatically integrate external tasks, such as handling bug reports, moderating mailing lists and other slightly tedious things that have to be given regular attention to keep the free-software world moving along smoothly?

Managing down-time

For people who work in computing, there is almost no down-time any more. Even when on holiday, checking in for a flight might involve navigating through a buggy wifi access control system and an annoying set of advertisements from your low-cost airline as you try to print a boarding pass. These things often trigger thoughts about similar issues on client projects. Glancing at your email to find the booking number could awaken thoughts of a whole lot of projects you had tried to put out of your mind for a week.

This is another area where excessive popups and emails can only compound the problem. Who really wants to download and install security updates while on holiday using an intermittent wifi connection?

Managing all these events through a common mechanism may also finally make it possible to have an "ordinary user" experience with your PC. In practice, this might mean being able to view information/events through a time-of-day filter or "holiday mode" - and only on demand.

A worthy design goal?

Would any free software operating system make it a design goal to give their users a 100% interrupt-free experience?

Of course there would still be things like chat notifications - but those would only be possible when a user has signed-in to a chat application. The distinction for the interrupt-free experience would only need to apply to default system behavior and not to every application.


Perhaps these could be categorised according to experience level like reportbug --configure does; novice, standard, advanced, expert. It may be pointless to tell/ask a novice user certain things, and perhaps better to mail a system administrator about it. This reminds me of the discussion on debian-devel@, about the declining use of MTAs; perhaps we could make better use of them.

The productivity issues mentioned above must be epidemic on improperly managed workstations, and worst in proprietary software environments: vendors each with their own auto-update platforms, freeware/adware/toolbars competing for the user's attention. I honestly wonder how work gets done with these systems, which I imagine are in the majority at least in UK workplaces and education.

And then if work requires use of the Web and 'cloud' apps, that can be even more volatile. Applications like web browsers even frustruate me with frequent changes to functionality and UI.

Your post reminded me of a book I was recently re-reading... Jef Raskin's "The Humane Interface". I feel like our computer interfaces have been getting worse and worse as time has gone on. I really find my computer much more difficult/annoying to use today than back in the days where I only had DOS. I guess in response to that I've moved deeply back towards my DOS/Unix roots and spend a large chunk of my time hiding out in my shell where there are fewer distractions. :-)

i think that you have a great idea here. Let the user run in an interrupt-free environment. If the environment hangs up, the user will need to reboot their computer and sign in to their security update system and view the messages to determine what is wrong with their machine. Its sort of driving without checking the gas gauge. Suddenly the car stops running and sputtering when you try to start it. Then you look at the gas gauge and note that you have no gas. Having pop-ups constantly poping up is very distracting.

Some people are trying to get real work done with their computers. I like to use mine for writing and data entry, because that's what makes me money. I use Debian and other free software precisely because it's quiet and lets me do my job.

I should be able to easily set my window manager or desktop environment to work mode. I don't mind a notification icon in some upper corner of a panel changing color and displaying an exclamation point. But while I'm working, DO NOT steal my focus. I know how to type without looking at the screen (imagine that!) and if I'm working from paper on my desk (how old-school!) I don't want to type to /dev/null because of some theiving popup.

And who thought it was a good idea to have something blinking? I can see the 100% disk full scenario in the original post needing that, but I don't need it when a download has finished. was annoying years ago, and it still is now. Don't distract me, I'm trying to meet payroll | serve a customer | handle an employee's injury | finish up so I can go home for the weekend.

I haven't moved away from the original use case for desktop computing since I started in 1986. It's still just as relevant today. The only thing that has changed is that even more computing devices have been sold for entertainment. That's nice, but take your flashy morphing ADD interfaces somewhere else. I'm trying to do something here.