Skip to content

The big holiday update – part 1

August 16, 2010

Hi !

Thanks to the insane amount of spare time I’ve got, there’s a *very* big update around the corner. Here’s the part of that update that I can do now, the rest is coming later :

Implementation

  • Physical memory management is complete and works beautifully, without wasting a single byte of memory (it’s harder than one might think).

Design

  • Meet some members of our target audience ! I had some ideas about it and thought it would be interesting to write it down…
    • Clara spends hours a day on a computer. Using a pen tablet and GIMP (she can’t afford the insane price of a Photoshop licence, and deeply dislikes its UI anyway), she draws abstract pictures for book covers. She does not have the time nor the will to learn about the internals of her computer, and she positively hates pop-ups, stupid questions, and crashes. She would like it to be just like a normal pencil, to let her do her work without annoying her. She understands the potential of the computer as a tool, though, as she experiences its immense power everyday. Her wish : get the power, with a minimal level of annoyance.
      Friends suggested her to get a Mac, but when she tried her neighbour’s one, the poor performance of GIMP and most of the free software which she runs more casually horrified her. Looking at the other (expensive) options, she realized that everything in the Mac world costed easily two times the price she paid for her own PC (which she would gladly keep). Plus she didn’t like the trackpad, and it looked like she couldn’t get a machine with a different one if she wanted to go Mac.
      So she forgot the Mac idea. But she’s now sure that her problem does not come from computer themselves, but from the way she has to interact with them (she doesn’t precisely know what an operating system is). Cellphones clearly make a step in the right direction for that matter, they’re not annoying and do not need her to relentlessly ask “Java update” to shut up. But obviously, they have too small screens, and do not offer sufficient functionality.
      Clara wants the power of a regular computer and free software, but without the annoyances of the Windows world or the complexity of Linux. She wants something which just works and does not need a lot of money to do so. When she operates the computer, it should just be a mean of reaching a goal, not something which gets in the way. And if she could handle everything using the pen tablet thanks to larger buttons and organize and handle her graphic files more easily, it would be just wonderful !
    • Peter is a happy grandfather which was recently given a computer by his son, and has a hard time with it. Yesterday, while he was gently browsing the web looking for tips in taking care of his garden, a big and flashy window popped up, telling him that his computer was infected and had to be cured immediately. Scared, he clicked immediately on the “cure” button, and shortly afterwards the machine turned off spontaneously for no reason. When he carefully turned it back on, it was only to discover a cryptic error message that he didn’t understand. His son told him that the computer had to be “re-initialized”, that his data was completely lost, all that due to a nasty virus.
      Peter then got angry : what a technological failure ! How come some nasty website could lure him into killing his machine so easily, without him even knowing that something wrong was going on ? How come his data could be lost so easily ? Combined with the undecipherable windows popping up everywhere that he cautiously ignored, the small and hard to read pictures, and those buttons that were so hard to click because of his Parkinson disease, this was just too much. Peter started to think with a smile that when his son brought the computer to him, he wanted him to die quicker so that he can inherit his house…
    • Jacob is a part of what most of us call computer freaks, techies, or geeks. He thinks that computer hardware as adaptable machines are the best thing that ever happened to humanity, and that we only have yet to learn how to use that hardware properly. In sense that he’s greatly frustrated by the current state of computer software. He often helps friends who have issues understanding modern computers, and finds it shocking that one has to know a lot about the internal of the machine to get it working. If I just want to browse the web and type pages of text on a home computer, why should I bother about security updates, what Adobe Flash is, or knowing a password by heart ? In his opinion, computer software should grow up and do more by itself instead of always asking questions to the poor user.
      In his own everyday computer usage, Jacob is also annoyed by his efficiency at work. He finds that compared to what a modern computer can do, it’s insane how slow and unresponsive computer software can feel. In his opinion, preventing the user from waiting should always be the highest priority task. Jacob is also worried about modern computer security strategies, which are in his opinion at the same time annoying and either ineffective or counter-productive. Why ask for user password in an easily spoofable window and without explaining why ? Jacob deeply believes in freedom, so in his opinion, an Apple-ish full lock-in to improve security is just pure nonsense. In his own harsh terms it’s “considering the user as brain-dead to make it more dependent from the company”.
      As his job, Jacob sets up and repairs computers for the neighboring area (including those of Clara and Peter). He often finds the task frustrating, close to the point of understanding those manufacturers who just screw up the job and make the machine at the same time slow and annoying. He would like a more smooth and flexible install process, which leads in the end to a computer experience suited for the end user in a minimum amount of time. No matter if the computer is a netbook, a touchscreen tablet, or a large laptop, everything should work just as fine with setup being made of intuitive and batch-friendly steps. And most things should work after OS setup.
      Obviously, the machine should be easily serviceable, too, and offer extensive diagnostic information about every problem along with tools to solve them.

