Sounds like a job where 'blending' might be usefull, something that most vector graphics programm support, ie. pick to shapes and morph one into the other:
### Free software is often written to scratch an itch the programmers might have. So was the GIMP. If you can use it, fine; if you cannot, fine too.
Well, yes, of course, its Free Software so it has every right to suck and be unusable, but don't expect people to be praud of it or recomment it to their friends then. If Free Software should get a larger user base, which is something at least quite a lot of Free Software devopers want, they need to listen to their user base.
### People go on and on about the horrendous user interface, yet fail to back this up with anything substantial.
You must be reading another slashdot then I am, while its true that there is a bunch of flaming without facts, the facts itself (floating windows, confusing menu, lack of preview, lack of brushes, lack/obscure/unusable drawing primitves, etc.) get repeated over and over again with every mentioned of slashdot, so its pretty obvious why people just leave them out from time to time.
### If you hate the interface, what is it about it that you don't like?
Look for example here and thats just a few of the things that are wrong with Gimp.
### So the next time, if you feel the need to complain, please try to be a little bit more specific and use less inflammatory language.
Well, people have critised the same issues for like five years and things on the Gimp side havn't been much improved at all, sure a little bit fine tuning here and there, but the major issues are still unresolved and nobody of the Gimp developers really seems to care. And well, add to that, that constantly people come and say 'well, you just have to get used to it' while the critics often use Gimp for many many years, its no wonder they get a bit annoyed.
### Just what does that restriction to a single expression have to do with whitespace?
A lot, since you can't simply include a code block whereever you want. If you search the list archives a bit you will find plenty of discussions that basically boil down to whitespace being one of the major issues why Python does not have anonymouse functions.
Functional programming is a whole different issue and doesn't have anything todo with this.
One of the biggest drawback of the whitespace issue is that you don't get a real lambda in Python for basically just that reason. The lambda that is in Python is limited to a single expression (ie. single line) and thus beside trivial stuff completly useless. Naming functions kind of really sucks if all you wanna do is something very little.
The whitespace issue makes of course other things like copy&paste a whole lot harder too.
Overall I just wish they would introduce some kind of construct to get away from thet whitespace issue be it {}-blocks or whatever, but its probally to late for that now. Lack of Whitespace is one of the reasons I prefer Ruby, while it has some uglynesses by itself, it doesn't feel like I am always punished by the language.
When I think about contests and Gimp, I think about http://contest.gimp.org/. Was a lot of fun browsing through the entries and submitting work. To bad its now defunc since 1999. Even so its long gone I kind of still miss it, always makes me think of good old times, I guess I am just getting really old...
If I walk in a shop all I see are still those ugly huge Towers. Yes, those mini-PCs are out there and I can order them online, but they are still quite a minority and quite a bit away of being a mainstream replacement for the ugly towers. Times however are changing and it looks more and more people are just satisfied with the processing speed from a few years ago, so I guess more of those little PCs will enter maintstream sooner or later.
What I would really like to see would be something like an iBook, but without keyboard and display, just a little box you can stick under your monitor. Even today most mini-PCs are still way larger then such a desktop-iBook could be.
### I would postulate having programs have Autosave functions that are easy to use and invisible (I have the $ files that seem to show up in word) would be the best solution. I think such things exist, but I've yet to find one that is actually useful to me.
Ultimativly what one needs is a global undo/redo system. Todays undo/redo are completly on the application side, so is saving documents, however documents should really be collections of actions performaned by the user, not streams just of bytes. These 'collection of commands' would beside error recovery also make a bunch of other issuse a lot easier, such as scripting, since commands would all have to be registered and follow a standard API adding scripting support for any language would be trivial. And while at that filesystem should be transformed into an object oriented database... Downside is of course that it would require quite a bit of work on the framework and the OS itself, which is why nobody is doing it and everybody is still using computers like 20 years ago.
1) The computer is already steadily accessing the harddisk pretty much all the time (swap, webpage cache, whatever), saving a handfull of user actions every 30sec would really not hurt at all. And if the software is written right it really ONLY needs to save the user actions, if you are working on a 300mb image, it needs to save your brushstrokes, not the image every few seconds, performance loss would be zero if done right.
The design flaw isn't that the computer shuts down, thats rather expected when it doesn't get any more power, the design flaw is really that the computer loses a whole lot more work then necesarry. At worst the computer should lose maybe 1min worth of work, not like 2 hours of work if its a long time ago since I manually preset 'save'. Especially with todays gigabyte harddrive computers would have enough storage to store each and every userinteraction ever done, however they just don't do it and simply lose all the work if things go just a bit wrong. Todays software is still more or less the same old stuff than 10 or 20 years ago, sure a bit more colorfull here and there, but it seldomly does anything against user or hardware errors (redundant filesystem would be usefull for failing harddisks, versioned filesystem so that user can undo, etc.).
Beside from that, the design flaw with the power is of course that it needs so f***'ing much of it. We already have Laptops, tiny computers which can run a few hours on batteries, on the desktop side we are however still in stone-age with huge noisy 'bigtower' computers, still waiting for the first small laptop-like desktop computer to enter mainstream.
The problem isn't that it isn't intuitive, but that it can't be found out easily by the user itself without completly random try&error. I mean if I drag the floppy on the trashcan I would expect it to get deleted, isn't that what the trashcan is for? That MacOSX turn the trash into an eject button just makes this more obvious, I mean icons that randomly morph into something completly different is neither intuitive nor easy to get by any means.
I personally prefer the PC way of handling Floppies, while it doesn't gurantee that I rip out the Floppy half in the write, it at least pretty easy to figure out when its save to rip out, ie. if it makes noise and the light is on 'don't touch'. Some lock that keeps the Floppy in while writing would for sure be a nice addition, but only as long as the eject mechanism itself is mechanical, I personally hate drives that require the PC to be powered on to get the disk out.
Only question is then what would be the big advantage of such a card vs say a Matrox card, which also have limited 3d capabilites, but are pretty good at plain 2d or vs. an NVidia card with the OpenSource drivers?
There is of course also the question if OpenSource driver can compete with the quality of say the NVidia drivers, after all they 'just work'[tm], which it not something that I can say about all the OpenSource stuff I use.
Overall I wish them luck, but I have a hard time imagening a market where such a card would really fit. Being OpenSource is sure a plus, but it alone won't be enough. And so far I still havn't seen a transmeta processor for sale over here in germany, don't really expect this piece of hardware to have much more success.
While its true that those keyframes make it more difficult to jump forward and backward in a MPEG stream they by far don't make it impossible, they just require a little bit more work on the programmer side, a bit buffering here, a bit load-ahead there and predictable and preciese forward and backward shouldn't be much of a problem. This is actually one example that shows pretty good that usability is not just about the user interface, but also about the features that the underlying code can support. A video library that can only decode a MPEG stream in one direction and only jump across keyframes, simply makes it almost impossible to implement a proper UI on top of it, since the library simple can't do what a good UI would require.
After all one of the reasons I like Alsaplayer so much is that it supports freely seeking forward and backward in an MP3 streams, it even allows playing the backwards and at different speed, don't know any other player that can do that. Alsaplayer is however just a music player, not a video one, which there would be video players just as easy to use as alsaplayer.
I don't really get all the fuzz about Firefox. I mean its ok, it provides the basic stuff and has some additional features for blocking some of the more common kinds of junk on the net and it finally has type-ahead search. But thats really not that much more from the interface point of view then Netscape provided half a decade ago or what the original Mosaic provide, sure rendering engine and such might be a bit better, but interface is mostly still the same.
What about a browser history that actually shows me what I browsed in some thumbnailed linked graph, showing me from which pages I went to which and such? Might be extremly usefull in some situations and for sure a lot more usefull then a simple list of urls, even a list of thumbnails + urls would already help a lot.
Another issue, why can't I configure the toolbar freely? I am only allowed to drag&drop a handfull of functions in there, while the menu provides much more, why can't I drag&drop them too?
How about resuming downloads? Is that finally possible? I mean I could do it with wget since some long long time ago, why do browsers still not support that or why did it take so long in the first place?
There are a whole bunch of other major or minor issues I have with Firefox. Especially compared to Galeon1.2 or Opera from a few years ago the visible progress seems rather minor if at all.
Taking about Expose, I consider it something along the best invention I have seen in the GUIs on todays computers in the last years. Yes, it can be a bit annoying if you only have a slugish touchpad at hand and trigger it by excident and it might be confusing to new users, since its not obvious how it got triggered in the first place, but after all its off by default so no evil things happen.
The good thing of Expose is that it gives you one feature that everybody knows from the real world, but which is extremly seldomly seen in GUIs, I would call the 'step back' feature. With drop-down lists, tasksbars and even with different workspaces is way to easy to lose the overview, Expose gives you the freedoom to virtually step back and see whats on your desktop simply by zooming out and rearanging the windows so that everything gets visible. It makes navigating a whole heapload of windows way easier then anything else. In general the ability to 'step back' when losing the overview is what makes computers so much more inaccessible then a table and some pieces of paper.
While the idea is tempting, so far I have never seen it done right and don't really believe its possible to get them right. The problem is that such a feature completly lacks predictability. Questions about how much an expert must I be to use 'expert mode', will it probally hide features that I really need when I switch to newbie and such?
Debian XFree86 Configtool for example has Expert, Medium and Newbie modes, one lets one go through every detail of setting up monitor refresh rates, resolution and such, the other gives you more or less usefull defaults to select from. However none of them is really useable, Expert requires me to input stuff I have no idea about, Medium gives me shiny 75Hz at max and Newbie gives some even worse settings. A good way would be to let the user go through ALL of these settings at once, start with quite generic 'newbie' default, then finetune where needed, its however not possible with the Debian tool.
If an app is so full of features that you can't stuck them all in the GUI at once provide a command-line-like way to reach functions and only hook up the frequently used stuff in the GUI (Emacs-like) or provide 'Advanced' buttons in the dialogs that unhide some more settings. Most importantly however make the application configurable, when I need stuff frequently that other peoples might not, I should be able to create shortcuts and menu buttons for it.
### Easy fix - the most commonly or most recently used commands automatically become toolbar buttons.
Thats by far the worst thing you can do to 'fix' this. Automatically changing user-interfaces are extremly confusing for the user, since you never can be sure where your button will pop-up next time. Its also pretty hard to find out frequently used commands, in Gimp I sometimes need some command extremly often, then I just bind it to a key and use it, there is no way to figure that out beforehand, since I might use that command frequently only for this time, next image might require something completly different.
Thats said, some parts of the userinterfaces can and should be adopting, like the 'recent files' menu or say some kind of automatic bookmarks, but it should always be pretty click why they change and when they change and not just out of nowhere like for example Microsoft 'lets hide random menu entries' feature.
### But the assumption that one can make something usable for everyone is false and damaging because it ignores the very different thinking styles of different users.
I don't think so. Users are not that different after all. Sure you can't give a CAD programm into the hands of somebody and then expect him to just 'get it' without some knownledge or time to learn was CAD is all about, but thats not because of the interface, but because of the things the programm does. If the task is complex, the userinterface must necessarily expose a bunch of that complexity to the user, since the user will need that functionality to get the job done. But if the user has already used other programms before, he shouldn't have all that much throuble adopting to a different programm given that the interface is good. When one looks at the Emacs vs VI or Windows vs Linux flamewars I also do not think they are there because the people are so different, its because they get annoyed more by specific usability errors of a programm, which does not mean that the interface is good for any of them, just that for some annoyancies are enough to switch the programm. On VI for example I find its mode-fullness a complete PITA, consider it basically unusable for myself, its chaining of simple commands on the other side is quite nice, so for people who are not annoyed much by the mode-fullness it might end up being a good editor, for others not. Same with Windows vs Linux, neither of the OS gets everything right, but basically half of it wrong, just the other half, so that people are split, meaning in the end having a OS that would get both halfs right would be a perfect match for almost everybody.
### I know people who love LISP and others who hate it.
Some hate it due to its (((())))-Syntax others like the syntax since it allows quite powerfull macros. I so far havn't seen anybody who likes the syntax for readablility, which just shows that powerfull macros + non-(()) syntax could make everybody happy.
In the end there are of course some issues left that are just personal preferences, but those are the things that should be solvable by some good preferences options, not by writing a completly new application.
### Toolbar buttons require a lot of work from the user-
I kind of disagree, there is nothing that I find more frustrating then an app where I have to dig through deep menus, while the toolbar is esentially 80% pure white space, which is of course completly useless. Buttons in the toolbar should however be well grouped and have good visible clues on what they do (ie. not all blue circles with tiny white things in it like in KDE), so if I don't use them I should be able to simple ignore them. Sure with Firefox the situation is a bit different, since the space that isn't used at the buttons goes to the url-inputfield, so it really should limit the icons to the general usefull ones.
One thing that can make these 'empty' toolbars even worse is the lack of configurabilty, often seen in Gnome apps. The toolbar is there to make often used function faster to access, however for anything then the most trivial application my most frequently used functions might differ quite a lot depending on the task or the person, so I should be able to clickly rearange the toolbar to fit to the task. Firefox gets this only half right, while the configurabilty is there, only a very small fraction of all its function is actually useable for the taskbar, why that limitation? Why can I have 'Font size' and other frequently used menu entries in the toolbar?
### Some people love GUIs for the same reason (ease & hand-holding) that others hate them. Some people love CLIs for the same reason (succinct power) that others hate them
Usability is really NOT about religion, CLI vs GUI or whatever, its about doing things the right way, placing stuff where it makes sense and not wasting the users time. Sure there is not one true right way, so a lot of good interfaces don't necesarily make a consistend one, but for sure there are a lot of things that simple are done really bad in OSS and other software, no matter if you are pro CLI or pro GUI or whatever. If you get useless dialog boxes popping up for no reasons thats simply bad usability, same for colors that make text unreadable and the other points the article mentioned. You are not telling me that OSS people like to not being able to read their text and that they like to click dialogs away, are you?
The reason that most OSS guis are the way they are is simply because people didn't spend much time at all designing them, they just implemented a feature, quick&dirty punched a UI ontop of it, end of story. The result is not a 'designed for OSS' userinterface, but a 'not designed at all' userinterface, which will be both a pain for OSS users as for the rest of the people and even the programmer itself. The article gives some good points which are pretty general appliable to all kinds of software.
The only problem with Arch is that while the implementation might be KISS, the user interface is not and its almost impossible to map a good old CVS-users workflow onto Arch.
Enough to get annoyed by the lack of a 'apt-get install foo.deb'. Yes, debians package repo is huge and these things are seldom, but especially for smaller apps finding lose.debs is not so uncommon, especially since building an apt-repo inside sourceforge files section will get a bit tricky, you find lose.debs there quite often.
The throuble with the relocation is that Linux or Unix in general doesn't provide any way to let the binary find out where it is installed once it run. So as soon as a binary wants datafiles, clean relocation is basically impossible. Sure there are a number of hacks and workarounds (/proc/self/exe, scanning argv[0], PATH, wrapper scripts, etc.) which might give hint about where the software is installed, but none of that is really clean or works in all situations.
What I really miss is some kind of editable 'properties' for executables that would allow to move all those hardcoded paths and variables that they contain into a human editable (ie. non-hexeditor) form. A file in/etc/ could do a similar job, but that would again destroy the relocatability, so such a property system would need to be attached to the executable itself (like resource hooks in MacOS, Linux extended attributes or the like).
Debian, at least in part. While apt-get sure can do it, one can't use apt-get in all situations. If you just pick a.deb from a webpage you are back to manual dependency resolution or the person who hosts the.deb has to build a proper apt-get'able repository and the user has to mess with his sources.list to get it working. Sure for larger repositories that is no problem, but for a single programm thats far to much hassle. What I miss is a simple:
Sounds like a job where 'blending' might be usefull, something that most vector graphics programm support, ie. pick to shapes and morph one into the other:
r t/ free12.gif
http://www.webreference.com/graphics/column28/a
Sketch would be a linux app that can do it.
### Free software is often written to scratch an itch the programmers might have. So was the GIMP. If you can use it, fine; if you cannot, fine too.
Well, yes, of course, its Free Software so it has every right to suck and be unusable, but don't expect people to be praud of it or recomment it to their friends then. If Free Software should get a larger user base, which is something at least quite a lot of Free Software devopers want, they need to listen to their user base.
You must be reading another slashdot then I am, while its true that there is a bunch of flaming without facts, the facts itself (floating windows, confusing menu, lack of preview, lack of brushes, lack/obscure/unusable drawing primitves, etc.) get repeated over and over again with every mentioned of slashdot, so its pretty obvious why people just leave them out from time to time.
### If you hate the interface, what is it about it that you don't like?
Look for example here and thats just a few of the things that are wrong with Gimp.
### So the next time, if you feel the need to complain, please try to be a little bit more specific and use less inflammatory language.
Well, people have critised the same issues for like five years and things on the Gimp side havn't been much improved at all, sure a little bit fine tuning here and there, but the major issues are still unresolved and nobody of the Gimp developers really seems to care. And well, add to that, that constantly people come and say 'well, you just have to get used to it' while the critics often use Gimp for many many years, its no wonder they get a bit annoyed.
Xalf more or less does that, ie. indicate when a programm is just starting up:
f /
http://www.lysator.liu.se/~astrand/projects/xal
### Just what does that restriction to a single expression have to do with whitespace?
A lot, since you can't simply include a code block whereever you want. If you search the list archives a bit you will find plenty of discussions that basically boil down to whitespace being one of the major issues why Python does not have anonymouse functions.
Functional programming is a whole different issue and doesn't have anything todo with this.
One of the biggest drawback of the whitespace issue is that you don't get a real lambda in Python for basically just that reason. The lambda that is in Python is limited to a single expression (ie. single line) and thus beside trivial stuff completly useless. Naming functions kind of really sucks if all you wanna do is something very little.
The whitespace issue makes of course other things like copy&paste a whole lot harder too.
Overall I just wish they would introduce some kind of construct to get away from thet whitespace issue be it {}-blocks or whatever, but its probally to late for that now. Lack of Whitespace is one of the reasons I prefer Ruby, while it has some uglynesses by itself, it doesn't feel like I am always punished by the language.
When I think about contests and Gimp, I think about
http://contest.gimp.org/. Was a lot of fun browsing through the entries and submitting work. To bad its now defunc since 1999. Even so its long gone I kind of still miss it, always makes me think of good old times, I guess I am just getting really old...
If I walk in a shop all I see are still those ugly huge Towers. Yes, those mini-PCs are out there and I can order them online, but they are still quite a minority and quite a bit away of being a mainstream replacement for the ugly towers. Times however are changing and it looks more and more people are just satisfied with the processing speed from a few years ago, so I guess more of those little PCs will enter maintstream sooner or later.
What I would really like to see would be something like an iBook, but without keyboard and display, just a little box you can stick under your monitor. Even today most mini-PCs are still way larger then such a desktop-iBook could be.
### I would postulate having programs have Autosave functions that are easy to use and invisible (I have the $ files that seem to show up in word) would be the best solution. I think such things exist, but I've yet to find one that is actually useful to me.
Ultimativly what one needs is a global undo/redo system. Todays undo/redo are completly on the application side, so is saving documents, however documents should really be collections of actions performaned by the user, not streams just of bytes. These 'collection of commands' would beside error recovery also make a bunch of other issuse a lot easier, such as scripting, since commands would all have to be registered and follow a standard API adding scripting support for any language would be trivial. And while at that filesystem should be transformed into an object oriented database... Downside is of course that it would require quite a bit of work on the framework and the OS itself, which is why nobody is doing it and everybody is still using computers like 20 years ago.
1) The computer is already steadily accessing the harddisk pretty much all the time (swap, webpage cache, whatever), saving a handfull of user actions every 30sec would really not hurt at all. And if the software is written right it really ONLY needs to save the user actions, if you are working on a 300mb image, it needs to save your brushstrokes, not the image every few seconds, performance loss would be zero if done right.
The design flaw isn't that the computer shuts down, thats rather expected when it doesn't get any more power, the design flaw is really that the computer loses a whole lot more work then necesarry. At worst the computer should lose maybe 1min worth of work, not like 2 hours of work if its a long time ago since I manually preset 'save'. Especially with todays gigabyte harddrive computers would have enough storage to store each and every userinteraction ever done, however they just don't do it and simply lose all the work if things go just a bit wrong. Todays software is still more or less the same old stuff than 10 or 20 years ago, sure a bit more colorfull here and there, but it seldomly does anything against user or hardware errors (redundant filesystem would be usefull for failing harddisks, versioned filesystem so that user can undo, etc.).
Beside from that, the design flaw with the power is of course that it needs so f***'ing much of it. We already have Laptops, tiny computers which can run a few hours on batteries, on the desktop side we are however still in stone-age with huge noisy 'bigtower' computers, still waiting for the first small laptop-like desktop computer to enter mainstream.
The problem isn't that it isn't intuitive, but that it can't be found out easily by the user itself without completly random try&error. I mean if I drag the floppy on the trashcan I would expect it to get deleted, isn't that what the trashcan is for? That MacOSX turn the trash into an eject button just makes this more obvious, I mean icons that randomly morph into something completly different is neither intuitive nor easy to get by any means.
I personally prefer the PC way of handling Floppies, while it doesn't gurantee that I rip out the Floppy half in the write, it at least pretty easy to figure out when its save to rip out, ie. if it makes noise and the light is on 'don't touch'. Some lock that keeps the Floppy in while writing would for sure be a nice addition, but only as long as the eject mechanism itself is mechanical, I personally hate drives that require the PC to be powered on to get the disk out.
Only question is then what would be the big advantage of such a card vs say a Matrox card, which also have limited 3d capabilites, but are pretty good at plain 2d or vs. an NVidia card with the OpenSource drivers?
There is of course also the question if OpenSource driver can compete with the quality of say the NVidia drivers, after all they 'just work'[tm], which it not something that I can say about all the OpenSource stuff I use.
Overall I wish them luck, but I have a hard time imagening a market where such a card would really fit. Being OpenSource is sure a plus, but it alone won't be enough. And so far I still havn't seen a transmeta processor for sale over here in germany, don't really expect this piece of hardware to have much more success.
While its true that those keyframes make it more difficult to jump forward and backward in a MPEG stream they by far don't make it impossible, they just require a little bit more work on the programmer side, a bit buffering here, a bit load-ahead there and predictable and preciese forward and backward shouldn't be much of a problem. This is actually one example that shows pretty good that usability is not just about the user interface, but also about the features that the underlying code can support. A video library that can only decode a MPEG stream in one direction and only jump across keyframes, simply makes it almost impossible to implement a proper UI on top of it, since the library simple can't do what a good UI would require.
After all one of the reasons I like Alsaplayer so much is that it supports freely seeking forward and backward in an MP3 streams, it even allows playing the backwards and at different speed, don't know any other player that can do that. Alsaplayer is however just a music player, not a video one, which there would be video players just as easy to use as alsaplayer.
I don't really get all the fuzz about Firefox. I mean its ok, it provides the basic stuff and has some additional features for blocking some of the more common kinds of junk on the net and it finally has type-ahead search. But thats really not that much more from the interface point of view then Netscape provided half a decade ago or what the original Mosaic provide, sure rendering engine and such might be a bit better, but interface is mostly still the same.
What about a browser history that actually shows me what I browsed in some thumbnailed linked graph, showing me from which pages I went to which and such? Might be extremly usefull in some situations and for sure a lot more usefull then a simple list of urls, even a list of thumbnails + urls would already help a lot.
Another issue, why can't I configure the toolbar freely? I am only allowed to drag&drop a handfull of functions in there, while the menu provides much more, why can't I drag&drop them too?
How about resuming downloads? Is that finally possible? I mean I could do it with wget since some long long time ago, why do browsers still not support that or why did it take so long in the first place?
There are a whole bunch of other major or minor issues I have with Firefox. Especially compared to Galeon1.2 or Opera from a few years ago the visible progress seems rather minor if at all.
Taking about Expose, I consider it something along the best invention I have seen in the GUIs on todays computers in the last years. Yes, it can be a bit annoying if you only have a slugish touchpad at hand and trigger it by excident and it might be confusing to new users, since its not obvious how it got triggered in the first place, but after all its off by default so no evil things happen.
The good thing of Expose is that it gives you one feature that everybody knows from the real world, but which is extremly seldomly seen in GUIs, I would call the 'step back' feature. With drop-down lists, tasksbars and even with different workspaces is way to easy to lose the overview, Expose gives you the freedoom to virtually step back and see whats on your desktop simply by zooming out and rearanging the windows so that everything gets visible. It makes navigating a whole heapload of windows way easier then anything else. In general the ability to 'step back' when losing the overview is what makes computers so much more inaccessible then a table and some pieces of paper.
While the idea is tempting, so far I have never seen it done right and don't really believe its possible to get them right. The problem is that such a feature completly lacks predictability. Questions about how much an expert must I be to use 'expert mode', will it probally hide features that I really need when I switch to newbie and such?
Debian XFree86 Configtool for example has Expert, Medium and Newbie modes, one lets one go through every detail of setting up monitor refresh rates, resolution and such, the other gives you more or less usefull defaults to select from. However none of them is really useable, Expert requires me to input stuff I have no idea about, Medium gives me shiny 75Hz at max and Newbie gives some even worse settings. A good way would be to let the user go through ALL of these settings at once, start with quite generic 'newbie' default, then finetune where needed, its however not possible with the Debian tool.
If an app is so full of features that you can't stuck them all in the GUI at once provide a command-line-like way to reach functions and only hook up the frequently used stuff in the GUI (Emacs-like) or provide 'Advanced' buttons in the dialogs that unhide some more settings. Most importantly however make the application configurable, when I need stuff frequently that other peoples might not, I should be able to create shortcuts and menu buttons for it.
### Easy fix - the most commonly or most recently used commands automatically become toolbar buttons.
Thats by far the worst thing you can do to 'fix' this. Automatically changing user-interfaces are extremly confusing for the user, since you never can be sure where your button will pop-up next time. Its also pretty hard to find out frequently used commands, in Gimp I sometimes need some command extremly often, then I just bind it to a key and use it, there is no way to figure that out beforehand, since I might use that command frequently only for this time, next image might require something completly different.
Thats said, some parts of the userinterfaces can and should be adopting, like the 'recent files' menu or say some kind of automatic bookmarks, but it should always be pretty click why they change and when they change and not just out of nowhere like for example Microsoft 'lets hide random menu entries' feature.
### But the assumption that one can make something usable for everyone is false and damaging because it ignores the very different thinking styles of different users.
I don't think so. Users are not that different after all. Sure you can't give a CAD programm into the hands of somebody and then expect him to just 'get it' without some knownledge or time to learn was CAD is all about, but thats not because of the interface, but because of the things the programm does. If the task is complex, the userinterface must necessarily expose a bunch of that complexity to the user, since the user will need that functionality to get the job done. But if the user has already used other programms before, he shouldn't have all that much throuble adopting to a different programm given that the interface is good. When one looks at the Emacs vs VI or Windows vs Linux flamewars I also do not think they are there because the people are so different, its because they get annoyed more by specific usability errors of a programm, which does not mean that the interface is good for any of them, just that for some annoyancies are enough to switch the programm. On VI for example I find its mode-fullness a complete PITA, consider it basically unusable for myself, its chaining of simple commands on the other side is quite nice, so for people who are not annoyed much by the mode-fullness it might end up being a good editor, for others not. Same with Windows vs Linux, neither of the OS gets everything right, but basically half of it wrong, just the other half, so that people are split, meaning in the end having a OS that would get both halfs right would be a perfect match for almost everybody.
### I know people who love LISP and others who hate it.
Some hate it due to its (((())))-Syntax others like the syntax since it allows quite powerfull macros. I so far havn't seen anybody who likes the syntax for readablility, which just shows that powerfull macros + non-(()) syntax could make everybody happy.
In the end there are of course some issues left that are just personal preferences, but those are the things that should be solvable by some good preferences options, not by writing a completly new application.
### Toolbar buttons require a lot of work from the user-
I kind of disagree, there is nothing that I find more frustrating then an app where I have to dig through deep menus, while the toolbar is esentially 80% pure white space, which is of course completly useless. Buttons in the toolbar should however be well grouped and have good visible clues on what they do (ie. not all blue circles with tiny white things in it like in KDE), so if I don't use them I should be able to simple ignore them. Sure with Firefox the situation is a bit different, since the space that isn't used at the buttons goes to the url-inputfield, so it really should limit the icons to the general usefull ones.
One thing that can make these 'empty' toolbars even worse is the lack of configurabilty, often seen in Gnome apps. The toolbar is there to make often used function faster to access, however for anything then the most trivial application my most frequently used functions might differ quite a lot depending on the task or the person, so I should be able to clickly rearange the toolbar to fit to the task. Firefox gets this only half right, while the configurabilty is there, only a very small fraction of all its function is actually useable for the taskbar, why that limitation? Why can I have 'Font size' and other frequently used menu entries in the toolbar?
### Some people love GUIs for the same reason (ease & hand-holding) that others hate them. Some people love CLIs for the same reason (succinct power) that others hate them
Usability is really NOT about religion, CLI vs GUI or whatever, its about doing things the right way, placing stuff where it makes sense and not wasting the users time. Sure there is not one true right way, so a lot of good interfaces don't necesarily make a consistend one, but for sure there are a lot of things that simple are done really bad in OSS and other software, no matter if you are pro CLI or pro GUI or whatever. If you get useless dialog boxes popping up for no reasons thats simply bad usability, same for colors that make text unreadable and the other points the article mentioned. You are not telling me that OSS people like to not being able to read their text and that they like to click dialogs away, are you?
The reason that most OSS guis are the way they are is simply because people didn't spend much time at all designing them, they just implemented a feature, quick&dirty punched a UI ontop of it, end of story. The result is not a 'designed for OSS' userinterface, but a 'not designed at all' userinterface, which will be both a pain for OSS users as for the rest of the people and even the programmer itself. The article gives some good points which are pretty general appliable to all kinds of software.
The only problem with Arch is that while the implementation might be KISS, the user interface is not and its almost impossible to map a good old CVS-users workflow onto Arch.
Enough to get annoyed by the lack of a 'apt-get install foo.deb'. Yes, debians package repo is huge and these things are seldom, but especially for smaller apps finding lose .debs is not so uncommon, especially since building an apt-repo inside sourceforge files section will get a bit tricky, you find lose .debs there quite often.
The throuble with the relocation is that Linux or Unix in general doesn't provide any way to let the binary find out where it is installed once it run. So as soon as a binary wants datafiles, clean relocation is basically impossible. Sure there are a number of hacks and workarounds (/proc/self/exe, scanning argv[0], PATH, wrapper scripts, etc.) which might give hint about where the software is installed, but none of that is really clean or works in all situations.
/etc/ could do a similar job, but that would again destroy the relocatability, so such a property system would need to be attached to the executable itself (like resource hooks in MacOS, Linux extended attributes or the like).
What I really miss is some kind of editable 'properties' for executables that would allow to move all those hardcoded paths and variables that they contain into a human editable (ie. non-hexeditor) form. A file in
Debian, at least in part. While apt-get sure can do it, one can't use apt-get in all situations. If you just pick a .deb from a webpage you are back to manual dependency resolution or the person who hosts the .deb has to build a proper apt-get'able repository and the user has to mess with his sources.list to get it working. Sure for larger repositories that is no problem, but for a single programm thats far to much hassle. What I miss is a simple:
/tmp/mypackage.deb
$ apt-get install