The battery life is important on these things. A higher-powered CPU would increase the price and decrease the battery life to a point where it's not even worth talking about.
Note that none of the current tablet PCs are based on the Centrino technology, so there are possible improvements there.
My tablet PC -- which has become my primary PC -- is just over three pounds with the keyboard attached. (I have more in-depth comments on a blog article.)
I paid a premium of CDN $1,000 for it -- about the same premium I would have paid for an ultraportable laptop (which is what I wanted). The only two things missing are a CD-ROM (and Daemon-Tools takes care of that) and an IR connection (not that big of a loss).
I use it mostly as a laptop, but it sees its fair share of use as a tablet, too.
I live in a relatively shady area, but the humidity gets pretty bad. Instead of buying an airconditioner, we bought a dehumidifier to work with our fans. It works beautifully.
Ruby
The trouble with Ruby is that it makes metaclass hacking just easy enough to be irresistable, but just awkward and limited enough that you inevitably start wondering if maybe you shouldn't just bite the bullet and learn Lisp and CLOS.
I'm not quite sure what you mean here. In an RSS library that I'm working on, I did some metaclass hacking that was easy and understandable.
Also it needs namespaces.
It has namespaces, in spades. Since both modules and classes may be nested, you get namespaces for free. I'm writing a PDF library as PDF::. I have PDF::Type::String as a module/module/class, but it could have just as easily been class/module/class or anything else.
-austin
Ruby, to me, is far more intuitive. I mentioned as well that I find that Python's stupid whitespace scoping doesn't let me work *my* way, which is to place certain temporary debugging lines flush left so that I can quickly find them to remove them when I've tracked down a bug. That idiocy (not letting me work *my* way) is exactly why I won't use Python.
Ruby 1.8 is supposed to be released Real Soon Now, and it includes a number of significant changes (see Programming Ruby Two, a Wiki page about a hopeful second edition of Programming Ruby covering 1.8.)
-austin
Whitespace matters... which means that to me that Python doesn't matter to me.
A language is no good if it forces me to format things in its style without letting me work in my style.
I understand Python just fine, I just don't like it (and, to be quite honest, it isn't OO enough for me; having to pass self in all the time feels entirely too much like Perl, and so does the fact that some things are functions and others are methods).
Parent is the idiot who can't read the review; this is most certainly about the Mira Smart Display, not the Tablet PC. IMO, the Mira has always been stupid because of MS's stupid multi-user licensing policies. The Tablet PC is a much better idea, if not as skillfully executed as it could be (it's still pretty damned good, though).
(From the review: Whatever the thinking behind Microsoft's Smart Display technology -- a battery-powered notebook screen without a notebook, linked to a PC by wireless networking and taking stylus input -- it doesn't seem to have included what users actually want. Emphasis added.)
Yeah. I've recently taken to having my email clients notify me of new email no more than once an hour. (I haven't yet added any heuristics to inform me sooner if there are particular keywords combined with a message of "high importance" per the sender's definition.)
I just have two older computers to do this to, but one of them has a 1Gb hard disk and 24Mb RAM (I can't get the other to boot, yet, but it has no more than a 5Gb hard disk). Neither can boot from CD.
I'm trying to get these set up with educational software (they've been donated to two different local schools that I have connections with), but haven't found a distribution that I like with educational software that doesn't want at least a 4Gb hard disk.
Only one of the two computers has a network card, so network-based installs are completely out of the question.
Well, that would be the hard way to do it. I suppose the easy way would be to take two minutes and write a small program to scour through the DB looking for the problems, but my experience with Objectstore and other OODBMSs would lead me to ask a different question -- How did the "data-related problems" get created? Write your classes with strong invariants and tightly encapsulate your data and you won't really have many such issues.
In other words -- tightly tie your data to your application and make it nearly impossible to use for any other purpose. Because this is the Right Way To Do It.
Reporting tools don't exist for OODB. Actually this isn't really true, but the point is still worth addressing because the available reporting tools aren't very good. This isn't the fault of the tools, it's just a fact that it's impossible to write a general-purpose tool that can intelligently traverse arbitrarily-structured data.
Odd. Crystal seems to do okay for RDBMS systems, which are arbitrarily structured data.
Unless you create indexes for those queries, of course. Ad-hoc querying is a real weakness of OODBMSs. OTOH, queries that are planned for and for which good indexes exist are orders of magnitude FASTER on an OODB! Like, three orders of magnitude faster than an RDBMS.
Vendor performance numbers are bullshit. I don't care if they're from a company that I like or don't like, they're all made up. That's beside the point because you just said that OODBMS systems are doomed because they can't effectively support ad hoc queries. Reality check: while the needs and purposes of some data systems are well known some of the time, other needs and purposes will arise as time goes on, and sometimes it takes ad hoc queries to reveal those purposes.
* Ease of initial development. No more figuring out how to map between objects and tables.
False advantage. Decent object persistence layers take most (99%) of the work out of object/table mapping.
* Code can be more object-oriented. With an RDBMS, "tableitis" tends to infect your classes.
Completely clueless statement. It is the responsibility of the object persistence layer to map your program's logical layer (e.g., the object model) to the DBMS's physical layer (e.g., the database) using the database's logical layer (e.g., the data model). People who prefer OODBMs tend not to understand data modeling in any way -- and are generally bad object modelers, too. A good data model can support many object models as appropriate to the needs of the program.
* Performance! Particularly with Objectstore/C++, the facts that (a) database representation is almost identical to in-memory representation and (b) client-side caching means that once an object has been retrieved from the persistent store there is *zero* overhead -- using a persistent object costs *exactly* the same as using a purely in-memory object -- mean that a well-structured Objectstore database is hugely faster than any RDBMS.
Again, a false "advantage." Especially (b), because client-side caching can be implemented for any client, not just clients of OODBM systems.
* Ongoing development requires schema migrations and those can be difficult. Mind you they're not easy for an RDBMS situation, either, since you have to reswizzle all your object-relational mapping stuff.
Easier than you might think, and if you do code generation (you do use code generation, don't you?), you can update the database definition, the object/relational mapping, and the object definitions all at once.
It may not be well known, but Ruby is ten years old today (24 February 2003). Perl is 16 years old (1987). I'm not sure how old Python is. Unicode 1.0 was fully released in June 1992, five years after the projects started (mostly at Apple, apparently).
Except for a few "gotchas" (which are, per Matz, part of what will be cleaned up on the way to Ruby 2.0), Ruby supports a lot of Unicode (UTF-8 at least) already, as well as other multibyte character systems (Shift-JIS and EUC, primarily, as it was originalyl written in Japan and is still primarily maintained there).
The point is that Unicode is still immature (4.0 is on the way, but how many systems yet support 3.2?). I suspect that Ruby 2.0 will be fully Unicode compliant. (Even with Unicode compliance, of course, one still has to write programs to be compliant; language Unicode compliance is merely support.)
Try Ruby, then. Ruby is dynamically typed, but has strong (but not static) typing available (as an extension). Ruby is very modular and a joy to use.
In particular, look at http://www.rubygarden.com/ruby?RealWorldRuby for examples of people using Ruby in the real world. In addition, Amazon clothing is apparently written in Ruby by the Pragmatic Programmers (www.pragmaticprogrammers.com).
The other REALLY nice thing about Ruby is that its extension capabilities are apparently a joy to work with, so time critical sections can be rewritten in C (C++ with some work) or can extend existing C libraries without much difficulty.
It's simply not possible to take EVERYTHING into consideration at design stage, especially if there's only one person responsible for the design. By exposing programmers to the big picture -- but not giving them responsibility over anything except the modules for which they are assigned -- you gain the assistance of all of the programmers in your organization in vetting the design.
Yes, abstraction is necessary. That still doesn't mean that you can't have an abstracted view of the big picture. The impression I got from the story was that a lot of people are being told to code something without any concept of the big picture itself. When developers develop too much code in isolation, there tend to be mismatches, no matter how good the designer and the design team are.
It's not just management. I'm on a contract right now where I've advised that the client do things in particular ways, and the management itself is reasonably amenable to the concept, but the programmer to whom I report is, well, set in her ways.
Developers should know what the big picture is so that they can have a sense of direction in the development process. They don't need to worry abuot it, perhaps, but they should know what it is nonetheless.
> Plus only about 10% of MSO features are utilized by the average user anyway.
The only problem with that figure, is that different sets of "average users" use different 10% coverage. BTW, as far as I'm concerned, OOo is technically good enough -- except in its accuracy of MSWord output (it doesn't keep or properly convert ALL of the formatting that a "native" MSWord document would, requiring some tweaking).
This is silly. Period. Would you say that "Snow White and the Seven Dwarves" is not appropriate children's fare? When I was growing up, that was the scariest movie I saw as a child (in re-release). It dealt with similar problems. What about Cinderella? After all, Cinderella deals with the effective slavery of the main character.
Indeed, we can look to the fundamentalists own book to see that they're slavering hypocrites, because there are parts of the Bible which are "unsuitable for children" because they are so violent.
I haven't seen the movie yet, but if I remember correctly, the "blood" for writing on the walls came *from* the walls (the words formed automatically). Does this differ from the Biblical Writing on the Wall in any way that really matters? Petrification is well-covered in Greek mythology (and is considered age-appropriate for the target market of this film). The deadliness of Nightshade (the plant of which you refer) is a well-known medieval legend.
But the biggest problem I have with what you've posted is the suggestion that Harry Potter's handling of the prejudice against Muggles and "mudbloods" is bad. Sesame Street deals with very similar topics (note the introduction of the Muppet with AIDS in South Africa and the firestorm of controversy there), but what Sesame Street doesn't do is *confront* the reality of prejudice; it *displays* tolerance instead. It tries to short-circuit the cycle of prejudice by influencing children early on (much to the horror of fundies of any stripe). Harry Potter, on the other hand, has acknowledged that prejudice is real and is confronting it head-on by making it so that the bad guys (those of Slytherin) are both generally unsavoury characters and are the ones who demonstrate such prejudices.
>> connect to source safe, upload code to the servers, >I know nothing about sourcesafe, can't help you here.
SourceSafe is the "CVS" for Visual Studio. Except, like, it's actually usable for serious projects, unlike CVS.
-austin, hates CVS with a passion, can't find anything that he does like that's free or Free or just open source and works on Windows and Linux equally...
this discussion turned out: "Use Windows, or use Linux". For most people Linux just isn't ready as a desktop OS, even if the apps are there.
This is true. I use my Linux "desktop" box at home as a Samba fileserver and a test environment for my web-based development -- and even that isn't getting much use as a fileserver because the better CD burner is on my Windows XP Pro desktop (both laptops are also Windows XP Pro).
Of all of the machines I have, the Linux box is the hardest to deal with (although installing SuSE fixed a lot of that, and some of it has to do with
the security restrictions I've put on the Linux box; I tried Debian on it but removed it after four hours of trying to install the bloody thing and not getting a damned thing working).
I find that I just don't use Linux desktop applications -- they're barely usable -- but I still want the graphical configuration because I don't *like* editing configuration files directly in 90% of cases.
But there's NO EXCUSE not to use a Mac. And, no, they're not as expensive as everyone thinks. You can get a really fast iBook or eMac for $999. The apps, are there, stability, UNIX, ease of use and power.
The apps *aren't* there, actually. Among other things, I'm a PalmOS software developer. The tools that I've chosen are primarily available and supported on Windows. They might work under WINE, but I don't have the patience to try. (I also play a number of games, and those are Windows only.)
My new favourite language, Ruby, isn't as solidly supported on Mac OS X as it is on Windows (and it's not as solid on Windows as it is on Unices, but it's closer); this is in part because of the act that the windowing isn't X and it doesn't like competing graphical toolkits...
Of course, to me there is one HUGE reason not to get an iMac: they are the ugliest computers out there. They can't just "hide" -- with an integrated display, they MUST sit on the desktop taking up a set amount of space. Once the iMac is eliminated, the iBook and PowerBook are also eliminated because of the bloody single-button-mouse concept. I'm not 100% certain, but I also think that the rest of the Mac line is eliminated because I use a KVM and it isn't using an all-USB keyboard/mouse setup because my old Linux box doesn't support USB mouse/keyboard (and I don't think that it will support a mixture).
To me, there are also other reasons that I prefer not to use Macs: I don't like the single menubar (this may be changed under OS X; I really don't know); I like the taskbar concept in Windows/KDE. There are others, but... I might get a Mac... to replace my Linux box.
It doesn't matter if you can get a Super-Athlon 2.6 Ghz at half the price of a PowerMac if the OS sucks.
Windows XP Pro doesn't suck -- even though the EULA does. I've had *zero* problems with the machines I run (and I run Mozilla and OOo and a lot of non-MS stuff). Also, I prefer laptops at this point. I can get a wider variety of Windows-based laptop formats at this point than I can of any other type. I've got two laptops on the "purchase in the next 12 months" list: a micro-laptop (like the Fujitsu Lifebook or the Sony Picturebook) and another desktop-replacement where I can play the latest games (using the latest ATI or nVidia chip).
My explanation why Windows is so popular, that noone has mentioned so far, is that people pirate software. A lot. It's extremely easy to find all kinds of windows apps/games without paying for them. Why do you think the filesharing apps are so popular? You can get the latest game within an hour and don't pay a dime for it.
I don't have anything pirated on my system. I prefer Windows because it works like I expect it to do, at least in a graphical interface. I like Unix-style boxes for servers because they do excatly what I expect them to do there.
Nope.
The battery life is important on these things. A higher-powered CPU would increase the price and decrease the battery life to a point where it's not even worth talking about.
Note that none of the current tablet PCs are based on the Centrino technology, so there are possible improvements there.
-austin
My tablet PC -- which has become my primary PC -- is just over three pounds with the keyboard attached. (I have more in-depth comments on a blog article.)
I paid a premium of CDN $1,000 for it -- about the same premium I would have paid for an ultraportable laptop (which is what I wanted). The only two things missing are a CD-ROM (and Daemon-Tools takes care of that) and an IR connection (not that big of a loss).
I use it mostly as a laptop, but it sees its fair share of use as a tablet, too.
-austin
I live in a relatively shady area, but the humidity gets pretty bad. Instead of buying an airconditioner, we bought a dehumidifier to work with our fans. It works beautifully.
-austin
-austin
-austin
Java doesn't require that I do:
...) { }
class Foo {
int bar(this,
}
Python does.
Ruby, to me, is far more intuitive. I mentioned as well that I find that Python's stupid whitespace scoping doesn't let me work *my* way, which is to place certain temporary debugging lines flush left so that I can quickly find them to remove them when I've tracked down a bug. That idiocy (not letting me work *my* way) is exactly why I won't use Python.
-austin
Ruby just celebrated its tenth birthday. However, it has only been on the radar in the West for about three or four years.
-austin
Ruby 1.8 is supposed to be released Real Soon Now, and it includes a number of significant changes (see Programming Ruby Two, a Wiki page about a hopeful second edition of Programming Ruby covering 1.8.) -austin
Whitespace matters ... which means that to me that Python doesn't matter to me.
A language is no good if it forces me to format things in its style without letting me work in my style.
I understand Python just fine, I just don't like it (and, to be quite honest, it isn't OO enough for me; having to pass self in all the time feels entirely too much like Perl, and so does the fact that some things are functions and others are methods).
-austin, shameless Ruby advocate, http://www.halostatue.ca/ruby/
(From the review: Whatever the thinking behind Microsoft's Smart Display technology -- a battery-powered notebook screen without a notebook, linked to a PC by wireless networking and taking stylus input -- it doesn't seem to have included what users actually want. Emphasis added.)
-austin
Again ... that's bad? It just means that the current *theory* needs work. And here I thought that the point of science was to actually *seek answers*.
-a
...is an antibody spice that prevents /. editors from posting duplicate stories.
Yeah. I've recently taken to having my email clients notify me of new email no more than once an hour. (I haven't yet added any heuristics to inform me sooner if there are particular keywords combined with a message of "high importance" per the sender's definition.)
I don't feel dominated by email.
-austin
I just have two older computers to do this to, but one of them has a 1Gb hard disk and 24Mb RAM (I can't get the other to boot, yet, but it has no more than a 5Gb hard disk). Neither can boot from CD.
I'm trying to get these set up with educational software (they've been donated to two different local schools that I have connections with), but haven't found a distribution that I like with educational software that doesn't want at least a 4Gb hard disk.
Only one of the two computers has a network card, so network-based installs are completely out of the question.
-austin
Well, that would be the hard way to do it. I suppose the easy way would be to take two minutes and write a small program to scour through the DB looking for the problems, but my experience with Objectstore and other OODBMSs would lead me to ask a different question -- How did the "data-related problems" get created? Write your classes with strong invariants and tightly encapsulate your data and you won't really have many such issues.
In other words -- tightly tie your data to your application and make it nearly impossible to use for any other purpose. Because this is the Right Way To Do It.
Reporting tools don't exist for OODB.
Actually this isn't really true, but the point is still worth addressing because the available reporting tools aren't very good. This isn't the fault of the tools, it's just a fact that it's impossible to write a general-purpose tool that can intelligently traverse arbitrarily-structured data.
Odd. Crystal seems to do okay for RDBMS systems, which are arbitrarily structured data.
Unless you create indexes for those queries, of course. Ad-hoc querying is a real weakness of OODBMSs. OTOH, queries that are planned for and for which good indexes exist are orders of magnitude FASTER on an OODB! Like, three orders of magnitude faster than an RDBMS.
Vendor performance numbers are bullshit. I don't care if they're from a company that I like or don't like, they're all made up. That's beside the point because you just said that OODBMS systems are doomed because they can't effectively support ad hoc queries. Reality check: while the needs and purposes of some data systems are well known some of the time, other needs and purposes will arise as time goes on, and sometimes it takes ad hoc queries to reveal those purposes.
* Ease of initial development. No more figuring out how to map between objects and tables.
False advantage. Decent object persistence layers take most (99%) of the work out of object/table mapping.
* Code can be more object-oriented. With an RDBMS, "tableitis" tends to infect your classes.
Completely clueless statement. It is the responsibility of the object persistence layer to map your program's logical layer (e.g., the object model) to the DBMS's physical layer (e.g., the database) using the database's logical layer (e.g., the data model). People who prefer OODBMs tend not to understand data modeling in any way -- and are generally bad object modelers, too. A good data model can support many object models as appropriate to the needs of the program.
* Performance! Particularly with Objectstore/C++, the facts that (a) database representation is almost identical to in-memory representation and (b) client-side caching means that once an object has been retrieved from the persistent store there is *zero* overhead -- using a persistent object costs *exactly* the same as using a purely in-memory object -- mean that a well-structured Objectstore database is hugely faster than any RDBMS.
Again, a false "advantage." Especially (b), because client-side caching can be implemented for any client, not just clients of OODBM systems.
* Ongoing development requires schema migrations and those can be difficult. Mind you they're not easy for an RDBMS situation, either, since you have to reswizzle all your object-relational mapping stuff.
Easier than you might think, and if you do code generation (you do use code generation, don't you?), you can update the database definition, the object/relational mapping, and the object definitions all at once.
* Ad-hoc queries are hard.
This is the killer.
-austin
Actually...
It may not be well known, but Ruby is ten years old today (24 February 2003). Perl is 16 years old (1987). I'm not sure how old Python is. Unicode 1.0 was fully released in June 1992, five years after the projects started (mostly at Apple, apparently).
Except for a few "gotchas" (which are, per Matz, part of what will be cleaned up on the way to Ruby 2.0), Ruby supports a lot of Unicode (UTF-8 at least) already, as well as other multibyte character systems (Shift-JIS and EUC, primarily, as it was originalyl written in Japan and is still primarily maintained there).
The point is that Unicode is still immature (4.0 is on the way, but how many systems yet support 3.2?). I suspect that Ruby 2.0 will be fully Unicode compliant. (Even with Unicode compliance, of course, one still has to write programs to be compliant; language Unicode compliance is merely support.)
-austin
Try Ruby, then. Ruby is dynamically typed, but has strong (but not static) typing available (as an extension). Ruby is very modular and a joy to use.
In particular, look at http://www.rubygarden.com/ruby?RealWorldRuby for examples of people using Ruby in the real world. In addition, Amazon clothing is apparently written in Ruby by the Pragmatic Programmers (www.pragmaticprogrammers.com).
The other REALLY nice thing about Ruby is that its extension capabilities are apparently a joy to work with, so time critical sections can be rewritten in C (C++ with some work) or can extend existing C libraries without much difficulty.
-austin
It's simply not possible to take EVERYTHING into consideration at design stage, especially if there's only one person responsible for the design. By exposing programmers to the big picture -- but not giving them responsibility over anything except the modules for which they are assigned -- you gain the assistance of all of the programmers in your organization in vetting the design.
-a
Yes, abstraction is necessary. That still doesn't mean that you can't have an abstracted view of the big picture. The impression I got from the story was that a lot of people are being told to code something without any concept of the big picture itself. When developers develop too much code in isolation, there tend to be mismatches, no matter how good the designer and the design team are.
-austin
It's not just management. I'm on a contract right now where I've advised that the client do things in particular ways, and the management itself is reasonably amenable to the concept, but the programmer to whom I report is, well, set in her ways.
Developers should know what the big picture is so that they can have a sense of direction in the development process. They don't need to worry abuot it, perhaps, but they should know what it is nonetheless.
-austin
One could also use JRuby.
-austin
> Plus only about 10% of MSO features are utilized by the average user anyway.
The only problem with that figure, is that different sets of "average users" use different 10% coverage. BTW, as far as I'm concerned, OOo is technically good enough -- except in its accuracy of MSWord output (it doesn't keep or properly convert ALL of the formatting that a "native" MSWord document would, requiring some tweaking).
-austin
This is silly. Period. Would you say that "Snow White and the Seven Dwarves" is not appropriate children's fare? When I was growing up, that was the scariest movie I saw as a child (in re-release). It dealt with similar problems. What about Cinderella? After all, Cinderella deals with the effective slavery of the main character.
Indeed, we can look to the fundamentalists own book to see that they're slavering hypocrites, because there are parts of the Bible which are "unsuitable for children" because they are so violent.
I haven't seen the movie yet, but if I remember correctly, the "blood" for writing on the walls came *from* the walls (the words formed automatically). Does this differ from the Biblical Writing on the Wall in any way that really matters? Petrification is well-covered in Greek mythology (and is considered age-appropriate for the target market of this film). The deadliness of Nightshade (the plant of which you refer) is a well-known medieval legend.
But the biggest problem I have with what you've posted is the suggestion that Harry Potter's handling of the prejudice against Muggles and "mudbloods" is bad. Sesame Street deals with very similar topics (note the introduction of the Muppet with AIDS in South Africa and the firestorm of controversy there), but what Sesame Street doesn't do is *confront* the reality of prejudice; it *displays* tolerance instead. It tries to short-circuit the cycle of prejudice by influencing children early on (much to the horror of fundies of any stripe). Harry Potter, on the other hand, has acknowledged that prejudice is real and is confronting it head-on by making it so that the bad guys (those of Slytherin) are both generally unsavoury characters and are the ones who demonstrate such prejudices.
Bah.
-austin
>> connect to source safe, upload code to the servers,
>I know nothing about sourcesafe, can't help you here.
SourceSafe is the "CVS" for Visual Studio. Except, like, it's actually usable for serious projects, unlike CVS.
-austin, hates CVS with a passion, can't find anything that he does like that's free or Free or just open source and works on Windows and Linux equally...
Of all of the machines I have, the Linux box is the hardest to deal with (although installing SuSE fixed a lot of that, and some of it has to do with the security restrictions I've put on the Linux box; I tried Debian on it but removed it after four hours of trying to install the bloody thing and not getting a damned thing working).
I find that I just don't use Linux desktop applications -- they're barely usable -- but I still want the graphical configuration because I don't *like* editing configuration files directly in 90% of cases.
The apps *aren't* there, actually. Among other things, I'm a PalmOS software developer. The tools that I've chosen are primarily available and supported on Windows. They might work under WINE, but I don't have the patience to try. (I also play a number of games, and those are Windows only.)My new favourite language, Ruby, isn't as solidly supported on Mac OS X as it is on Windows (and it's not as solid on Windows as it is on Unices, but it's closer); this is in part because of the act that the windowing isn't X and it doesn't like competing graphical toolkits ...
Of course, to me there is one HUGE reason not to get an iMac: they are the ugliest computers out there. They can't just "hide" -- with an integrated display, they MUST sit on the desktop taking up a set amount of space. Once the iMac is eliminated, the iBook and PowerBook are also eliminated because of the bloody single-button-mouse concept. I'm not 100% certain, but I also think that the rest of the Mac line is eliminated because I use a KVM and it isn't using an all-USB keyboard/mouse setup because my old Linux box doesn't support USB mouse/keyboard (and I don't think that it will support a mixture).
To me, there are also other reasons that I prefer not to use Macs: I don't like the single menubar (this may be changed under OS X; I really don't know); I like the taskbar concept in Windows/KDE. There are others, but ... I might get a Mac ... to replace my Linux box.
Windows XP Pro doesn't suck -- even though the EULA does. I've had *zero* problems with the machines I run (and I run Mozilla and OOo and a lot of non-MS stuff). Also, I prefer laptops at this point. I can get a wider variety of Windows-based laptop formats at this point than I can of any other type. I've got two laptops on the "purchase in the next 12 months" list: a micro-laptop (like the Fujitsu Lifebook or the Sony Picturebook) and another desktop-replacement where I can play the latest games (using the latest ATI or nVidia chip).I don't have anything pirated on my system. I prefer Windows because it works like I expect it to do, at least in a graphical interface. I like Unix-style boxes for servers because they do excatly what I expect them to do there.-austin