It saddens me that VoIP is going the way that IM went. I want something that will interoperate with everything else --including the traditional telephone network -- transparently. I don't want to have to care whether the person I'm calling uses Skype, or AOL, or Google Talk, or whatever. I just want to pick up my phone (software or hardware) and call them, like I can on the traditional phone network. Why does every new technology seem to degenerate into a mess of competing and deliberately un-interoperable implementations? How long will it be before the hacks of the IM world are repeated, and we end up patching up this mess with complicated multi-protocol client software?
I agree with you. I was more arguing that home automation, unlike unlocking a car, is a valid use for attaching RFID tags to humans. How you attach the RFID is up to you; I certainly wouldn't want it implanted into my body either. I'm not the home automation sort either, but I know some people who are and I know they'd love the idea of tagging themselves to avoid having to press a button!
The car and computer thing are both daft, but the home automation goal has some merit. If you have a house where more than one person lives, having a home automation system that can track the movements of each person individually would be a major boon. Most current attempts at home automation are based around whether someone is in a room, rather than tailoring to each person.
Of course, you could ask what it would do when two people with conflicting preferences are in the same room, but that's just a software problem and is thus much easier to refine over time.
Perl, and I'd guess PHP too, both do buffering by default. In Perl land you can disable this by doing something really stupid an non-obvious like $|=1 (?!). I don't really like Perl's way to disable it, but I do like that Perl optimizes to the common case. Java has a tendency to be generic to the point of insanity, which is nice from an interface design perspective and lets you do neat things like your example, but does start to get tiresome when you're trying to do something simple.
I wouldn't go so far as to say that Java is bad because of this, though. Sometimes that extra bit of verbosity is useful, even if you don't realise it when you're writing the code the first time.
As for examples of doing this in other languages... Perl's OO is a bit to weak for this to work well -- its object-based streams really only work due to a peculiarity in the way objects are represented in the language. PHP has a generic streams API internally, but since it's a relatively recent addition it hasn't really worked its way into the API much yet. Most things are a pain in the ass in C, but the C++ iostreams library provides a generic streams API that you can wrap and extend to provide an interface like the above. The main difference is that you'd probably not want to wrap it all up in one call like that since you've got to make sure to free all those objects when you're done with them. Aren't garbage collectors fun?
What Microsoft's products are missing is support for the latest-and-greatest hardware-supported virtualization systems. Both Intel and AMD have (incompatible, competing) technologies in their latest CPUs which allow a lot of the grunt work for virtualization to be done in hardware rather than by emulating devices. The open source virtualization product Xen can make use of this through its hypervisor.
Microsoft is currently working on its own hypervisor-based product, but I seem to remember that they are tying it to Longhorn since the hypervisor is being co-developed with the Windows kernel team; I think they're planning to also use it as part of the DRM subsystem or something. Vista keeps getting pushed back, so the virtualization product does too.
The advantage MS has is that they are the only people that can make changes to the NT kernel. Their virtualization products are written by people in the same division as the NT kernel team, so they can work very closely to ensure that Windows runs optimally atop Virtual Server. No other virtualization product will be able to run Windows better than Virtual Server, and Virtual Server only runs on Windows. If MS then publishes documentation on the interfaces between the guest kernel and the virtualization software it won't be long before Linux can run nicely on Virtual Server too. Consequently Virtual Server will be the only product that can run both Windows and Linux optimally, and Virtual Server only runs on Windows. Once veryone has their virtual machines in Virtual Server it will be difficult to migrate them to other products, so Microsoft is securing Windows server licences for some time to come.
To give a more concrete example of your "hobbling Linux under Virtual Server", they could provide superior "elightenments" (OS patches/drivers that allow the kernel to talk directly to the virtualization software rather than to the virtualized hardware) in Windows to those in other OSes. I wouldn't consider that malicious, though, unless they attempt to keep secret the interfaces for doing this so that it can't be added to Linux by a third party.
We make use of virtualization at my company all the time. When we need to prototype something or even need to deploy a production server application quickly we just take one of our pre-rolled skeleton installs of either Debian or Windows Server 2003, copy it and start it up. We can then just install whatever needs to be installed and we have a new "server" up within a few minutes with no need to purchase new hardware. When a particular physical server gets too busy we can buy a new one and easily migrate a virtual machine to the new server with minimal downtime. With some of the more fancy virtualization solutions you can even transport running images between hosts with no downtime at all, though we don't make use of that here since we don't run critical services in virtual machines.
I expect the market for server virtualization to continue to grow for some time, especially now that modern processors can do much of the work in hardware so the guest kernels can run in ring 0 and talk to real rather than emulated hardware.
The licence on Quake 3 is exactly that, though admittedly applied retroactively. I've yet to see any vauguely-complete games built on top of the Q3 engine, because starting from scratch is very hard. I started making some mods to the engine, but code alone doesn't make a game and so I didn't have the enthusiasm to get to the point where others would be enthusiastic enough to help.
This is a problem with open source projects in general and games in particular: much of the early work is generally done by one person, since people are unlikely to contribute unless they use the product, and they can't use the product until it's usable. In the case of a game, unless it's a simple puzzle or reflex game you generally don't play it more than one or twice, and if it doesn't work then you're likely to just throw it away rather than fix it.
If you love doing something, you don't want to do it as a job.
This might sound a little odd, but doing something as a job and doing it for fun are quite different animals.This is particularly applicable to programming: when you're doing it for fun, you set your own schedules, choose your own projects and generally arrange so you're only doing stuff you enjoy. When you're doing it for work, you're doing what someone else wants you to do, when they want you to do it and complete with all of those features you'd leave out of your personal projects because they are tedious to implement.
With all that said, I'm a professional software developer who also does programming as a hobby. I manage to do this without going mad by learning to keep my "fun" projects fun, essentially by avoiding doing anything that's vauguely useful. This might sound silly, but it means I can focus on the fun bits and ignore the tedious bits. Simple puzzle/reflex games are a good example of something that's fun to do for yourself, since you set the rules. It is what you make it and there aren't pesky "features" to implement beyond that.
I found your message interesting, since for some time now I've been trying to improve my posture. However, I've not really got any professional advice on this. I sit straight in my chair when at the computer. My couch doesn't really lend itself to sitting up straight, but I don't watch much TV anyway. One thing I'm missing in your message is what is the correct position for the head to be in? You talk about having the head "upright" as if it's a bad thing, but surely that's the natural position for the head to be in?
The way copyright applies in those situtations relates to whether others are able to then do the same (or a similar) thing in a different setting. For example, if I listen to you perform a particular piece of music a few times I will remember that music and, assuming I'm an adequate musician, be able to produce at least an approximation of it myself. If I wait until the copyright expires, I can then perform or sell my derivative work without restriction. However, until the copyright expires I am unable to sell sheet music representing your piece, nor perform it myself in any public setting.
This is exactly why it is important to remember that ideas (and therefore creative works) cannot naturally be considered to be property. Once you've shared your idea with me, I have in my memory at least an approximation of your idea which I can then recreate it and potentially represent it as my own or otherwise share it. You can't remove that idea from my brain. Copyright exists to artificially reduce the flow of ideas for a limited time in order to create a market for ideas. Infinite copyright, in the long term, will harm the market for ideas since by their very nature all ideas are derivative works of our memories and life experiences.
So how about DRM that let's YOU do whatever you want with it? (Except put it on the internet, which you implied you weren't going to do anyway.) To my mind a "perfect" DRM system would do just that.
It does not exist. It cannot exist. It is a physical and logical impossibility.
I think the post you are replying to is suggesting a system where rather than restricting what you can do the media simply carries around knowledge of who originally licenced it. There is no technological barrier to illegal redistribution, but if you do it the crime can be traced back to you. This would probably serve to disuade mass redistribution, while allowing a small amount of fair use distribution to people you trust.
The logistics of this are lost on me, though: the only way to do this securely would be to encrypt the data, but once you do that you can't play it unless you have the right key. Once you have the right key, there's nothing to stop you from decrypting it and re-tagging it with someone else's name, or indeed redistributing it in a completely unencumbered format. I can't help but wonder if I'm missing something obvious that's preventing me from completing this picture.
It's always been my experience that you need more than 128MB RAM to run Windows XP. It uses a fair chunk of your 128MB RAM before you even do anything, and as soon as you try to run any non-trivial app it'll decend into a big swap-fest. This is made worse by the fact that the manufacturers that will sell people Windows XP machines with far too little RAM are the sort to also bundle a really slow, noisy disk. The main problem with these cheap machines isn't any one skimp but that they've skimped on everything, so all of the performance problems multiply together to create a big suck-fest.
POP3 is useless. For a hosted email solution like GMail IMAP is the only way to go.
I wish Google would let me pay to have IMAP access. That combined with a custom domain might actually cause me to use GMail, finally. I'd only use the web interface when I'm away from my primary PC.
It's easy to create a big repository of user-generated content. The key to success is to provide a service which makes it easy to sort the junk from the good stuff. This involves creating algorithms either for figuring out what's good or allowing users to rate things with minimal abuse possibilities. It's a hard thing to get right, and the most successful sites are the ones that do.
I'm sure a more ardent fan can go into more detail on this than I can, but my understanding of how replicators are supposed to work in the Star Trek universe is a similar principle to that of the transporters. With a transporter, a person or object is decomposed to energy; their atomic structure is stored in a "pattern buffer" which is then used to recreate them at the other end. Likewise, a replicator turns a bunch of random matter (the stuff they have in those icky bags under the replicators, I suppose?) into energy, but then based on existing (computer-stored) pattern data recreates that matter in the form of a steak, or some tea.
The point here is that you can only replicate so long as you have some matter to sacrifice in order to do it. Matter/energy cannot be created nor destroyed, even in the Star Trek universe. Replicating something using someone else's matter is theft. Also, the template for how to construct a steak has to come from somewhere, and in our current world that template would almost certainly be covered by copyright law (which doesn't exist for humans in the Star Trek universe.)
The thing that Microsoft can't remove is all of the support code which sits beneath the browser front end. The browser UI provided by iexplore.exe is really just a thin wrapper around a bunch of system-level components which are leveraged by other applications for services such as making HTTP requests, rendering HTML and so forth. If you remove these, any application which depends on them will break. This includes Outlook, Winamp, HTML Help, Word and many more I can't think of off the top of my head. Several core components use IE components too, such as the "Add/Remove Programs" and "User Accounts" control panel applets, whose UIs are HTML rendered through IE.
Of course, there's no reason why Microsoft can't remove the browser frontend (everything in c:\progra~1\intern~1) and leave all of the components (which live in c:\windows\system32) in there. They were deliberately muddling the two to confuse the court.
I suspect that when they say they are going to separate IE from Windows Explorer they mean that they're going to stop explorer.exe using the underlying IE components to do various things. IE's libraries and front end won't be affected by this decision, you just won't be able to view web pages in an Explorer window any more.
I'd be more concerned about the fact that the reboot is disrupting other, unrelated services on the system for no good reason. If I upgrade my MTA, why does the web server running on the same box have to go down as well?
Of course, in a large business this kind of multi-usage of servers isn't common. It is, however, very common in small businesses which are also the ones who usually have very little redundancy in their infrastructure.
Theoretically the registrars doleing out.com,.net etc domains could be contractually forced to ensure that no content "harmful to minors" appears on any website using one of these domains. The registrars would then have no option but to pass that restriction on to their customers in their own terms-of-service contract. At this point, anyone putting forbidden content on these domains would be culpable for breach of contract, which most countries have a concept of.
Since the current global TLDs are under American administration this wouldn't really be that difficult. Of course, in practice there'd be problems with forcing existing domain owners to agree to the new contract. You could also argue that stuff would still appear in the country code TLDs, but since everything's sharing one root zone -- which is under the control of an American organisation -- the countries could theoretically be strong-armed into complying.
It seems unlikely that they'd go to this much effort, though. More likely is that they'd get the.xxx domain pushed through, pat themselves on the back for a job well done and call it a day until the next election.
Why not find a new game that you've never played before and play that? Then you're both starting from the same level, and from then on it's all about what you're willing to put into it.
However, I must agree with the parent that co-operative games are generally better for playing with a significant other. It's far more satisfying to work together than to compete with each other, especially when both have different skills which can be combined for a greater good.
Well, I for one would prefer them to concentrate on improving the guts rather than piling more frills on top. The frills can come once the guts are good.
I also find it amusing that you're pointing at Safari as a cool new feature when Microsoft added a browser as a core Windows feature back in 1996 or so. Similarly iChat: Microsoft bundles Windows Messenger since WinXP. Windows has a system-wide addressbook app back when Microsoft's mail client was called "Internet Mail and News".
Something like Expose might be nice, but it's nothing that can't be added by a third party, and I don't keep stuff on my desktop anyway.
I'd be more concerned if MS started throwing away codebases that have had at least ten years of development and real-world testing in favor of fancy new stuff just for the sake of pushing the new platform. New software always has bugs.
In their place, though, I'd probably do it for unimportant things like WordPad and Paint, since no-one really uses these for anything important. However, this is still development time that could be used for improving the existing product, so I can see why MS would choose to work from what they have. It's their new products that we should be keeping an eye on; for those, they have no such excuse since.NET can interoperate with legacy native DLLs and COM objects.
It saddens me that VoIP is going the way that IM went. I want something that will interoperate with everything else --including the traditional telephone network -- transparently. I don't want to have to care whether the person I'm calling uses Skype, or AOL, or Google Talk, or whatever. I just want to pick up my phone (software or hardware) and call them, like I can on the traditional phone network. Why does every new technology seem to degenerate into a mess of competing and deliberately un-interoperable implementations? How long will it be before the hacks of the IM world are repeated, and we end up patching up this mess with complicated multi-protocol client software?
I agree with you. I was more arguing that home automation, unlike unlocking a car, is a valid use for attaching RFID tags to humans. How you attach the RFID is up to you; I certainly wouldn't want it implanted into my body either. I'm not the home automation sort either, but I know some people who are and I know they'd love the idea of tagging themselves to avoid having to press a button!
The car and computer thing are both daft, but the home automation goal has some merit. If you have a house where more than one person lives, having a home automation system that can track the movements of each person individually would be a major boon. Most current attempts at home automation are based around whether someone is in a room, rather than tailoring to each person.
Of course, you could ask what it would do when two people with conflicting preferences are in the same room, but that's just a software problem and is thus much easier to refine over time.
Perl, and I'd guess PHP too, both do buffering by default. In Perl land you can disable this by doing something really stupid an non-obvious like $|=1 (?!). I don't really like Perl's way to disable it, but I do like that Perl optimizes to the common case. Java has a tendency to be generic to the point of insanity, which is nice from an interface design perspective and lets you do neat things like your example, but does start to get tiresome when you're trying to do something simple.
I wouldn't go so far as to say that Java is bad because of this, though. Sometimes that extra bit of verbosity is useful, even if you don't realise it when you're writing the code the first time.
As for examples of doing this in other languages... Perl's OO is a bit to weak for this to work well -- its object-based streams really only work due to a peculiarity in the way objects are represented in the language. PHP has a generic streams API internally, but since it's a relatively recent addition it hasn't really worked its way into the API much yet. Most things are a pain in the ass in C, but the C++ iostreams library provides a generic streams API that you can wrap and extend to provide an interface like the above. The main difference is that you'd probably not want to wrap it all up in one call like that since you've got to make sure to free all those objects when you're done with them. Aren't garbage collectors fun?
What Microsoft's products are missing is support for the latest-and-greatest hardware-supported virtualization systems. Both Intel and AMD have (incompatible, competing) technologies in their latest CPUs which allow a lot of the grunt work for virtualization to be done in hardware rather than by emulating devices. The open source virtualization product Xen can make use of this through its hypervisor.
Microsoft is currently working on its own hypervisor-based product, but I seem to remember that they are tying it to Longhorn since the hypervisor is being co-developed with the Windows kernel team; I think they're planning to also use it as part of the DRM subsystem or something. Vista keeps getting pushed back, so the virtualization product does too.
The advantage MS has is that they are the only people that can make changes to the NT kernel. Their virtualization products are written by people in the same division as the NT kernel team, so they can work very closely to ensure that Windows runs optimally atop Virtual Server. No other virtualization product will be able to run Windows better than Virtual Server, and Virtual Server only runs on Windows. If MS then publishes documentation on the interfaces between the guest kernel and the virtualization software it won't be long before Linux can run nicely on Virtual Server too. Consequently Virtual Server will be the only product that can run both Windows and Linux optimally, and Virtual Server only runs on Windows. Once veryone has their virtual machines in Virtual Server it will be difficult to migrate them to other products, so Microsoft is securing Windows server licences for some time to come.
To give a more concrete example of your "hobbling Linux under Virtual Server", they could provide superior "elightenments" (OS patches/drivers that allow the kernel to talk directly to the virtualization software rather than to the virtualized hardware) in Windows to those in other OSes. I wouldn't consider that malicious, though, unless they attempt to keep secret the interfaces for doing this so that it can't be added to Linux by a third party.
We make use of virtualization at my company all the time. When we need to prototype something or even need to deploy a production server application quickly we just take one of our pre-rolled skeleton installs of either Debian or Windows Server 2003, copy it and start it up. We can then just install whatever needs to be installed and we have a new "server" up within a few minutes with no need to purchase new hardware. When a particular physical server gets too busy we can buy a new one and easily migrate a virtual machine to the new server with minimal downtime. With some of the more fancy virtualization solutions you can even transport running images between hosts with no downtime at all, though we don't make use of that here since we don't run critical services in virtual machines.
I expect the market for server virtualization to continue to grow for some time, especially now that modern processors can do much of the work in hardware so the guest kernels can run in ring 0 and talk to real rather than emulated hardware.
The licence on Quake 3 is exactly that, though admittedly applied retroactively. I've yet to see any vauguely-complete games built on top of the Q3 engine, because starting from scratch is very hard. I started making some mods to the engine, but code alone doesn't make a game and so I didn't have the enthusiasm to get to the point where others would be enthusiastic enough to help.
This is a problem with open source projects in general and games in particular: much of the early work is generally done by one person, since people are unlikely to contribute unless they use the product, and they can't use the product until it's usable. In the case of a game, unless it's a simple puzzle or reflex game you generally don't play it more than one or twice, and if it doesn't work then you're likely to just throw it away rather than fix it.
If you love doing something, you don't want to do it as a job.
This might sound a little odd, but doing something as a job and doing it for fun are quite different animals.This is particularly applicable to programming: when you're doing it for fun, you set your own schedules, choose your own projects and generally arrange so you're only doing stuff you enjoy. When you're doing it for work, you're doing what someone else wants you to do, when they want you to do it and complete with all of those features you'd leave out of your personal projects because they are tedious to implement.
With all that said, I'm a professional software developer who also does programming as a hobby. I manage to do this without going mad by learning to keep my "fun" projects fun, essentially by avoiding doing anything that's vauguely useful. This might sound silly, but it means I can focus on the fun bits and ignore the tedious bits. Simple puzzle/reflex games are a good example of something that's fun to do for yourself, since you set the rules. It is what you make it and there aren't pesky "features" to implement beyond that.
I found your message interesting, since for some time now I've been trying to improve my posture. However, I've not really got any professional advice on this. I sit straight in my chair when at the computer. My couch doesn't really lend itself to sitting up straight, but I don't watch much TV anyway. One thing I'm missing in your message is what is the correct position for the head to be in? You talk about having the head "upright" as if it's a bad thing, but surely that's the natural position for the head to be in?
The way copyright applies in those situtations relates to whether others are able to then do the same (or a similar) thing in a different setting. For example, if I listen to you perform a particular piece of music a few times I will remember that music and, assuming I'm an adequate musician, be able to produce at least an approximation of it myself. If I wait until the copyright expires, I can then perform or sell my derivative work without restriction. However, until the copyright expires I am unable to sell sheet music representing your piece, nor perform it myself in any public setting.
This is exactly why it is important to remember that ideas (and therefore creative works) cannot naturally be considered to be property. Once you've shared your idea with me, I have in my memory at least an approximation of your idea which I can then recreate it and potentially represent it as my own or otherwise share it. You can't remove that idea from my brain. Copyright exists to artificially reduce the flow of ideas for a limited time in order to create a market for ideas. Infinite copyright, in the long term, will harm the market for ideas since by their very nature all ideas are derivative works of our memories and life experiences.
I think the post you are replying to is suggesting a system where rather than restricting what you can do the media simply carries around knowledge of who originally licenced it. There is no technological barrier to illegal redistribution, but if you do it the crime can be traced back to you. This would probably serve to disuade mass redistribution, while allowing a small amount of fair use distribution to people you trust.
The logistics of this are lost on me, though: the only way to do this securely would be to encrypt the data, but once you do that you can't play it unless you have the right key. Once you have the right key, there's nothing to stop you from decrypting it and re-tagging it with someone else's name, or indeed redistributing it in a completely unencumbered format. I can't help but wonder if I'm missing something obvious that's preventing me from completing this picture.
It's always been my experience that you need more than 128MB RAM to run Windows XP. It uses a fair chunk of your 128MB RAM before you even do anything, and as soon as you try to run any non-trivial app it'll decend into a big swap-fest. This is made worse by the fact that the manufacturers that will sell people Windows XP machines with far too little RAM are the sort to also bundle a really slow, noisy disk. The main problem with these cheap machines isn't any one skimp but that they've skimped on everything, so all of the performance problems multiply together to create a big suck-fest.
POP3 is useless. For a hosted email solution like GMail IMAP is the only way to go.
I wish Google would let me pay to have IMAP access. That combined with a custom domain might actually cause me to use GMail, finally. I'd only use the web interface when I'm away from my primary PC.
Hmm. DHCP requires SNMP? SNMP isn't even a core component on stock Windows XP! You have to add it manually from the Windows Components control panel.
...or am I missing something?
That is an interesting question. Who exactly do you file suit against?
It's easy to create a big repository of user-generated content. The key to success is to provide a service which makes it easy to sort the junk from the good stuff. This involves creating algorithms either for figuring out what's good or allowing users to rate things with minimal abuse possibilities. It's a hard thing to get right, and the most successful sites are the ones that do.
I'm sure a more ardent fan can go into more detail on this than I can, but my understanding of how replicators are supposed to work in the Star Trek universe is a similar principle to that of the transporters. With a transporter, a person or object is decomposed to energy; their atomic structure is stored in a "pattern buffer" which is then used to recreate them at the other end. Likewise, a replicator turns a bunch of random matter (the stuff they have in those icky bags under the replicators, I suppose?) into energy, but then based on existing (computer-stored) pattern data recreates that matter in the form of a steak, or some tea.
The point here is that you can only replicate so long as you have some matter to sacrifice in order to do it. Matter/energy cannot be created nor destroyed, even in the Star Trek universe. Replicating something using someone else's matter is theft. Also, the template for how to construct a steak has to come from somewhere, and in our current world that template would almost certainly be covered by copyright law (which doesn't exist for humans in the Star Trek universe.)
The thing that Microsoft can't remove is all of the support code which sits beneath the browser front end. The browser UI provided by iexplore.exe is really just a thin wrapper around a bunch of system-level components which are leveraged by other applications for services such as making HTTP requests, rendering HTML and so forth. If you remove these, any application which depends on them will break. This includes Outlook, Winamp, HTML Help, Word and many more I can't think of off the top of my head. Several core components use IE components too, such as the "Add/Remove Programs" and "User Accounts" control panel applets, whose UIs are HTML rendered through IE.
Of course, there's no reason why Microsoft can't remove the browser frontend (everything in c:\progra~1\intern~1) and leave all of the components (which live in c:\windows\system32) in there. They were deliberately muddling the two to confuse the court.
I suspect that when they say they are going to separate IE from Windows Explorer they mean that they're going to stop explorer.exe using the underlying IE components to do various things. IE's libraries and front end won't be affected by this decision, you just won't be able to view web pages in an Explorer window any more.
I'd be more concerned about the fact that the reboot is disrupting other, unrelated services on the system for no good reason. If I upgrade my MTA, why does the web server running on the same box have to go down as well?
Of course, in a large business this kind of multi-usage of servers isn't common. It is, however, very common in small businesses which are also the ones who usually have very little redundancy in their infrastructure.
Theoretically the registrars doleing out .com, .net etc domains could be contractually forced to ensure that no content "harmful to minors" appears on any website using one of these domains. The registrars would then have no option but to pass that restriction on to their customers in their own terms-of-service contract. At this point, anyone putting forbidden content on these domains would be culpable for breach of contract, which most countries have a concept of.
Since the current global TLDs are under American administration this wouldn't really be that difficult. Of course, in practice there'd be problems with forcing existing domain owners to agree to the new contract. You could also argue that stuff would still appear in the country code TLDs, but since everything's sharing one root zone -- which is under the control of an American organisation -- the countries could theoretically be strong-armed into complying.
It seems unlikely that they'd go to this much effort, though. More likely is that they'd get the .xxx domain pushed through, pat themselves on the back for a job well done and call it a day until the next election.
Why not find a new game that you've never played before and play that? Then you're both starting from the same level, and from then on it's all about what you're willing to put into it.
However, I must agree with the parent that co-operative games are generally better for playing with a significant other. It's far more satisfying to work together than to compete with each other, especially when both have different skills which can be combined for a greater good.
Well, I for one would prefer them to concentrate on improving the guts rather than piling more frills on top. The frills can come once the guts are good.
I also find it amusing that you're pointing at Safari as a cool new feature when Microsoft added a browser as a core Windows feature back in 1996 or so. Similarly iChat: Microsoft bundles Windows Messenger since WinXP. Windows has a system-wide addressbook app back when Microsoft's mail client was called "Internet Mail and News".
Something like Expose might be nice, but it's nothing that can't be added by a third party, and I don't keep stuff on my desktop anyway.
I'd be more concerned if MS started throwing away codebases that have had at least ten years of development and real-world testing in favor of fancy new stuff just for the sake of pushing the new platform. New software always has bugs.
In their place, though, I'd probably do it for unimportant things like WordPad and Paint, since no-one really uses these for anything important. However, this is still development time that could be used for improving the existing product, so I can see why MS would choose to work from what they have. It's their new products that we should be keeping an eye on; for those, they have no such excuse since .NET can interoperate with legacy native DLLs and COM objects.