The music industry may be able to make some money off ring tones that are distributed commercially. However, I seriously doubt that they can prevent you from programming whatever ring tones you like into your phone. And many phones now have digital audio recording of ring tones, so, at least technically, you can simply record whatever ring tone you like from whatever source you like, including another phone.
"Ownership" is a legal concept, "greediness" is not. Most people who are greedy do, in fact, own everything legally. Therefore, the music industry's use of the tunes they own can still be greedy. Uncle Scrooge was greedy, but presumably not usually a crook. And greedy behavior is sometimes followed by outlawing formerly legal behavior; loan sharking, for example, is greedy behavior that is now illegal. You see, it's we, the people, who ultimately decide where the boundaries of ownership are, and greediness is one factor we consider in those decisions. Is that simple enough for you to understand or do we need to draw you a map?
I have yet to see anybody identify Microsoft patents that are essential to ECMA C#, CLR, CLI, or.NET implementations. The one or two patents Microsoft likes to parade around are general patents pertaining to distributed systems. Even if they were to hold up in court, they would have no specific effect on C# implementations. And, given when ECMA C# was published, there can't be that much hidden in the pipeline. Furthermore, if, by some obscure legal twist they did threaten Mono, they'd also threaten every Java implementation in existence. An additional protection against patent issues with C#/CLR/CLI is that Microsoft was required to disclose patents that affect the implementability of the standard as part of the standardization process. And not only was Microsoft required to make such declarations as part of the standardization effort, so was every other ECMA member (which, I believe, includes Sun).
Sun's patents are much more worrisome as far as I'm concerned. For example, patent number 6,477,702, held by Sun, would seem to be infringed by any conforming Java implementation. And Sun has pulled out of every and any process that would have required them to make a declaration or commitment on patent and IP issues related to Java. Furthermore, while Sun PR likes to talk a lot about openness, I have yet to see a legally binding declaration by Sun that would guarantee that third party implementations of Java may use Sun's patents.
I don't trust Microsoft any further than I can throw the entire stack of printed MSDN documentation (which is to say, I don't trust them at all). But, all things considered, I think the risk of patent infringment claims from Microsoft over Mono are very slim indeed. All that hot air from Microsoft CEOs and Microsoft PR folks doesn't change that. Sun, on the other hand, holds known patents that could create real problems for any non-Sun Java implementation.
If you are very worried about patent problems, there is a very easy solution: don't use either Mono or Java--there are plenty of other languages a round, many of them better. If you are slightly worried about patent problems, then Mono looks like a safer choice to me than Java. And probably, you don't really have to worry about patents with either of them.
Much of the Windows UI was actually not originally created by Microsoft--it was copied from various other sources, including previous UNIX toolkits.
Small percent of engineers worked on Unices 15 years. Virtually noone used any computer at home.
I'm sorry, but I fail to see the relevance of your point. Microsoft did hire developers from other companies liberally, developers who were familiar with GUI work at IBM, PARC, OSF, and other places. That's one of the reasons why Windows and Linux look alike: they copied from the same sources, in addition to Linux copying from Windows.
Speech recognition
CMU Sphinx and a couple of others.
Text-to-Speech
Edinburgh Festival and a couple of others.
handwriting recognition (especially on touch screens
Handhelds.org has several pen input methods. It's unclear that on-line connected handwriting recognition is a good idea, but it can be built on top of one of the speech recognition systems without too much work (most of the code is very similar).
taxonomy based (aka object oriented) document storage (or file systems)
There are numerous choices for that, from object-relational databases like PostgreSQL to knowledge representation systems like FramerD.
Linux Desktop must be innovative to get more desktop share
There are lots of innovative and different Linux desktops out there already. It's just that there is also a lot of people who want a Windows-like desktop on top of Linux. The beauty is that Linux supports all of them.
This is also a pretty good description of the current set of Linux interfaces.
It's true of some Linux interfaces--those that try to imitate the Windows paradigm closely--not of others.
If someone tries to move to Linux they not only get a confusing interface, but it's one they don't
understand.
Depends. Some Linux installations are much easier to use than Windows--those are the ones that are the most different from Windows. Also, it's much easier to support Linux remotely and Linux requires less system management, so shortcomings in its administrative tools matter less.
But, as I was saying: to the degree that some Linux desktop efforts try to emulate a PC/Mac paradigm, they would be better off emulating the Mac than the PC.
Do you actually mean to tell me it is easier to install software on Linux than on OS X?
Most of the time, you don't have to install anything on Linux because it comes with a huge amount of software as part of the system. When you do need to install something, yes, it's easier than on OS X.
Also, it DOES NOT get any easier than installing on OS X. Usually it is a drag of a folder or a click of an icon.
Yes, and that's terribly confusing to many users. Where should you drag it? How do you find it when you have dragged it there? How do you update it? How do you get rid of it? What depends on it?
Can you tell me which "button" you press to install the latest version of perl?
Sure: pop up whichever package manager you like and click on "Perl". "Synaptic" or "webmin" are easy to use. What is particularly nice when supporting Linux is that you can tell people "just type 'apt-get install something'" over the phone--much easier than walking people through a download and install.
OS X software installation and management is primitive and dysfunctional in comparison.
They probably would if you installed Fink [sourceforge.net]. There are dozens of Gnome and KDE games available as Fink packages, and others can be built easily.
Fink is a god-awful mess, not suitable for mainstream users. Neither is X11 on MacOS, which is very poorly integrated with the rest of the Mac desktop.
Once again I have no idea what you're talking about. To install: drag app to "Applications" folder. To uninstall: drag app to trash.
Yes, for nerds like you and me, that's easy. For regular users, it isn't. Trust me: I deal with regular users, you apparently don't.
How on earth is the Mac "built around that model"? That makes no sense at all considering Apple gives away their high-quality IDE and actively supports open source.
Again, spoken like a nerd. Apple's open source support for IDEs and other tools is not relevant to end users. The applications that make the Mac platform attractive to end users are sold, require installation, and don't come with the OS.
The linux community continues to try and bring people over, but they only way they seem to know how to do that is by emulating Microsoft interfaces.
Much of the Windows UI was actually not originally created by Microsoft--it was copied from various other sources, including previous UNIX toolkits. And the Linux toolkits have copied significantly from older UNIX toolkits as well.
So, much of the similarity between Linux and Windows may simply be because they have common ancestors, not because Linux is copying from Windows.
Still, I agree with the general sentiment: Linux developers should probably consider Windows as a negative example and as a warning to them and should come up with new ways of doing things.
Whether applications look exactly the same as they do on Windows XP or not doesn't matter: even on Windows XP, there are many different looks and themes that people can choose.
What matters is whether applications are logically designed, easy to understand, and kept simple. Windows XP is not the system to emulate: its user interface is way too messy and too complex, it has too many unnecessary and confusing options, and its interaction is illogical.
While it is far from perfect, the Macintosh OS X desktop is a better model to copy. Apple has done a much better job streamlining system configuration and built-in applications. But, again, it's the logic behind the UI, not the graphical elements themselves that need to be copied. In fact, some misfeatures of the OS X UI that are present for backwards compatibility with previous versions of Mac OS should probably not be copied.
In short, no. There are many ways of constructing forward error correcting codes. Galois fields just happen to be one convenient way that generates codes that are useful for very specific channel models. And those channel models don't even apply for genetic information.
No, that's false. You can build many kinds of error correcting codes. The ones based on prime fields just happen to have some properties that some people find algorithmically or theoretically appealing.
Error correction in genetic codes is very ad-hoc because errors, codes, and correction are all done by molecules with idiosyncratic properties.
Four bases may be a good engineering compromise: they give you more "storage density" than two bases, but are less susceptible to mismatches and require less machinery to maintain than six or more.
Pentadactyly (having five fingers) probably evolved somewhere in our early amphibian ancestors, for reasons that have nothing to do with us. However, it seems to work reasonably well for many animals, and those that have different requirements (hooves, wings, etc.) have modified how fingers are used.
In general, biology probably makes many of the same engineering compromises we see in man-made systems. And as in man-made systems, biology often has to live with something that was a good idea long ago, designed under constraints that no longer apply. And often, designs are kept because they basically work and aren't causing any major problems.
OpenGL has lots of overhead, it's not supported on many devices/screens, it doesn't address many important functions like window management and internationalization, and it doesn't easily give you as much control at the pixel level as 2D graphics APIs designed for user interfaces. Probably as a consequence, I have yet to see an OpenGL-based widget set with the same functionality and quality as wxWindows or even FLTK.
If your needs are modest, you might want to use FLTK. It's simple and you can link with it statically. If you need a full-blown widget set, wxWindows is a good choice. Both of them let you embed OpenGL windows inside the GUI. They are not implemented using OpenGL as the graphics layer, however: they use whatever native GUI there is and embedd OpenGL windows.
I would recommend against using widget sets with OpenGL as a graphics layer unless you really need it: OpenGL is less than ideal for that purpose.
Ball chairs are an example of good design, but their style is still deeply rooted in the 1970's. I guess it's a matter of taste, but the colors, materials, and styles of the 1970's just don't do it for me.
Note that most of the other examples you give are examples of good design rooted in the 1950's. Now, that I can live with.
Please. Until you can waltz into the average computer store and have a decent selection of Linux games and applications sitting on the shelves, Linux will never be a mainstream desktop OS that Joe Sixpack wants to use.
The average person does not want to download and compile software written by a bunch of dudes they never heard of, they want to slip in a nice installer CD with a name like "Adobe" on it.
Linux does one better: you buy it, and it comes with all the applications most people would ever want to use preinstalled. If they want something that didn't ship with the machine, installing it is usually no harder than clicking on a button.
The idea of paying lots of money for boxed software at a computer store is so outdated. And the fact that Macintosh is built around that model is going to hurt it badly.
This isn't theoretical: trying to get some decent card games and puzzles for my parents' OS X machine has been a major chore. Most stuff only runs in classic. The selection of OS X native software is pretty limited, and it's not cheap either. My parents were asking me: why can't we just run all those Linux games? Well, sorry, they don't run on OS X. And even after you track stuff down, installing it on OS X is confusing for the average user: drag this here, drag that there, click here to let me do this, click there to let me do that, etc. Many of the games I ended up with giving them for OS X were ports of free Linux games.
The for-pay, boxed software model that Macintosh is built around is inherently more cumbersome than the Linux model, even if you are willing to get nickled and dimed for every tiny application.
but for the average, lazy consumer who wants a computer but decides they don't want Microsoft telling them what they can and can't run on it, a system running OS X is the only true alternative.
Microsoft has lots of influence on Apple, and Apple won't be able to get out of DRM: they are too small and too economically vulnerable.
So did I. Linux probably already has many more total users than OS X (in addition to number of installations, many Windows and OS X users log into Linux systems remotely), although if you take OS 9 into account, it may be a toss-up.
And even IDC thinks Linux will surpass Macintosh on the desktop in 2003 or 2004 (here).
perhaps less impressive than it sounds
on
1.5 TB DVD by 2010
·
· Score: 2
At current growth rates, I suspect that harddisks will be surpassing that capacity quickly at around that time. So, we'll probably still have disks that are much bigger than DVDs. And that means that 1.5TB DVDs will probably not bee too different from the way DVDs are today: a slighty too small and fairly slow medium for storing data for a few years (since they are not guaranteed to last much longer).
You can probably port to Linux fairly easily using GNU Step. However, you are probably better off rewriting the GUI using some Linux-native toolkit like Gtk+: Macintosh applications tend to behave in ways that appear inconsistent and cumbersome to Linux users.
Actually for what it's used (GUI programs), Objective-C does a far better work of it than the overengineered nightmare that is C++ (and I LIKE C++).
In the mid-80's, Objective-C was far better than C++ for GUI programs. Today, I think it's a toss-up. Oh, C++ is still cumbersome for GUI programs in all the same ways it used to be cumbersome, but it has improved greatly in other areas: namespaces, exceptions, smart pointers, and templates really help with making C++ programs more correct and robust. Objective-C could have evolved further, too, but it's still the same language it was in the 1980's.
The real answer to Objective-C these days are Java and C#: they have all the dynamic features of Objective-C, but they are also safe and use syntax familiar to 99% of the commercial programmers.
That's not quite right. There is an X11 server that runs on OS X, a port of XFree86. But it works by doing drawing off-screen in software and then blitting the result into OS X windows. While it's usable, it's not what I would consider a high quality implementation. It's also too confusing to install and use for regular Mac users.
OS X could support X11 natively so that the difference between an X11 application and a Cocoa application would appear to be no larger than the difference between a Carbon or Classic application and a Cocoa application, but Apple has chosen not to be that compatible.
but it would be nice to be able to make, say, the Gimp to be a true Mac app.
That would mean making an OS X backend for Gtk+. That may well happen (there is a Win32 backend). It's really a question of resources and volunteers. Do you volunteer?
All you need to know is wxWindows. The wxWindows library is quite similar in terms of design and functionality to Win32, and once you have ported to it, you can compile your application for Win32, Linux/X11, OS X, and several other platforms.
The music industry may be able to make some money off ring tones that are distributed commercially. However, I seriously doubt that they can prevent you from programming whatever ring tones you like into your phone. And many phones now have digital audio recording of ring tones, so, at least technically, you can simply record whatever ring tone you like from whatever source you like, including another phone.
"Ownership" is a legal concept, "greediness" is not. Most people who are greedy do, in fact, own everything legally. Therefore, the music industry's use of the tunes they own can still be greedy. Uncle Scrooge was greedy, but presumably not usually a crook. And greedy behavior is sometimes followed by outlawing formerly legal behavior; loan sharking, for example, is greedy behavior that is now illegal. You see, it's we, the people, who ultimately decide where the boundaries of ownership are, and greediness is one factor we consider in those decisions. Is that simple enough for you to understand or do we need to draw you a map?
Ogg support would mean out-of-the-box import and export support in Ogg format. And that is still missing from iTunes as far as I can tell.
Sun's patents are much more worrisome as far as I'm concerned. For example, patent number 6,477,702, held by Sun, would seem to be infringed by any conforming Java implementation. And Sun has pulled out of every and any process that would have required them to make a declaration or commitment on patent and IP issues related to Java. Furthermore, while Sun PR likes to talk a lot about openness, I have yet to see a legally binding declaration by Sun that would guarantee that third party implementations of Java may use Sun's patents.
I don't trust Microsoft any further than I can throw the entire stack of printed MSDN documentation (which is to say, I don't trust them at all). But, all things considered, I think the risk of patent infringment claims from Microsoft over Mono are very slim indeed. All that hot air from Microsoft CEOs and Microsoft PR folks doesn't change that. Sun, on the other hand, holds known patents that could create real problems for any non-Sun Java implementation.
If you are very worried about patent problems, there is a very easy solution: don't use either Mono or Java--there are plenty of other languages a round, many of them better. If you are slightly worried about patent problems, then Mono looks like a safer choice to me than Java. And probably, you don't really have to worry about patents with either of them.
I'm sorry, but I fail to see the relevance of your point. Microsoft did hire developers from other companies liberally, developers who were familiar with GUI work at IBM, PARC, OSF, and other places. That's one of the reasons why Windows and Linux look alike: they copied from the same sources, in addition to Linux copying from Windows.
Speech recognition
CMU Sphinx and a couple of others.
Text-to-Speech
Edinburgh Festival and a couple of others.
handwriting recognition (especially on touch screens
Handhelds.org has several pen input methods. It's unclear that on-line connected handwriting recognition is a good idea, but it can be built on top of one of the speech recognition systems without too much work (most of the code is very similar).
taxonomy based (aka object oriented) document storage (or file systems)
There are numerous choices for that, from object-relational databases like PostgreSQL to knowledge representation systems like FramerD.
Linux Desktop must be innovative to get more desktop share
There are lots of innovative and different Linux desktops out there already. It's just that there is also a lot of people who want a Windows-like desktop on top of Linux. The beauty is that Linux supports all of them.
It's true of some Linux interfaces--those that try to imitate the Windows paradigm closely--not of others.
If someone tries to move to Linux they not only get a confusing interface, but it's one they don't understand.
Depends. Some Linux installations are much easier to use than Windows--those are the ones that are the most different from Windows. Also, it's much easier to support Linux remotely and Linux requires less system management, so shortcomings in its administrative tools matter less.
But, as I was saying: to the degree that some Linux desktop efforts try to emulate a PC/Mac paradigm, they would be better off emulating the Mac than the PC.
Most of the time, you don't have to install anything on Linux because it comes with a huge amount of software as part of the system. When you do need to install something, yes, it's easier than on OS X.
Also, it DOES NOT get any easier than installing on OS X. Usually it is a drag of a folder or a click of an icon.
Yes, and that's terribly confusing to many users. Where should you drag it? How do you find it when you have dragged it there? How do you update it? How do you get rid of it? What depends on it?
Can you tell me which "button" you press to install the latest version of perl?
Sure: pop up whichever package manager you like and click on "Perl". "Synaptic" or "webmin" are easy to use. What is particularly nice when supporting Linux is that you can tell people "just type 'apt-get install something'" over the phone--much easier than walking people through a download and install.
OS X software installation and management is primitive and dysfunctional in comparison.
Fink is a god-awful mess, not suitable for mainstream users. Neither is X11 on MacOS, which is very poorly integrated with the rest of the Mac desktop.
Once again I have no idea what you're talking about. To install: drag app to "Applications" folder. To uninstall: drag app to trash.
Yes, for nerds like you and me, that's easy. For regular users, it isn't. Trust me: I deal with regular users, you apparently don't.
How on earth is the Mac "built around that model"? That makes no sense at all considering Apple gives away their high-quality IDE and actively supports open source.
Again, spoken like a nerd. Apple's open source support for IDEs and other tools is not relevant to end users. The applications that make the Mac platform attractive to end users are sold, require installation, and don't come with the OS.
Much of the Windows UI was actually not originally created by Microsoft--it was copied from various other sources, including previous UNIX toolkits. And the Linux toolkits have copied significantly from older UNIX toolkits as well.
So, much of the similarity between Linux and Windows may simply be because they have common ancestors, not because Linux is copying from Windows.
Still, I agree with the general sentiment: Linux developers should probably consider Windows as a negative example and as a warning to them and should come up with new ways of doing things.
What matters is whether applications are logically designed, easy to understand, and kept simple. Windows XP is not the system to emulate: its user interface is way too messy and too complex, it has too many unnecessary and confusing options, and its interaction is illogical.
While it is far from perfect, the Macintosh OS X desktop is a better model to copy. Apple has done a much better job streamlining system configuration and built-in applications. But, again, it's the logic behind the UI, not the graphical elements themselves that need to be copied. In fact, some misfeatures of the OS X UI that are present for backwards compatibility with previous versions of Mac OS should probably not be copied.
In short, no. There are many ways of constructing forward error correcting codes. Galois fields just happen to be one convenient way that generates codes that are useful for very specific channel models. And those channel models don't even apply for genetic information.
Error correction in genetic codes is very ad-hoc because errors, codes, and correction are all done by molecules with idiosyncratic properties.
Pentadactyly (having five fingers) probably evolved somewhere in our early amphibian ancestors, for reasons that have nothing to do with us. However, it seems to work reasonably well for many animals, and those that have different requirements (hooves, wings, etc.) have modified how fingers are used.
In general, biology probably makes many of the same engineering compromises we see in man-made systems. And as in man-made systems, biology often has to live with something that was a good idea long ago, designed under constraints that no longer apply. And often, designs are kept because they basically work and aren't causing any major problems.
OpenGL has lots of overhead, it's not supported on many devices/screens, it doesn't address many important functions like window management and internationalization, and it doesn't easily give you as much control at the pixel level as 2D graphics APIs designed for user interfaces. Probably as a consequence, I have yet to see an OpenGL-based widget set with the same functionality and quality as wxWindows or even FLTK.
I would recommend against using widget sets with OpenGL as a graphics layer unless you really need it: OpenGL is less than ideal for that purpose.
Note that most of the other examples you give are examples of good design rooted in the 1950's. Now, that I can live with.
Linux does one better: you buy it, and it comes with all the applications most people would ever want to use preinstalled. If they want something that didn't ship with the machine, installing it is usually no harder than clicking on a button.
The idea of paying lots of money for boxed software at a computer store is so outdated. And the fact that Macintosh is built around that model is going to hurt it badly.
This isn't theoretical: trying to get some decent card games and puzzles for my parents' OS X machine has been a major chore. Most stuff only runs in classic. The selection of OS X native software is pretty limited, and it's not cheap either. My parents were asking me: why can't we just run all those Linux games? Well, sorry, they don't run on OS X. And even after you track stuff down, installing it on OS X is confusing for the average user: drag this here, drag that there, click here to let me do this, click there to let me do that, etc. Many of the games I ended up with giving them for OS X were ports of free Linux games.
The for-pay, boxed software model that Macintosh is built around is inherently more cumbersome than the Linux model, even if you are willing to get nickled and dimed for every tiny application.
but for the average, lazy consumer who wants a computer but decides they don't want Microsoft telling them what they can and can't run on it, a system running OS X is the only true alternative.
Microsoft has lots of influence on Apple, and Apple won't be able to get out of DRM: they are too small and too economically vulnerable.
And even IDC thinks Linux will surpass Macintosh on the desktop in 2003 or 2004 (here).
At current growth rates, I suspect that harddisks will be surpassing that capacity quickly at around that time. So, we'll probably still have disks that are much bigger than DVDs. And that means that 1.5TB DVDs will probably not bee too different from the way DVDs are today: a slighty too small and fairly slow medium for storing data for a few years (since they are not guaranteed to last much longer).
You mean Linux?
You can probably port to Linux fairly easily using GNU Step. However, you are probably better off rewriting the GUI using some Linux-native toolkit like Gtk+: Macintosh applications tend to behave in ways that appear inconsistent and cumbersome to Linux users.
In the mid-80's, Objective-C was far better than C++ for GUI programs. Today, I think it's a toss-up. Oh, C++ is still cumbersome for GUI programs in all the same ways it used to be cumbersome, but it has improved greatly in other areas: namespaces, exceptions, smart pointers, and templates really help with making C++ programs more correct and robust. Objective-C could have evolved further, too, but it's still the same language it was in the 1980's.
The real answer to Objective-C these days are Java and C#: they have all the dynamic features of Objective-C, but they are also safe and use syntax familiar to 99% of the commercial programmers.
That's not quite right. There is an X11 server that runs on OS X, a port of XFree86. But it works by doing drawing off-screen in software and then blitting the result into OS X windows. While it's usable, it's not what I would consider a high quality implementation. It's also too confusing to install and use for regular Mac users.
OS X could support X11 natively so that the difference between an X11 application and a Cocoa application would appear to be no larger than the difference between a Carbon or Classic application and a Cocoa application, but Apple has chosen not to be that compatible.
but it would be nice to be able to make, say, the Gimp to be a true Mac app.
That would mean making an OS X backend for Gtk+. That may well happen (there is a Win32 backend). It's really a question of resources and volunteers. Do you volunteer?
All you need to know is wxWindows. The wxWindows library is quite similar in terms of design and functionality to Win32, and once you have ported to it, you can compile your application for Win32, Linux/X11, OS X, and several other platforms.
See here for lots of other plasticky 1960's round designs. Here is the sphere radio with 8-track.