NetBSD-Desktop archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: suggestions, feedback, and support



Hi everyone,
I'm new to NetBSD (but not Linux). I just tried to create a Desktop
environment on to of NetBSD 5.0. It ended in exasperation, but I'm
optimistic.

I'm *very* excited about this project desktop project.  I've been
wanting to start something like this or be involved in something like
this for several months now because I think the world needs a really
solid, open, stable desktop OS that is *really* focused on usability.
This is one key area in which NetBSD might be able to really excel due
to the community focus on "system-level design" as D. Holand put it.

http://mail-index.netbsd.org/port-i386/2009/02/08/msg001144.html
"Ultimately, the Linux desktop folks (and, in fact, the Linux community
in general) have never bothered much with proper system-level
integration. We know better than that; we can and should do better
too; but it takes thought, and design work, and feedback cycles. It
requires a balanced approach that's cognizant of system-level issues
as well as desktop issues."

I *really, really* encourage the developers on this project to
consider the possibility of going beyond a "me too" distribution of a
*nix desktop. There are so many "me too"s out there already. They all
have problems, many of which they inherit from the upstream projects.
I hope for this project to adopt some type of long term goal that is
*more* than what is in the wiki, perhaps centered around usability,
system-level integration, and user/UI level integration.

If I was in charge, I'd do the marketing trick and pick user classes,
define or discover how they work and how they think, and then build a
system that addresses their needs. This doesn't take long. Members of
the mailing list probably have a friend or relative in many major user
classes.
After giving this some thought, I came up with four user classes, or
target users. Any desktop OS product needs to know who its audience
is. Is it all classes, a sub-set of classes, or a single class?

Target Users:
1. The grandmother/wife/mother/father - a non-technical person who
might get introduced to a computer by a family member. They slowly
absorb the concepts (which are introduced separately, in short periods
of time, over a period of months) of email, web browsing, writing a
letter in a word processor, listening to music, viewing photos etc.
They may have gotten a digital camera for their birthday, used it for
4 months, and never conceived of the possibility that you can plug it
into the computer. This person will never install an operating system
in their life. They will always rely on others to tell them how to
perform new tasks with a computer. They get confused by more than one
way to do the same thing. They get introduced to keyboard shortcuts
and *might* adopt one or two of them. They get confused if
applications change their name or icon. Sometimes, after being on the
internet for a few years or months, they surprise by announcing, "I've
started transferring my CDs to mp3's and now my hard drive is full."
:)
I have personal experience helping these people, and I'm sure many of
you do too.

2. The Game developer - I chose 'game' developer because they
specifically aren't interested in OS hacking, but may be doing some
serious high-level development. They want a development environment
that gets out of their way, that they don't have to spend 14 days
configuring. They want a variety of levels of access to sound and
video hardware, through low-level or high-level layers of abstraction,
and they don't want to spend time pleading with upstream developers to
fix bugs, to implement features. They want stable systems with long
support cycles to develop on so that by the time the game is ready,
the underlying system isn't releasing the next version, and the world
is asking why game product X doesn't work on their shiny new install
of OX XYZ. Games are a big commercial force in today's world. The
companies that develop them obviously don't tolerate various aspects
of the many open platforms available today.

3. The non-technical professional - This user makes heavy use of a
computer for their work, but they are non-technical. They are smart,
but need instruction on how to install, configure, and use the
software that makes their jobs easier. Think of the graphic artist or
the photographer. They will never go shopping for a new OS or install
a new OS, but they might go shopping for a new application if their
peers recommend it. They need efficient UI's, smart shortcut key
schemes, and fast performance or their most used apps.

4. The engineer/scientist (non-software) - This user is a highly
technical person, but doesn't want to do software debugging or
development. They want a stable system to do their job, that works as
advertised, that gets out of their way. They can be expected to
understand a lot about computers, and have a technical mind-set. They
don't want to configure their window manager and they are happy to
select a theme from the list of defaults. They don't want to "tweek."
They are familiar with installing software, b/c their job relies on
using some sophisticated software. They *use* shortcut keys, in an
extensive way, especially within they software they use for their
profession. They use multiple monitors, and maybe get into wriring
macros in various high level apps (excel, CAD). This may bleed into
writing scripts or macros in the OS (i.e. applescript). (I know this
one because I am one of these and many have worked for me in the
past.) This user may shop for and install an OS in the course of their
professional or personal lives. They may be the users helping the
users in group #1 above.

5. The software developer (of course) - This user . . . well, most
people on the list know what this user needs and expects. :)

This is just a sample of target users. I haven't included curious,
technically minded people that want to tweak and configure an OS
because they already have a virtual playground of options among the
BSDs and hundreds of Linux projects. They don't need another project
catering to their needs. ;)

I think its possible to create a solution to address all four proposed
classes. I think OS X is doing a decent job of it.

Unfortunately, I'm not a developer, so I can't really make
contributions that way. However, I'm trained as an engineer
(mechanical) and I'm a successful entrepreneur in the robotics
industry, so I have some experience with usability, and system-level
design and integration. I'd like to offer my thoughts and
perspectives, and testing time, if nothing else.

