Based on some conversations with Nicolas, Quentin and Banlu, I had some
comments about the project to spark some discussion. Mostly interface
stuff, a few marketing things, and some creative dreaming... :)
Regarding the name Étoilé, I think it looks pretty, and I like the
symbolism behind it. I have only two concerns: pronunciation and
accents. People who do not speak French will have a very difficult time
with how to say the name of the project. I personally am still not
completely certain (I would guess (long)A-twal -- correct me please!).
Some people might see it as (long)E-toy-il-ee, which sounds like "toil"
(meaning to labour continuously or work strenuously), or, as mentioned
earlier, like E-Toilet. Neither are good connotations. In addition, as
Banlu and others have mentioned, the accents can be a pain to try to
work in. That said, I think it's great as a working name, but as we
start to grow the project and want to market it, we should strongly
consider something that uses easily type-able characters and that is a
bit more phonetic. I don't want to start another debate on this... just
offering my 2¢ since joining the list. Let's worry about it later.
Okay, to the good stuff...
============================================
THE DISTRO
============================================
I asked Nicolas, Quentin and Banlu about their ideas on developing
Étoilé as a full operating system (on top of Linux or *BSD or Hurd (one
day... maybe...)). All three mentioned being in favor of doing a
desktop environment instead. I personally am interested in a full
distro, and here's why:
- Complete control. By deciding on an official kernel/userland to sit
on top of, you can optimize the environment for that specification. We
_could_ then rely on things like using ReiserFS for metadata support,
or inodes rather than file paths to refer to files (for
shortcuts/aliases). This wouldn't prevent people from porting it to
work on other OSs, but having a clearly defined target platform seems
like a great way to stay focused, to prevent from spreading our
(already small) resources too thin, and to give us more control over
how all the pieces fit together, for a better user experience.
- Eases installation and testing. You (you the developer or you the
user) don't have to worry "will this work on System XYZ?" If you're the
user, you simply download the ISO, burn it, boot and install. As long
as your hardware is supported, you have no problems. If you're the
developer, you simply do all of your testing on the target platform,
and, if it works, great. No need to worry about variances between the
potential host systems. There are an infinite number of combinations of
software out there, and trying to snap into that seems like a hell of a
lot of work for what a small group we are.
- Out-of-the-box solution. If you want someone to try your software,
you don't have to first check whether they're running Windows, Linux or
*BSD. You simply give them the disk and they can use it. No
configuration, no compiling. Usable, right away.
I would say some kind of a LiveCD would be a great solution. I'm in
favor of either Linux or a BSD; Linux because it's got a larger
developer community and the name "Linux" is better for marketing, *BSD
because it's got a more cleanly integrated base system and a smaller
development team which might be easier to coordinate with.
Maybe a good conversation for this is to think "if we had only one
target platform, what kind of things could be possible that we couldn't
do otherwise?" Additionally, let's ask "what extra work will go into
supporting a full OS instead of just a DE?"
============================================
THE INTERFACE
============================================
Here are some things that I want in an interface and some counterpoints
to things I've read in the archives and on the wiki. Everything that I
said here <
https://mail.gna.org/public/gnustep-ui/2005-02/msg00050.html > still
applies, except for maybe the desktop being used as the home folder.
Here's some more stuff and more fleshed out stuff (since this is
probably a more appropriate place :)
- A buffer or visual pasteboard / quick launcher. I want a spot where
I can drag snippets of text, or images, or URLs, or email addresses, or
color swatches, or folders, or network locations or whatever. Anything
I think I might use in the near future, I can drop here. Clicking on
said snippet will launch the appropriate application for content (text
will launch a text editor's window, URLs will launch a browser, folders
will launch the workspace manager, etc). Dragging the snippet into
another application will act as if I had that snippet as the current
item in the pasteboard (text, including URLs and email addresses, will
paste as text, images will paste as images, folders could paste the
path or copy or move the folder, depending on the target of the drop,
etc).
- Annotations are a brilliant idea!
- Spacial interfaces can be extremely painful and lead to a lot of
windows on the screen. I do like 1 window for 1 folder -- that's a good
idea, as is keeping the location and view of a specific folder
consistent. Browser navigation is really slick for deep hierarchies --
we just need to find a way to unify the two concepts. Or...
- Ditch the ability for regular users to create folders altogether and
put all files in one spot (probably their home folder merged with a
Shared folder for all system users). Make the workspace manager an
awesome searching and filtering tool. Add buttons to the workspace
manager for "Music" or "Photos" or "Letters to my boss since last
Tuesday" or whatever, and just make those shortcuts for queries (live
search folders). Never use a Save dialog again -- when you make a new
file, just give it a name and it's automatically added to the user's
home folder, ready to be searched on.
============================================
THE TECHNOLOGY
============================================
Here are some random bits of other technologies or ideas that might be
inspiring.
I told the guys I've been reading Jef Raskin's _The Human Interface_
lately. Not all of his ideas are great, but some of them are stellar (<
that's a pun) and really resonated (< and so is that) with me and with
what I read about Étoilé. What was really the trigger is he is all
about productivity and workflow -- exactly the same concepts this
project is trying to find a better solution to. Where I think Raskin
goes wrong is that he tends to favor a more command line approach,
instead of the more intuitive approach of direct manipulation. He also
tends to look at files as textual elements when, for me, the majority
of what I manipulate every day is graphic. Some of his good points:
- Eliminate model interfaces as much as possible. Different
applications (tend to) mean different modes (different key commands,
different interaction methods). By breaking applications down to
services that can be summoned and combined as needed, Étoilé seems to
be working on making this idea more of a reality.
- Build a history of selections. If I make a selection in a body of
text, that is selection 0. If I make a new selection, the new selection
is numbered 0 and the previous one is numbered 1. This goes on for as
many selections as we can technically handle. All the selections might
be badged by their historical number (or some other visual method).
Swapping two pieces of text now becomes insanely easy: just have a menu
item labeled "Swap". This is far superior to "select, cut, paste,
select, cut, find previous insertion point, paste".
- Make alerts that don't require interaction to show up, then fade
out, and keep track of all alerts. You know the JavaScript alert()
function? Horrible. It pops up with some text and an OK button, and
forces the user to disrupt what they're doing to get rid of it. I'm
using Growl < http://www.growl.info/ > now for alerts on downloads and
new emails, and it is exactly how alerts should work: it shows up, it
stays for a bit, it fades away. Elegant, informative and unobtrusive.
Now if only we could build a simple way to pull up old alerts when
you're busy doing something else and the alert fades before you get a
chance to read it, it would be perfect.
- Everything is undoable. Everything. Forgiveness is a virtue... and a
requirement for a friendly system.
- Incremental search. Like OS X is using everywhere, like Filie has,
like Google Suggest < http://www.google.com/webhp?complete=1&hl=en >.
Good idea -- let's make that type of search really easy for developers
to implement.
On a different note, the Google Gmail mantra "Search, don't sort" seems
like a really good thing to keep in mind. You're already going down
that route with Lucene; here are some other links with ideas:
- http://www.mozilla.org/blue-sky/misc/199805/intertwingle.html
- http://logicaldesktop.sourceforge.net/screenshots.html (a variation
on sorting using task selection and searching)
Okay -- that's probably enough for now... time to get some sleep.
J.
PS -- I would like a wiki account, if someone wants to set one up for
me :)