Quote:Original post by Mayrel Easy to say, hard to do. What you think is the most natural, efficient and intuitive way for a person to tell a computer to do a particular thing is most unlikely to be same for me. |
So collect data of a wide variety of users trying various interfaces along with demographic statistics. Evaluate the data, publish it openly, invite open peer review...
Come on, you're stalling!
Oh, and "Well, how do we collect this data?" Write a data collection service that various existing projects can snap into their products easily. That way, you can get a lot of useful feedback from a wide variety of projects - and they can get that feedback too.
Quote:Most users never fill their hard disks, true. Most users never store a lifetime's worth of undo information with their files, either. |
Blah blah blah. Non sequitur.
Quote:That assumes that it's okay to silently lose undo data. |
No. That assumes that there's a reasonable average which will be arrived at empirically, but also provides a system-wide (yet potentially functionality-/application-specific) configuration interface. In addition, this can be mentioned when the disk starts to become full but before any data is ever discarded, so that the user has a contextual understanding of the value of this feature before fiddling with it.
Asking the user at the beginning distracts from the task at hand, which, I can guarantee you, is not to configure Undo Data Preservation.
The rest of your comment I agree with, per the levels of configurability. Give advanced users as much power and flexibility as possible.
Quote:I've no idea about the date. I would categorise by subjects, location and, of course, the image itself -- I have a vague recollection of what it looks like. I might, potentially, wish to enter the text "spain me mother river mountain" into a search box. |
Okay, that's a start.
Say you had a separate file for each month's financial report by year. Simple data analysis can determine that a particular file is logically "July 2002 Financial Report" through the frequency of terms, cross referencing and relative prominence of items in the file (headings vs paragraph data). Essentially, Google your own data.
This can then allow you to indicate that you want "Financial Reports", or just "Reports". Am I suggesting entering this text into a search box of some sort? Not at all. Based on the frequency of occurence of terms in a variety of files, "collections" can be displayed with logical labels, with "related collections" placed as adjacent but lesser icons, allowing both visual navigation of data and what I'll call a three-point-pivot (the philosophy that any piece of data is three degrees of separation from any other at its most reasonably generic).
Quote:So wouldn't you call that file "Q2 2004 Walt Disney Radio Presentation"? If not with a name, how else would you identify it? How would you identity that file to other programs? |
See above. And programs are beside the point; why do I need multiple programs to access the same data? Why don't I organize the operations available around the data that I'm working with?
Quote:That's fine. Explicit saving is suspect. However, if saving is automatic, I want some way to revert to the last 'checkpoint'. |
Absolutely.
Quote:Also, what does one do about files that are opened by more than one process at the same time? Does only one of them get to open it in update mode? Do the others get it in readonly mode, an editable 'snapshot' mode that doesn't effect the on-disk file, a copy of the file in their personal region of storage, or a 'fork' of the on-disk file that can be merged later by someone who has permission to read both prongs? |
Well, that's a possibility, but, again, applications are an anachronistic approach to productivity.
Think of it as a "document container." Every bit of functionality can be invoked from the container if it is defined for the current data. It's sort of inverting the traditional placement of data and processing.
Quote:Directories are an obviously correct idea. You appear to be assuming that a directory is necessary a purely heirarchical structure. A directory is merely an index of files. |
Not true. Unix INODE structures tie files to directories.
Quote:On most operating systems, files can be in multiple directories. |
Not true. Symbolic links - hard or soft - are not the same as the file (or data, as I prefer to think of things) is part of multiple collections.
Quote:In some operating systems, directories can be generated on the fly. There's no technical reason why a UNIX-like operating system couldn't have an 'unfinished reports' directory from which files disappear when their finished status is switched on. |
That's an inherently inferior approach to a properties-based system.
Quote:No. His point was most definately that the dialog shouldn't have a different interface from the file manager. The dialog should merely be an interface to the file manager. |
Fine. What's you're response to my point?
Quote:I read it. The fault was not caused by the file selection box looking a little different, the fault was caused by the file selection box behaving in an obviously wrong way. |
I need a little more detail than "it was obviously wrong." What was wrong about it, and what would have made it right?
Quote:What is that? Some kind of argument from inverted ignorance? |
LOL.
JWZ is the guy who quit the Mozilla project a long time ago, making the critical observation that simply "opening the sources" doesn't solve organizational or managerial problems. I'm pretty sure you know this. I'm merely pointing out that a knowledge of "principal actors" and their impact on the philosophy and community behind OSS is important because it gives us a common basis from which to debate. It elevates our vocabulary and thus information tramsfer efficiency.
Quote:I considered mentioning two thoughts in my post, but it was getting long.
One was that the menu could highlight submenus and items that contain new elements (and perhaps put a little "<= New" symbol alongside the item, just so you know). The other was that the main menu could contain a list of "New Programs" (or "New Tasks", as you might have it), from which programs expire after some predetermined time.
Whilst easier in the short term, the latter has the problem that the user has to figure out where the program has gone to when it's removed from the new list. You could use the former idea in a slightly modified form -- "<= Write Letter has moved here". |
Interesting idea, but, as you correctly pointed out, dynamic menus invite confusion. Solving the confusion of a dynamic menu by making it dynamic in another respect is an unacceptable "solution."
Note that I only mean for major functionality to be at "Obvious Level." Create a Text Document, Browse the Internet, E-Mail, Send an Instant Message, Create an Office Document. Other applications/functionality can be in an Applications/"Do..." menu - and that menu should be top level.
The Macintosh Application (Apple) Menu is a good starter design, better than the Windows Start Menu.
Quote:I see. You mean "application" in a different way to me. KDE's menus are better. "Word Processing" and "Image Editor" makes it clear what kind of window you want to make appear. |
That's definitely a start, so I'll give them props for that.
Quote:Almost all of them. I have 536 packages installed. Of those, perhaps only a hundred or so are "applications" -- most are just support packages that even a power user would never be aware of unless they stopped working.
Of course, this is not necessarily a good thing. Gentoo's strength is its diversity. A power user can always produce a system that is exactly what he wants. What Gentoo lacks is the notion of standardised 'sets' of packages that fulfil common needs. |
In my opinion, power users looking for that kind of "exactly what I want" system, that "I know the bare bones inside and out" are probably satisfied with Linux as it stands today. It's just not a good fit for average users - consumers and prosumers.
My concept of a functional desktop is based around the notion of the prosumer, a term that combines "producer" and "consumer". "Prosumer" is a term usually tightly associated with media; I'd like to see that mindset applied to user data as well.
Quote:There are tens of word processors. Out of the WYSIWYG ones, I only use LyX, because LyX does LaTeX with ease and I like LaTeX. It would, of course, be delightful if LyX was merely a "LaTeX Support Component" and "LyX Editor Interface Component" that I plugged into a "Text Document Component." But that isn't an option. |
But I gather that you think it should be? That's pretty much the approach that I'm talking about.
Quote:By the looks of things, your codec-based storage is, essentially, a component that knows about a particular storage format which parses that and gives the information to a component which provides a programmatic interface to the data. |
That's a decent exposition.
Quote:That's fine, but means you'll have to be rather clever about what components you make. A video file, for example, contains not only an visual track, but also an audio track and perhaps a subtitle track. Each track has a different format, so your file is really a set of files -- three tracks and an index that pieces bits of the tracks together. |
But that's exactly the point! All aggregate formats are composed of lesser data, sometimes including recursive instances of the format itself (think hierarchical 3D object format).
Quote:There's also the possibility of other types of track. If my movie was intended to be blended with realtime CGI, I might have a track that contains the camera position and orientation. Another track might contain GI data. I'd want to be able to view this movie in the normal media player. |
All we'd need is a codec.
The beauty of the codec-based approach is that it translates any binary data storage format, no matter how complex and specific, into a set of general abstractions that the operating system is designed to deal with. These can be expanded, of course; someone could write a new component. Once that happens, all applications will be able to deploy that functionality whenever they encounter data that requires it - in the appropriate context.
It's that data-centric approach again.
Quote:You group Emacs with vi and Notepad as though it's a plain text editor. Emacs can display styled text and images. It's no WYSIWYG editor, but it is more visually sophisticated than many suppose. |
My little dig at Emacs is beside the point. You got my meaning, and I think you agree.
Quote:You forgot DCOP, KDE's object system. |
I apologize. "And DCOP."
Quote:I presume you're referring to a HTML-style layout-based system, where there'd be a few standard components for actually producing output (text, vector graphics, raster graphics, video, non-visual media) which would know how to be embedded within each other. |
Not necessarily. I'm not conceited enough to think that I've solved all the problems or designed the system to a tee. Some of these ideas are still fairly amorphous, floating disembodied in ether.
Quote:Then, any "interface" to a document would just translate the logical structure of the document into one of the generic display components. |
Something like that. The specifics aren't quite set in stone yet. Feel free to make alternate suggestions.
Quote:But such components will never be part of the operating system until enough people in positions of influence can agreed on which component system it should be based upon. |
But this is Open Source, right? So I can take a Linux kernel with certain baseline functionality, some GNU tools, etc, and fork from there, right? And then release it on the web, announce it on Freshmeat.Net, comp.os.linux.announce, etc, right? And if people find it cool and interesting, it'll start to acquire cachet, right?
I don't agree with stimarco about a top-down, monolithic approach. I believe in an organic evolution, and I keep in mind that I may have the right intentions
but the wrong approach, and someone else may solve the problem in a more correct fashion.
Quote:There's also the issue that it will very probably be easier to convert an existing program into a virtually opaque component than to make it into a fully fledged member of the component community. |
Halfway houses are acceptable transition mechanisms. I'm not naive enough to believe in "clean slate" initiatives - "Throw it all out! Start from scratch!" I believe in working gradually through the problem stack until a simple rebuild completes a total redesign. That way you always (hope to?) have a working, operational build that you can
test.
Quote:
You gotta start somewhere. Gradual mutation of an existing system, keeping your eye on the ball, serves the dual purpose of providing a familiar starting point; and maintaining, as I said above, an operational build at all times.
Quote:At least KDE and GNOME are already componentised. One could make an adapter that allows their component system to interact with the OS's. |
True, but sometimes design choices are pervasive in extent. I guess somebody'll have to give it a shot and see what sticks.