I have these ideas, addressing various user classes.
1. Don't feature the name of an application on menus and docs if it is
obscure. If your web browser is called "Epiphany" the grandma's of the
world will appreciate a shortcut that says "Web." Don't make confusing
application names. Xfce's text editor is called "Mousepad." Even I
overlook it when looking for it in a menu because it's got the word
"mouse" in it. Thunar, Nautilis, . . . What *are* those things?! Xfce
has an icon of a hammer that you can click to browse files. How about
a folder, or *something* related to files?

2. Take a cue from google and really implement search on the desktop.
OS X does a jam up job with Spotlight. It's a real time saver. You can
use a keyboard shortcut to enable a small search box, and you can find
any document that contains your search text, or any application that
matches your search text. Opening either is a matter of one down arrow
keystroke and pressing <enter> if its the first search result. GNOME
is working on something called Zeitgeist that looks interesting, but
may already be excessively complicated (the GUI, anyway). I think its
an important area for a solution, because over the years, users can
accumulate hundreds of files, and this months folders organization
ideas might not resemble last years. End result => stuff is hard to
find. I've seen discussions on tagging files and content too. I think
this would be great if it could be tagged automatically, or
semi-automatically, like tagging everything I do in a time period with
a project tag that I define in advance. I'd like my desktop search to
search the text of my entire web browsing history. There is an
interesting server/service based firefox plugin that does this.

3. Devise a really sensible, and unified shortcut key scheme. Don't be
afraid to throw away low value legacy key combos and apply them to new
functions, (like search!) Specifically I'm thinking of: OS X uses
Alt-Space to get to search. GNOME uses it to pop up a window control
menu. (Close, minimize, move). The key combos that use keys close
together should be assigned to the most frequently used functions
(like search!). :)

4. Look at alternatives to GCC. I read the LLVM/Clang website and was
impressed with the attention to enabling high level IDE tools. This is
*essential* to encourage more developers to gravitate to *NIX,
especially new grads who didn't cut their teeth on lower level
languages. I don't have an answer, just an observation.

From what I've read on the netbsd-desktop mailing list archives, I
have the following feedback.

++If beginner mode on the newly envisioned installer only allows the
user to install to the whole disk, you'll not get as much traction as
if you can optionally install side by side. with an existing OS.
Ubuntu has has this option for quite some time. It's a big step to
move from an OS you know to one that you don't, and users won't know
in advance if the new one will meet their needs. A live CD/DVD is
another useful tool to help the new user evaluate the prospects of a
transition.

++I've *never* gotten Totem Media player to work consistently. I'd do
some more evaluation of it before selecting it. My suspicion is that
it's not very well implemented.

++I agree with the comment that if you choose to use GNOME you *will*
be importing the crazy problems of the linux development world. I've
spent some time reading their website and mailing lists. They don't
have decisive leadership, a shared core value, or even a common
vision/goal to rally around going forward. This is by their own
admission, not my judgement. However, maybe they'll turn it around.
They certainly want to from what I've read.

++ Has anyone really examined the newest development of the
Enilightenment project? That could be a good fit for the NetBSD
Desktop project. It looks well done, at least on the surface.

++ I like the boot splash iniative. I think the days of text scrolling
by during boot on a Desktop should be over. Pick a key combo to clear
the boot splash screen at any time, and maybe a set of combos to
perform other functions during boot.

Here are some ways that I think Linux gets it wrong on the Desktop
from a usabilty standpoint. Hopefully NetBSD can avoid these things.
In no particular order . . .

++ License restrictions and ideals of freedom as it relates to
software prevents many Linux distros from bundling proprietary
software (like flash players) on the distro CD's. The new user is left
wondering why his system is broken from the first boot.
++ Strange software names leave the user wondering what all these
wierd named icons do, and how I get to a window to see my files. e.g.
"Thunar" and "Totem" and "Banshee". Lovely names, but my mother only
knows about "Music/Movies", "Files" or "Documents", "Spreadsheets",
and "Web."
++ Lack of system integration leads to frustration and degrades
usability. On a fresh install of Ubuntu . . . I downloaded a doc type
that Firefox doesn't know how to handle, so I'm asked if I want to
browse for an application to handle it. I click "Yes" and am presented
with a list of folders/files in "/" instead of a list of actual
applications. Hello? Is there a list of applications anywhere? I use
*nix and I don't even know off the top of my head where the correct
application might be found. I give up and open the application and
then browse for the downloaded file. Other examples abound
++ There are lots of other articles on line about why the structure of
open source projects tends to yield poor usability like this one
http://mpt.net.nz/archive/2008/08/01/free-software-usability and
others that are linked there. These are not insurmountable problems,
but require *strong managment* to avoid.
++ Primitive developer tools. I've seen this suggestion provoke a
heated debate or two. Here's one (after the first 50 or so comments) -
http://braid-game.com/news/?p=364. It's worth reading. A rich
application availability from open source and commercial development
channels is *greatly* lubricated by excellent development tools.

I'm encouraged by the NetBSD ethic that things should be done the
"right" way. It leads to a higher probability of success for
NetBSD-desktop to be done the "right" way.

Disclaimer: these are my opinions. I'm not interested in fighting or
even being subjectively "right". I just want to help make things
better for users.

Thanks,
Gabriel(ms2i)


Home | Main Index | Thread Index | Old Index