> but for Joe Blow who wants to check his email, browse the web, an do a little word processing, it is not a very interesting offering.
I'm gonna have to disagree with you there, buddy: for Joe Blow it can be extremely easy. It's the people who know enough to get into trouble for whom Linux can start to be daunting, because they know what they want to happen and it is difficult or impossible to make the computer do it.
The most advanced users seem to pass through stages, where operating the computer is easy at first, then difficult and frustrating, and then syntactically obscure, conceptually simple, and very satisfying.
I worked for the department that managed ResNet and stuff at my university, and my internet access was threatened to be shut off once. The reason they had (and it _is_ legitimate) was that the hubs they were using in my building were old hubs with security tables that kept a record of the MAC addresses which used each port (they're kind of halfway between a hub and a true switch).
Because of this, any time you plugged in a hub/WAP/etc. and connected multiple computers to a room jack, the hubs would crash, bringing down everyone on your floor as well. So I built a little OpenBSD router with NAT enabled and put my WAP and other computers behind that; that got them off my backs, and it was slightly more secure than what I had before.
Direct3D is *not* easier to program than OpenGL (or at least, not in the earlier versions). In the newer incarnations they *redesigned* the APIs so that D3D was more like GL to program. The reason lots of people are attached to D3D is that, being designed by a monopolistic company like Micros~1, it changes and adds new 'features' a lot quicker than GL, which is designed by committee.
Re:One good point -- too much C in open software
on
KDE Strikes Back
·
· Score: 2
writing array structures, and functions to operate on them (pseudo-objects)
You have to do this in an OO lang too. If the lang is sufficiently complex, you could use a template-type object for a generic class, but then again you can do the same type of thing in C.
writing standardized error handling
I've done this before too. It's a matter of a 20-line C source file to implement a fairly complete error handling library. Plus, you could just keep the code around as a personal library type thing.
synchronizing related structures
This can get messy. However, in OO programming you should think about these things anyway -- it's as much work, just less coding.
fixing memory bugs
Don't tell me you can't have memory bugs in an OO language, just because it's OO. C might benefit from stronger type rules, but there are a horde of utilities for debugging memory bugs, and profiling them as well, for speed optimization.
avoiding that oh-so-tempting copy/paste by generalizing function arguments
Um, you can write generic functions in C. It's not even hard.
Now don't get me wrong, developing in C has its drawbacks, and doing OO in another language can have its advantages. I personally have found ways of dealing with these drawbacks, though, and I find myself at least as productive in C as in other languages (C++, LISP, Prolog, VB, etc.). And I hate to see misinformed people blaming the language for the bad design decisions of the relevant programmers.
Finally, open source projects do tend to reinvent wheels, but this is NOT the fault of C. It's the fault of everybody needing something a little different for their projects, and deciding to reimplement the functionality.
Oedipus is violent. It is not pornography. O.R. pokes his eyes out because he realizes how deeply he has sinned, and feels he needs to be punished. He pokes his eyes out and is forced out of kingship and out of town, to wander around. Thus, it supplies a moral lesson and the violence is justified, and not inhuman -- we can understand it, rather than just revel in it. (In other words, lots of classic works aren't violent and raunchy, but are not pornography.:)
Posting DeCSS may not be an incitement to commit a crime, but the judge apparently thinks that the main use of the program is to illegally copy DVDs. I don't think the defendants properly got that point across. Yes, DeCSS can be used to help 'pirates' in copying DVDs at smaller sizes, but you can copy DVDs without DeCSS (just can't really play the copies back AFAIK).
The thing I got from the findings is that the judge was biased against the defendants, but in fact suggested ways they could have handled the case to reverse the findings (Footnote 217, page 64).
The thing I'd like to see is, since the source code that decrypts CSS is considered functional as well as expressive, what if you posted most of the other source code (I/O, etc.) involved in DeCSS, and then posted the rest as some form of pseudocode on the web that people would only have to translate into actual code and link with the other stuff to make a fully working product. And make sure to make the pseudocode with grammatical mistakes, etc. that prevent the possibility of making a pseudocode compiler. That way, it can only be seen as expressive, as it teaches the user how this piece of encryption software works, and it is not functional without the user thinking about it and translating.
The real meaning of pornography includes any kinds of de-humanizing activity. So, for example, the Texas Chainsaw Massacre would be classified as pornography, because it portrays out-of-control inhuman activities and does nothing to make the viewer feel sickened; whereas Psycho would not, because it plays on the viewer's mind to come up with imagery.
Gratuitous sex can also be pornography, but some portrayals of sexual intercourse can be artistic, or something other than pornography, as long as they put it in perspective, and don't revel in the nastiness just for the sake of it.
That's not the point. Instead of going for an unstable 1133-MHz processor just because of the clock speed, try perhaps an 800-850 MHz. Most applications you'd care to throw at the slower processor would probably gain *NO* benefit from the extra MHz. (See Tom's list of applications, which covers most computer users, I think, except maybe researchers or audio/video editors.)
Plus, as you decrease clock speed from the absolute high-end of CPUs, price/performance dramatically increases.
Let's look at 3dfx: Does describing how to invoke the FSAA (Full Screen Anti-Aliasing) features of the Voodoo chip via driver code give away the inner-processes of how the chip goes about achieving that? No, not in any way, shape, or form.
No, but it does let unscrupulous manufacturers copy the exact interface that 3dfx has published and market it as a 3dfx-compatible or even a 3dfx card. That would cause no end of trouble to 3dfx's tech support guys.
My take on this is simple: As a user, I will use whatever is 1) functional, stable, small, and fast, and 2) doesn't piss me off. At this point (Yes, even in its beta stage) that browser is Mozilla.
As a web developer, I will try to make my pages appear on as many browsers as I can (including lynx et al). Even with the market share issue, this still means DE FACTO STANDARDS: the products that 'innovate' (IE) ALSO support the industry standards, to a degree. What I do is pick the lowest common denominator of the standards that all of my target browsers support, and design with that: you'd be surprised at how nice you can get a page looking while keeping functionality. If you absolutely need some of the extended functionality, make it an option, and allow ways around it for everyone else.
I don't mind what Microsoft is doing with IE; this is the way we get new standards introduced in the first place (I just won't use them when I make my web pages). The sorry thing about IE is that they made all of these useless innovations, and still neglected to complete some basic standards support, which they claim they have already anyway.
>/bin/bash (vs. command.com anyone?)... emacs/vi -- they really are *everything*, and customizeable. You can get those for Windows.
Yeah, but have you tried them? The DOS/Windows versions are just ports -- the native linux/Unix applications are a lot nicer.
As for enlightenment, well, maybe the newer versions are better, but the last time I tried it was RedHat 6.0 and enlightenment was a buggy piece of crap.
It's not buggy for me... just a bit slow. Could be the theme I'm using, but it might run a little faster. However, it does not crash or produce visual artifacts at all; it looks stunning.
But even so, you can clearly find a feature here or a feature there that you might like better. But on balance, any desktop on Linux is light years away from Windows' GUI. You mention drag and drop, but how about cut/paste? I can copy cells out of Excel, and paste it into Frontpage, and it will convert to an HTML table automatically. Let's not even get into OLE functionality.
You missed the point. bash/emacs/vi are better than their Windows equivalents. They are not user-friendly in the sense we're using the term here. What I was saying was that all current GUIs -- even that of Microsoft Windows -- are not as good as they can be. I don't remember the URL, but there is a site dedicated to pointing out UI design flaws, and they have many, many systems listed there, including Windows, Linux, Mac, etc. My proposition was to get a forum open so that we can collectively make a GUI that is good, and open-source, so we can take any criticisms and fix them.
Most coders don't consider UI when they write their programs; the people who do are seperate, and paid for what they do; it's not an enviable task. But it is an important one.
By the way, there is OLE within some Linux applications like StarOffice, and there will be more in the upcoming versions of e.g. KDE, so we'll see how things improve by then.
> I've said it before, and I'll say it again: Name > for me one significant end-user application that > is clearly superior than the equivalent in > Windows. There simply isn't one.
/bin/bash (vs. command.com anyone?) enlightenment? (customizability, as opposed to next to none) -- especially in devel versions emacs/vi -- they really are *everything*, and customizeable.
In fact, when you get down to it, almost any powerful command-line, network-related, techie, whatever application that you can imagine. The only ones that I can think of that fail this test are apps that try to copy the Windows interface and functionality.
Not that I'm saying these programs are user-friendly; they do have a steep learning curve. However, the Windows UI is not perfect, nor is that of MacOS. I dare you to come up with a GUI system that is perfectly intuitive for every end-user and has succeeded on the desktop based solely on that.
What I'd like to see is to have some sort of open-content conference for UI. Have all the experienced UI designers, all the app programmers, the XFree86 designers, etc. come together and hammer out a rigid set of standards for a good user interface. This might include toolkits, window managers, configuration tools, integrated applications and functionality, etc. The implementation details wouldn't matter, but the fundamentals would. This would have the effect of letting competing products compete, and yet still have a solid paradigm for the interface of a GUI.
We're getting there with stuff like the drag 'n' drop protocol, GNOME/KDE cooperation, etc. but they are all far from perfect. For linux to become friendlier to the masses, we need a standard, open, user-friendly GUI.
XFree86 3.9.x and 4.0 will support this. It is a module that scans the monitor hardware and uses the modeline info returned. Only some drivers support it for now though. See http://www.xfree86.org/snaps hots/3.9.16/RELNOTES1.html for details...
Do you have the 320x200 (or whatever) mode defined in XF86Config? Cause I don't and whatever I do I can't get it working fullscreen... even MESA_GLX_FX="fullscreen" doesn't work...
> but for Joe Blow who wants to check his email, browse the web, an do a little word processing, it is not a very interesting offering.
I'm gonna have to disagree with you there, buddy: for Joe Blow it can be extremely easy. It's the people who know enough to get into trouble for whom Linux can start to be daunting, because they know what they want to happen and it is difficult or impossible to make the computer do it.
The most advanced users seem to pass through stages, where operating the computer is easy at first, then difficult and frustrating, and then syntactically obscure, conceptually simple, and very satisfying.
Best keyboard in the WORLD is...
The Happy Hacking Keyboard!
Not exactly ergonomic in the usual sense of the word, though...
I worked for the department that managed ResNet and stuff at my university, and my internet access was threatened to be shut off once. The reason they had (and it _is_ legitimate) was that the hubs they were using in my building were old hubs with security tables that kept a record of the MAC addresses which used each port (they're kind of halfway between a hub and a true switch).
Because of this, any time you plugged in a hub/WAP/etc. and connected multiple computers to a room jack, the hubs would crash, bringing down everyone on your floor as well. So I built a little OpenBSD router with NAT enabled and put my WAP and other computers behind that; that got them off my backs, and it was slightly more secure than what I had before.
Direct3D is *not* easier to program than OpenGL (or at least, not in the earlier versions). In the newer incarnations they *redesigned* the APIs so that D3D was more like GL to program. The reason lots of people are attached to D3D is that, being designed by a monopolistic company like Micros~1, it changes and adds new 'features' a lot quicker than GL, which is designed by committee.
writing array structures, and functions to operate on them (pseudo-objects)
You have to do this in an OO lang too. If the lang is sufficiently complex, you could use a template-type object for a generic class, but then again you can do the same type of thing in C.
writing standardized error handling
I've done this before too. It's a matter of a 20-line C source file to implement a fairly complete error handling library. Plus, you could just keep the code around as a personal library type thing.
synchronizing related structures
This can get messy. However, in OO programming you should think about these things anyway -- it's as much work, just less coding.
fixing memory bugs
Don't tell me you can't have memory bugs in an OO language, just because it's OO. C might benefit from stronger type rules, but there are a horde of utilities for debugging memory bugs, and profiling them as well, for speed optimization.
avoiding that oh-so-tempting copy/paste by generalizing function arguments
Um, you can write generic functions in C. It's not even hard.
Now don't get me wrong, developing in C has its drawbacks, and doing OO in another language can have its advantages. I personally have found ways of dealing with these drawbacks, though, and I find myself at least as productive in C as in other languages (C++, LISP, Prolog, VB, etc.). And I hate to see misinformed people blaming the language for the bad design decisions of the relevant programmers.
Finally, open source projects do tend to reinvent wheels, but this is NOT the fault of C. It's the fault of everybody needing something a little different for their projects, and deciding to reimplement the functionality.
Oedipus is violent. It is not pornography. O.R. pokes his eyes out because he realizes how deeply he has sinned, and feels he needs to be punished. He pokes his eyes out and is forced out of kingship and out of town, to wander around. Thus, it supplies a moral lesson and the violence is justified, and not inhuman -- we can understand it, rather than just revel in it. (In other words, lots of classic works aren't violent and raunchy, but are not pornography. :)
Posting DeCSS may not be an incitement to commit a crime, but the judge apparently thinks that the main use of the program is to illegally copy DVDs. I don't think the defendants properly got that point across. Yes, DeCSS can be used to help 'pirates' in copying DVDs at smaller sizes, but you can copy DVDs without DeCSS (just can't really play the copies back AFAIK).
The thing I got from the findings is that the judge was biased against the defendants, but in fact suggested ways they could have handled the case to reverse the findings (Footnote 217, page 64).
The thing I'd like to see is, since the source code that decrypts CSS is considered functional as well as expressive, what if you posted most of the other source code (I/O, etc.) involved in DeCSS, and then posted the rest as some form of pseudocode on the web that people would only have to translate into actual code and link with the other stuff to make a fully working product. And make sure to make the pseudocode with grammatical mistakes, etc. that prevent the possibility of making a pseudocode compiler. That way, it can only be seen as expressive, as it teaches the user how this piece of encryption software works, and it is not functional without the user thinking about it and translating.
The real meaning of pornography includes any kinds of de-humanizing activity. So, for example, the Texas Chainsaw Massacre would be classified as pornography, because it portrays out-of-control inhuman activities and does nothing to make the viewer feel sickened; whereas Psycho would not, because it plays on the viewer's mind to come up with imagery. Gratuitous sex can also be pornography, but some portrayals of sexual intercourse can be artistic, or something other than pornography, as long as they put it in perspective, and don't revel in the nastiness just for the sake of it.
That's not the point. Instead of going for an unstable 1133-MHz processor just because of the clock speed, try perhaps an 800-850 MHz. Most applications you'd care to throw at the slower processor would probably gain *NO* benefit from the extra MHz. (See Tom's list of applications, which covers most computer users, I think, except maybe researchers or audio/video editors.)
Plus, as you decrease clock speed from the absolute high-end of CPUs, price/performance dramatically increases.
-$0.02 from Andy
Let's look at 3dfx: Does describing how to invoke the FSAA (Full Screen Anti-Aliasing) features of the Voodoo chip via driver code give away the inner-processes of how the chip goes about achieving that? No, not in any way, shape, or form.
No, but it does let unscrupulous manufacturers copy the exact interface that 3dfx has published and market it as a 3dfx-compatible or even a 3dfx card. That would cause no end of trouble to 3dfx's tech support guys.
My take on this is simple: As a user, I will use whatever is 1) functional, stable, small, and fast, and 2) doesn't piss me off. At this point (Yes, even in its beta stage) that browser is Mozilla.
As a web developer, I will try to make my pages appear on as many browsers as I can (including lynx et al). Even with the market share issue, this still means DE FACTO STANDARDS: the products that 'innovate' (IE) ALSO support the industry standards, to a degree. What I do is pick the lowest common denominator of the standards that all of my target browsers support, and design with that: you'd be surprised at how nice you can get a page looking while keeping functionality. If you absolutely need some of the extended functionality, make it an option, and allow ways around it for everyone else.
I don't mind what Microsoft is doing with IE; this is the way we get new standards introduced in the first place (I just won't use them when I make my web pages). The sorry thing about IE is that they made all of these useless innovations, and still neglected to complete some basic standards support, which they claim they have already anyway.
You can get those for Windows.
Yeah, but have you tried them? The DOS/Windows versions are just ports -- the native linux/Unix applications are a lot nicer.
As for enlightenment, well, maybe the newer versions are better, but the last time I tried it was RedHat 6.0 and enlightenment was a buggy piece of crap.
It's not buggy for me... just a bit slow. Could be the theme I'm using, but it might run a little faster. However, it does not crash or produce visual artifacts at all; it looks stunning.
But even so, you can clearly find a feature here or a feature there that you might like better. But on balance, any desktop on Linux is light years away from Windows' GUI. You mention drag and drop, but how about cut/paste? I can copy cells out of Excel, and paste it into Frontpage, and it will convert to an HTML table automatically. Let's not even get into OLE functionality.
You missed the point. bash/emacs/vi are better than their Windows equivalents. They are not user-friendly in the sense we're using the term here. What I was saying was that all current GUIs -- even that of Microsoft Windows -- are not as good as they can be. I don't remember the URL, but there is a site dedicated to pointing out UI design flaws, and they have many, many systems listed there, including Windows, Linux, Mac, etc. My proposition was to get a forum open so that we can collectively make a GUI that is good, and open-source, so we can take any criticisms and fix them.
Most coders don't consider UI when they write their programs; the people who do are seperate, and paid for what they do; it's not an enviable task. But it is an important one.
By the way, there is OLE within some Linux applications like StarOffice, and there will be more in the upcoming versions of e.g. KDE, so we'll see how things improve by then.
> for me one significant end-user application that
> is clearly superior than the equivalent in
> Windows. There simply isn't one.
enlightenment? (customizability, as opposed to next to none) -- especially in devel versions
emacs/vi -- they really are *everything*, and customizeable.
In fact, when you get down to it, almost any powerful command-line, network-related, techie, whatever application that you can imagine. The only ones that I can think of that fail this test are apps that try to copy the Windows interface and functionality.
Not that I'm saying these programs are user-friendly; they do have a steep learning curve. However, the Windows UI is not perfect, nor is that of MacOS. I dare you to come up with a GUI system that is perfectly intuitive for every end-user and has succeeded on the desktop based solely on that.
What I'd like to see is to have some sort of open-content conference for UI. Have all the experienced UI designers, all the app programmers, the XFree86 designers, etc. come together and hammer out a rigid set of standards for a good user interface. This might include toolkits, window managers, configuration tools, integrated applications and functionality, etc. The implementation details wouldn't matter, but the fundamentals would. This would have the effect of letting competing products compete, and yet still have a solid paradigm for the interface of a GUI.
We're getting there with stuff like the drag 'n' drop protocol, GNOME/KDE cooperation, etc. but they are all far from perfect. For linux to become friendlier to the masses, we need a standard, open, user-friendly GUI.
XFree86 3.9.x and 4.0 will support this. It is a module that scans the monitor hardware and uses the modeline info returned. Only some drivers support it for now though. See http://www.xfree86.org/snaps hots/3.9.16/RELNOTES1.html for details...
Do you have the 320x200 (or whatever) mode defined in XF86Config? Cause I don't and whatever I do I can't get it working fullscreen... even MESA_GLX_FX="fullscreen" doesn't work...