Some random GUI ideas

  • What about using one color per application ? This color would be used on window border and slightly in the background, on notifications, balloon tips, etc… This, according the color similarity Gestalt law, should make operating several software at once easier, especially when it comes to knowing where a pop-up notification comes from. If system windows had a specific color (eg red), with application colors being randomly generated, it would also cut spoofability of system pop-ups greatly.
  • Don’t you think that balloon tips near the mouse could have more use ? As an example, when you strike the Ctl+C combination, a little translucent “Copied !” pop-up could act as feedback for the copy action. When you delete a file, a little “Moved to trash !” could appear, too. Windows 7 shows an example of this with the way it shows in advance what the effect of file drag and drop is going to be. However, this idea must be approached with caution too, since it can lead to screen clutter.
  • Speaking of file drag and drop, I think there’s room for improvement there. Currently, there are three ways of doing it :
    • The old Windows/Mac OS way : I don’t know what the effect of dropping the file in that folder will be before doing it. To make things even funnier, this effect is inconsistent : dropping a file on a usb pen-drive folder is not the same as dropping it on a local folder. Though it makes sense, this way of doing things is highly error-prone.
    • The Windows 7 (and I think OS X too) way : You know what is going to happen thanks to a little symbol or balloon tip next to the mouse. You still have to learn by heart how to switch from the default behavior to another one (e.g. moving files in external drives) when needed.
    • The KDE way : You ask the user what to do each time he drags and drops a file. Easy to understand and learn, but highly annoying.

    My idea would be to offer the flexibility and discoverability of the KDE way, but without the annoyance that no default behavior brings. Here is how :

  1. You grab the file as usual.

    Initial situation

  2. As you drag it on top of the window, a little pop-up looking like this appears on the side of the window, facing where your mouse comes from :

    When an object is dragged on the window

  3. This windows lets you know what the default result of the drag and drop operation is. If you drop the file there, the default operation (move file) will be done. However, let’s suppose you want to copy the file. All you have to do is to move the mouse backwards, so that it reaches the new pop-up window (notice that the dragged object remains in the target window, for obvious readability reasons)…

    How to move away from the default operation

    …and then you release the left button of the mouse (or your touchpad, or your touchscreen, or your pen, or whatever) in order to confirm your choice !

What do you think about those ideas ?

From → OS development

4 Comments
  1. Compaq_Owner permalink

    I could not agree more with your article.

    Hi, I am a Jacob as you put it.

    I’m a student, I am constantly used as an unpaid, untrained, help desk for every day users at my school, users that can’t perform simple tasks such as copy and paste, execute a program other then the ones on the desktop, or opening the C Drive.

    It really annoys me when I have users come up to me and ask me stupid questions like: “why is the computer not working?” answer: you need to turn it on first.
    “Why wont facebook work?” answer: because there is no internet connection.
    And my favorite “How do you copy music?” answer: give me the CD ill show you how to rip it, “no, no please don’t”.

    And then there are the Mac users, the cocky ones that think they no everything, they always say some thing like my computer is better then yours, Ho, Ho No, no don’t say that until you understand the differences in CPU instruction set architecture.

    And then they expect me to know what’s wrong with there computer when they have a problem, “yeah ok, memory addresses, big round red X on the screen, text that says error, if I’m not mistaken, you have an error message on the screen”.

    Also what’s with not letting the user open up the case on the Macbooks, or the laptops as I call them? I remember this one time, some nice lady brought one of those things to me and explained the problem to me, and piss off java update you annoy me, anyway explained the problem, the clock wasn’t working, and some simple settings whir not saving on the computer.
    So I determined that it is not a software problem, if anything it’s the bios battery, so I will just open it up, as soon as I can find the screw holes on this thing.

    Anyway sorry now I’m just rambling on because it’s like 4:00 in the morning, and I can’t go to bed because I have to make shore that FreeBSD installs properly on the other computer behind me.

    Ho wait you can’t see that,

    In short cool blog, your talk about a new simpler operating system is quite interesting and gives me hope for the future, and I like your new idea for drag and drop, I also support the idea of different colored windows to represent application types.

    Keep up the good work,

  2. Hi and thanks for the reply ;)

    Obviously, I can’t provide software solutions for beginner’s mistake like forgetting to plug the power cord (seen recently). I would like to live in a world where manuals are so simple, friendly and helpful that people would gladly read them before calling for help…

    However, I plan to do more than making the OS simpler for not knowledgeable peoples ;) In a few lines, I would like this to be…
    -Simpler for less knowledgeable users who don’t want to know much (like Clara and Peter), and much less annoying and smarter for everyone
    -Still powerful for those who want some power. Very responsive, especially.
    -Very reliable (including in the sense of trusted from a security point of view) and fault-tolerant (e.g. by making automatic back-ups on another disk partition and being able to restore the state of most software when they crash)
    -Flexible in terms of user base and hardware it runs on.
    -Globally technically clean and with a modular structure which improves reliability and flexibility.

  3. Amenel permalink

    The colored windows is another great idea. I’ve also considered it for indicating voices and instruments in on-screen music scores. In your case, shouldn’t there be a secondary means of identifying the source application? I mean, one can launch 20 applications at the same time while and distinctive and quickly recognizable colors are not that many.

    As for the drag and drop, it seems like what you are describing is similar to what I can do now on Vista, using not the primary (left) mouse button but the secondary (right) button. Drag, drop, release button and a menu appears with 4 options, i.e. the three you gave and a “Cancel”. However, Vista indicates which behavior is the default one by using a bold font. For one, Microsoft got this right.

    What’s next after memory management? I don’t remember having seen a sketch of timeline or roadmap of your future developments.

  4. The idea of colored windows came to me by considering that I rarely operate more than 10 distinct applications at the same time, even when doing audio editing, but often move data from one application to another. Of course, usual identification methods based on application icon and name, like those on Windows and Mac OS, will still be available.

    About the Vista behavior, it’s similar to the older ctl+drag method, only a bit easier to use in practice ;). The problem I have with it is that it’s not very discoverable. I only know few people who know about this very interesting functionality daily, but much who would need it. As a replacement, they generally use copy and paste between one window to another, drag n drop then deleting the source file, or other similar hacks…

    About the roadmap, there is one here : http://theosperiment.wordpress.com/2010/04/11/implementation-1-roadmap-and-milestones/. It just needs a serious update. I’m doing that now.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.