Just read this article about the top 10 worst design bugs. I've been argueing that #3 needs to be fixed (and once designed a window system that specifically dealt with this.)
I must say I can't agree with all of this. Unix has become much harder to use since the POSIX locale-specific sort behaviour has been incorporated into the shell. The fact that ASCII collation is simple and reproducible far outweighs any "benefits" of "convenience" in having the files listed in the "right" order. File names are identifiers, dammit, not sentences - and there's no language tag associated with them, so the system cannot know the 'appropriate' natural language collation sequence, and even if it did, how would it handle the (utterly usual) case where multiple natural and artificial languages are interfiled?
Naive ASCII (or UTF-8) collation is the right answer.
If you want the kind of smart collation described by these people, the file'name' needs to be a date object, not a string, and the problem becomes an object collation sequence problem.
Their blathering about spaces is also obviously stupid. The problem of accidental name aliasing is well known - it is the motivation for BounceCase - and these people are just fools on this point. (They're also ignorant. Spaces between words are a comparatively recent invention.)
Actually there is a clean fix, and that is to have a wordBoundary codepoint, and generate exactly one internally wherever the user inserts horizontal whitespace and/or abuts a word constituent and a non-word-constituent (being careful that hyphen and apostrophe are word constituents where dash and quotation mark are not, heh-heh).
But on the whole? These folks seem to be as short-sighted as the people they are complaining about.
I'm far too depressed to argue the point, but I think that all of their complaints are valid, even if their 'solutions' are half-assed. Your proposal for collation objects is about half-way to what I would do, so I can't imagine we're that far apart in our views.
Oooops. This seems to have turned into a classic round of "let's point out all the errors in the article" kind of post. Didn't mean to (riiiiight ;-) but there you go ;-)
Add language-specific exceptions, such as ignoring "The" and "A" or "An" when alphabetizing English. (from the article's #4 bug)
The first thought that ran through my mind when I read that one was "And HOW many languages are there on this planet???" The second thought was something like "You insensitive clods!" (aimed at the authors, not swestrup of course!)
To me it seems like they're taking a lot of things out of their context. Personally, I've been in situations where I wanted "A10" to be sorted before "A2" (the opposite of what they propose). When converting dates and/or numbers to character strings you loose information. If you want to retain information about the meaning of data those data should be saved along with the data.
[All Existing] Browsers disallow entry of spaces into web addresses (from the article's #5 bug)
That is just plain wrong. FireFox 1.0 easily handles both input of spaces in the location bar and in urls in flat HTML files. Does your browser?
I basically agree with bugs #1, #2 and #3 as they've annoyed me quite a bit in the past. There is, however, always the tradeoff between price and functionality. It's very possible, some might even say easy, to "fix" #1 by adding a small UPS to each computer. But I'll be buggered if I want to pay EUR100 extra for a computer simply so it can continue to work when everything else goes pitch black. To successfully do something like that it would also be necessary to have redundant power supply for the monitor and other unavoidable peripherals; I'm not sure my wireless keyboard will stop working if I pull out the power adapter for the base station / mouse charger, but now is not the time to test that ;-)
How did your window system deal with greyed out menus? A few thoughts that comes to mind are "notify the user when (s)he tries to use menus that can't readily be applied to the current situation/date" and "remove them instead of grey them out". The last one, however, is not a nice solution as it will make the placement of each menu item inconsistent.
#4 :> Proper default collation requires knowledge of source language, yes. The Library of Congress deals with this all the time. Locales go at least part-way to solving the problem.
#1 :> He doesn't want a UPS, he just wants RAM to get synch'ed to disk every few seconds, so you never lose more than, say, 5 seconds of work. I've seen systems like the Newton that could do that.
My window system only allowed you to 'grey-out' a menu item that had an associated 'grey-reason' dialog for that menu entry. It couldn't insist that the reason be understandable, but at least it meant that right-clicking on any menu entry would provide a short help dialog (if it was active) or a grey dialog (if it was greyed-out). I also was contemplating a tool-tip thingy if you just hovered the mouse (they were a new invention back then, and I wasn't sure if I wanted it or not). The game that this was all being written for got cancelled and so it never saw the light of day.
See, that's the thing. I think proper default collation should be language-neutral. Otherwise you can't write tools, you can't find things on other people's computers - you've got much the same problems as you do if you build a computer with the idea that the graphic UI is the only system interface.
Sure, let the user select 'list files as if they were English book titles' from a menu, but IMO that should be a user accomodation, not a default system behaviour (just as the default date format should be the ISO format, with US and British conventions as a selectable option).
no subject
Date: 2004-11-30 11:19 am (UTC)Naive ASCII (or UTF-8) collation is the right answer.
If you want the kind of smart collation described by these people, the file'name' needs to be a date object, not a string, and the problem becomes an object collation sequence problem.
Their blathering about spaces is also obviously stupid. The problem of accidental name aliasing is well known - it is the motivation for BounceCase - and these people are just fools on this point. (They're also ignorant. Spaces between words are a comparatively recent invention.)
Actually there is a clean fix, and that is to have a wordBoundary codepoint, and generate exactly one internally wherever the user inserts horizontal whitespace and/or abuts a word constituent and a non-word-constituent (being careful that hyphen and apostrophe are word constituents where dash and quotation mark are not, heh-heh).
But on the whole? These folks seem to be as short-sighted as the people they are complaining about.
no subject
Date: 2004-11-30 12:17 pm (UTC)no subject
Date: 2004-11-30 11:56 am (UTC)Add language-specific exceptions, such as ignoring "The" and "A" or "An" when alphabetizing English.
(from the article's #4 bug)
The first thought that ran through my mind when I read that one was "And HOW many languages are there on this planet???"
The second thought was something like "You insensitive clods!" (aimed at the authors, not
To me it seems like they're taking a lot of things out of their context. Personally, I've been in situations where I wanted "A10" to be sorted before "A2" (the opposite of what they propose). When converting dates and/or numbers to character strings you loose information. If you want to retain information about the meaning of data those data should be saved along with the data.
[All Existing] Browsers disallow entry of spaces into web addresses
(from the article's #5 bug)
That is just plain wrong. FireFox 1.0 easily handles both input of spaces in the location bar and in urls in flat HTML files. Does your browser?
I basically agree with bugs #1, #2 and #3 as they've annoyed me quite a bit in the past. There is, however, always the tradeoff between price and functionality. It's very possible, some might even say easy, to "fix" #1 by adding a small UPS to each computer. But I'll be buggered if I want to pay EUR100 extra for a computer simply so it can continue to work when everything else goes pitch black. To successfully do something like that it would also be necessary to have redundant power supply for the monitor and other unavoidable peripherals; I'm not sure my wireless keyboard will stop working if I pull out the power adapter for the base station / mouse charger, but now is not the time to test that ;-)
How did your window system deal with greyed out menus?
A few thoughts that comes to mind are "notify the user when (s)he tries to use menus that can't readily be applied to the current situation/date" and "remove them instead of grey them out". The last one, however, is not a nice solution as it will make the placement of each menu item inconsistent.
no subject
Date: 2004-11-30 12:24 pm (UTC)#1 :> He doesn't want a UPS, he just wants RAM to get synch'ed to disk every few seconds, so you never lose more than, say, 5 seconds of work. I've seen systems like the Newton that could do that.
My window system only allowed you to 'grey-out' a menu item that had an associated 'grey-reason' dialog for that menu entry. It couldn't insist that the reason be understandable, but at least it meant that right-clicking on any menu entry would provide a short help dialog (if it was active) or a grey dialog (if it was greyed-out). I also was contemplating a tool-tip thingy if you just hovered the mouse (they were a new invention back then, and I wasn't sure if I wanted it or not). The game that this was all being written for got cancelled and so it never saw the light of day.
no subject
Date: 2004-11-30 12:43 pm (UTC)Sure, let the user select 'list files as if they were English book titles' from a menu, but IMO that should be a user accomodation, not a default system behaviour (just as the default date format should be the ISO format, with US and British conventions as a selectable option).