A gaming system really has no use for a HD, but a "Home Server" ala TIVO basically has to have one.
A gaming system that plans to be used for online gaming will need to be able to download patches, levels, maps, and other information persistently. While such information could be stored in flash memory, USB keys, or other non-HD mechanism, hard disks offer the best bang for the buck and are easiest for novice consumers.
Yeah, but running only on poorly setup windows boxes would probably depress it pretty quick.
I don't see being limited only to the poorly setup windows boxes much of a limitation. They outnumber pretty much any other category you can come up with.
Finally, I don't think Pixar's stockholders are in much of a mood to be cheap
Since Steve Jobs owns more than 50% of Pixar stock, there isn't a difference between what the CEO wants and what the stockholders want. You can't say that about too many public companies.
LCDs are flat and easier on the eyes but you can't get anything above 1280X1024 resolution for under $1000 Um.., not true anymore. I'm the happy owner of a Planar PL201M. 20" big and 1600x1200. I love it, and the current price is about $900. CRTs are certainly cheaper and higher resolution, but also heavier, hotter, and too deep once you get into the 20" range. The tradeoffs are obvious to all buyers. Personally, I like being able to carry my 20" monitor with one hand.
Seriously, will anyone ever sell non-DRM`ed vanilla MP3`s? Not in the foreseeable future. Dammit, I just want something I can play in my home and car stereos! Is that too much to ask?
No it's not. Apple ACC downloads can be burned to CDs in normal CD audio format which are then playable in any CD player, including your home and car stereo. But you already knew that didn't you. Your complaint is that Apple will make you go through the extra step of burning it and re-ripping it to get an MP3 version, which most home and car stereos can't play, though maybe yours can. This extra step is the bone Apple threw to RIAA to allow their music store to exist in the first place.
The public accepts the idea that batteries die and need to be replaced, so therefore, battery companies make money. What would be their incentive to create better batteries?
It's called competition. It's the reason monopolies are bad. If I can create a better battery, I can sell them to customers that are currently buying your newly obsolete batteries. I can make more money.
Of course, if there are no other battery companies, I don't have any reason to build a better battery. In fact, I have some motivation to ship crappy batteries so that you will upgrade them more often, in hopes that the new battery is better. Sound familiar?
they're not making content available to the public, merely letting the public find the right product to then buy.
Um,... read the article. You can get two pages before and two pages after the requested item. They recognize that fiction works are not at much risk, but fear users will print out sections of travel books or cook books. In their tests, they claim to have succeeded in printing out 100 consecutive pages of a work, though they admit doing so is pretty tedious.
Most had only the keys found on a typewriter, with no function keys, arrow keys, or numeric keypad, and certainly no mouse. That made the keyboard-only, modal interface necessary.
To a touch typist, the modal interface is desirable. In a modal editor, you get to use the most convenient keys to both input text and manipulate it. You just need to have enough short term memory to remember what mode you are in, i.e. what you were doing 2 seconds ago. For example, you can use 'w' to move forward a word rather than take your hands off the home row and type 'ctrl right arrow'.
Modeless text editors are ideal for casual users that don't want or need to remember editing commands, but if you are editing text documents or code regularly, vim is ideal.*
* ignores issue that vim is not a file browser, usenet news reader, mail program, web browser, or any of the other things that emacs can claim. I'm talking about an ideal text editor.
Maybe I'm being too fussy about this, but a code generator, traditionally has always meant a part of the compiler back-end which actually translates intermediate code to machine-level instructions. I think you're being too fussy. Anything that generates code can reasonably be called a code generator. You are just most familiar with the backends of compilers.
Code generation can allow a developer to compensate for missing abstractions in the underlying language or architecture. For example, it's almost trivial to write generator for a Java type-safe enum class with a couple of pages of java tied to a Velocity template for an enum. You just have to be sure that your build process regenerates the class if your input changes. The input could be something as simple as color {red, green, blue}
It's then easy to add features to your enum infrastructure that aren't in Bloch's class and have them show up in all the project enums (like correct serialization and localization).
The GUI builders that spit out code fragments are just the tip of the iceberg when it comes to code generators. Imagine a utility that could generate the plumbing to make EJB or RMI methods directly accessable from a Windows DCOM client, without it knowing or caring that it's talking to Java on the other end.
Or automatically generating classes for Customer, Order, and Product from an existing database table, and seamlessly loading, caching and saving their instance data without the application knowing or caring that it is persistent.
Automating this sort of tedious programming is what code generation is all about.
Back when we cared about GIF support in one of our products, I researched the cost to license it from Unisys. Quoting from the information they sent me at the time: The License Fee for applicable software capable of use solely for GIF-LZW purposes will be forty-five one hundredths of one percent (0.45%) of the selling price, but in no case less than ten cents U.S. ($0.10) or more than ten dollars ($10.00). Further details are available in a representative license agreement, which may be requested from Unisys.
In short, no one will change their price becuase it's just not that much money.
Instead of supporting GIF directly, we built a plug-in image architecture and told the customer EXACTLY how to get a GIF plugin from the net.
The idea is awesome, but I'd want to hear some 'torture-test' stories (like, you know, using it while walking...) from some I-Pod owners before I shell out another $300 USD for something that's about as durable as a lightbulb.
I use one of the older 10 gig iPods while walking all the time -- usually while using a case that will attach to my belt, but sometimes in a pocket. The newer ones have a wired remote with buttons for play/pause, preve/next, volume up/down.
Interesting idea. How about a DVD and a (Red Book) CD sold together?
Seems to me that you've got a good point there. Much of the cost of selling an audio CD is in making the singles videos to promote it. It's strange that the music business hasn't thought about trying to sell them as content.
It has. I received Tori Amos's Scarlet's Walk as a gift and it has the standard CD, but includes a DVD with music videos and some Web content only accessible if you physically have the CD in your drive.
NVIDIA is the first of the consumer graphics chip companies to firmly understand what is going to be happening with the convergence of consumer real-time and professional offline rendering.
- John Carmack, id Software
Exluna was eventually bought out by nVidia and now neither BMRT (the free renderer) nor Entropy ( the commercial renderer), are available. But now nVidia has lots of state-of-the-art expertise in photorealistic rendering implementation.
20 years ago, or even ten, you may have been right.
P2P changes the scale of copying by orders of magnitude. Historically, one could make a tape of an album and give the tape to a friend. That was, and is, illegal, but the casual pirate could only give a copy to a few friends. They could make copies for their own friends etc, but the quality would soon degrade to the point that it wasn't worth it.
Enter 1. Perfect digital copies and 2. P2P networks.
Now you can make a copy and distribute it to millions of your closest friends. They can give it to millions of their closest friends, and so on. The copy is as good as the original.
Since this method of copying scales so much more rapidly, you only need one user in a million to actually break the copy protection. Everybody else can just go along for the ride. That's why the protection mechanism needs to be unbreakable, or it is completely ineffective.
Since the site is already slashdotted, I have no idea how it works. But if you had a device that used sound or light to track your motion (think bat-like echolocation or laser rulers) you could detect gestures without exerting force on the device.
take a cute, innocent and doe-eyed teenager. Let's name her Jane Doe.Imagine said teenager has downloaded her very first MP3 Britney Spears song (shudder) from Kaazaa.
Have 20 armed-to-the-teeth RIAA goons kick down the door of her bedroom, drag her to court and prosecute her for 20 years for music piracy. If some high-powered RIAA lawyer claims US$ 20 Mil. for IP theft, from her hapless parents, that's even better. Lock Jane Doe in prison. Cut to Jane's parents crying over both the tragic destiny of their daughters and over the lawyer's bill.
You underestimate the RIAA. They won't pick a cute, innocent and doe-eyed teenager for precisely the reason you would like them to: public opinion could swing against them. They'll pick pick some teenage cracker, bleary-eyed from too many 4am FPS internet sessions with 20,000 downloaded mp3s and 500 pirated movies on his hard disk.
Oh, and a few gig of porn through in, just for good measure.
MAC's are cool, but so is x86 hardware. It's not as simple of a choice.
Robert Cringely has urged Apple to port OS X to the Intel archectecture. I'd love to see it too. I don't know if I'd switch, but the competition would be good for everyone.
Back in the days when the Mac OS was made up of significant chunks of 68000 assembler, I could see that porting to Intel was a pain. Now that they've already switched architectures once (68000 to PowerPC) and have replaced the earlier kernel with a BSD based one, I would think porting to Intel is easier than it's ever been for Apple. I can only presume they don't think it's in their best interests.
Tab completion is one of my favorite interface inventions ever.
cygwin provides a fairly complete emulation of a unix environment under Windows, including command line completion in several shells.
Alternatively, if you are used to the Windows command line, you can enable command and file completion ( which is implemented but disabled by default!) by editing your registry as follows:
Go to HKEY_CURRENT_USER/Software/Microsoft create a new key called 'Command Processor' (case sensitive) if it does not exist create a new DWORD value in the new key called 'CompletionChar' (case sensitive) with value 9.
Then you will have command and file completion by tabbing. (Presumably you could use a character other than 9 (tab), but I've never tried it.)
You say that there is a problem with profiling multithreaded code with gprof. But the issue you point to seems to apply to both single and multithreaded code: Linux gprof doesn't seem to count time spent in system code.
I've completely given up trying to use gprof under Linux. When I need to profile our code, I still use gprof, but under Solaris. I can then fix the bottlenecks, which are rarely system specific, and the Linux version runs faster as well.
Now, compute intensive code tends not to spend a lot of time in system calls, so it isn't clear that it matters whether a profiler counts time spent in system calls. I kind of prefer if it doesn't because it doesn't clutter up the profile with I/O delays (which are usually unavoidable).
Maybe you've never used a working gprof. In a working profiler, time spent waiting for I/O doesn't show up because it doesn't take CPU cycles to wait. If the app is waiting for I/O, it gives the CPU to another process. Time spent in system calls can take a significant amount of of time in a multithreaded app. Thread synchronization is expensive. I had a multithreaded server app that spent 15% of it's time just in the posix mutex functions.
For an entirely different reason, I find the car analogy great. The article keeps going on and on about how horrible it is to switch environments when there are different skins. Then just look at how different cars are.
But they all have steering wheels. And the gas pedal is always the rightmost pedal. And the brake is always to its left. Try selling a car with a joystick for steering, or a pedal for blowing the horn. The fundamental interactions with a car are standard.
You can't say that about the fundamental interactions with most windowing systems. Even the way you resize, raise, and lower windows on a Linux desktop is customizable -- not only because there are so many different window managers, but because many of them are completely configurable about what buttons go where and what they do.
It's frustrating and time consuming when I need to interact with someone elses desktop and I can't change focus from the keyboard, or there is no button to iconify a window, or the only way to raise a window is to click the middle mouse on the border.
There are several very real advantages in using OS-native widgets.
* They have the native look and feel. The importance of this should not be underestimated. If you use the native widgets, you don't have to recode when the look and feel changes. I designed a portable windowing toolkit in which we decided to use native widgets. We had only a few days of rewriting to do when Microsoft changed their look and feel from Windows 3.1 to Windows 95. If we had to do the details ourselves, it probably would have taken months.
* They have native performance. I don't have any experience with Mac internals, and the strict X11 windowing semantics make it hard to optimize actions like linedrawing in hardware, but the graphics cards and drivers for Windows can do many operations in hardware that you will have to do in software if you are just emulating. It's no wonder you can't write a commercial quality GUI in Java when they are doing text antialiasing in software.
* End users don't want it. I'm generalizing here of course, but the average Mac users want a Mac interface, the average Windows users want a Windows interface, and Unix users, well, they want to be able to customize their interface with an.interfacerc file.
One of the big advantages of a look and feel is that it is consitent from application to application. There's no retraining when moving from app to app. Focus policy is consistent. Menu dropdowns and popups are consitent. You loose some of these advantages with emulation, particularly if you are emulating a user interface that can change look and feel without changing the API.
For example, menu bars in Windows 2000 no longer (by default) underline the keyboard equivalent of the menu until you press the Alt key. I suspect Microsoft is trying to make the menus easier to read for mouse users. This capability is customizable. A portable windowing toolkit that uses native widgets will get the new behavior, including the ability to let the user control it, without changing any code at all. Emulators will always be a little bit behind.
Think again.
Apple iMacs come with USB as practically the only interface. There are loads of USB devices, at least partially because of this.
There are many devices that support the old, slow USB interface. Keyboards, mice, low quality web cams and similar devices that don't need high bandwidth. Microsoft already supports this version of USB. USB 2.0 is new. It is high bandwidth, hot swappable, has power in the cable, just like, um, firewire (aka IEEE 1394).
USB 2.0, like firewire, has high enough bandwidth for hard disks and high resolution realtime video capture. But since we already have firewire hard disks, and every digital video camera I've ever seen has a firewire port rather than a USB 2.0 port, I reluctantly have to say that Microsoft is supporting the right one (oh no!).
A gaming system really has no use for a HD, but a "Home Server" ala TIVO basically has to have one.
A gaming system that plans to be used for online gaming will need to be able to download patches, levels, maps, and other information persistently. While such information could be stored in flash memory, USB keys, or other non-HD mechanism, hard disks offer the best bang for the buck and are easiest for novice consumers.
Yeah, but running only on poorly setup windows boxes would probably depress it pretty quick.
I don't see being limited only to the poorly setup windows boxes much of a limitation. They outnumber pretty much any other category you can come up with.
Finally, I don't think Pixar's stockholders are in much of a mood to be cheap
Since Steve Jobs owns more than 50% of Pixar stock, there isn't a difference between what the CEO wants and what the stockholders want. You can't say that about too many public companies.
LCDs are flat and easier on the eyes but you can't get anything above 1280X1024 resolution for under $1000
Um.., not true anymore. I'm the happy owner of a Planar PL201M. 20" big and 1600x1200. I love it, and the current price is about $900. CRTs are certainly cheaper and higher resolution, but also heavier, hotter, and too deep once you get into the 20" range. The tradeoffs are obvious to all buyers.
Personally, I like being able to carry my 20" monitor with one hand.
Seriously, will anyone ever sell non-DRM`ed vanilla MP3`s?
Not in the foreseeable future.
Dammit, I just want something I can play in my home and car stereos! Is that too much to ask?
No it's not. Apple ACC downloads can be burned to CDs in normal CD audio format which are then playable in any CD player, including your home and car stereo. But you already knew that didn't you. Your complaint is that Apple will make you go through the extra step of burning it and re-ripping it to get an MP3 version, which most home and car stereos can't play, though maybe yours can. This extra step is the bone Apple threw to RIAA to allow their music store to exist in the first place.
The public accepts the idea that batteries die and need to be replaced, so therefore, battery companies make money. What would be their incentive to create better batteries?
It's called competition. It's the reason monopolies are bad. If I can create a better battery, I can sell them to customers that are currently buying your newly obsolete batteries. I can make more money.
Of course, if there are no other battery companies, I don't have any reason to build a better battery. In fact, I have some motivation to ship crappy batteries so that you will upgrade them more often, in hopes that the new battery is better. Sound familiar?
they're not making content available to the public, merely letting the public find the right product to then buy.
... read the article. You can get two pages before and two pages after the requested item. They recognize that fiction works are not at much risk, but fear users will print out sections of travel books or cook books. In their tests, they claim to have succeeded in printing out 100 consecutive pages of a work, though they admit doing so is pretty tedious.
Um,
They can teach him that long greasy hair in a ponytail is not a fashion statement.
Um.., I think it is a fashion statement, but perhaps not the intended one.
Most had only the keys found on a typewriter, with no function keys, arrow keys, or numeric keypad, and certainly no mouse. That made the keyboard-only, modal interface necessary.
To a touch typist, the modal interface is desirable. In a modal editor, you get to use the most convenient keys to both input text and manipulate it. You just need to have enough short term memory to remember what mode you are in, i.e. what you were doing 2 seconds ago. For example, you can use 'w' to move forward a word rather than take your hands off the home row and type 'ctrl right arrow'.
Modeless text editors are ideal for casual users that don't want or need to remember editing commands, but if you are editing text documents or code regularly, vim is ideal.*
* ignores issue that vim is not a file browser, usenet news reader, mail program, web browser, or any of the other things that emacs can claim. I'm talking about an ideal text editor.
Maybe I'm being too fussy about this, but a code generator, traditionally has always meant a part of the compiler back-end which actually translates intermediate code to machine-level instructions.
I think you're being too fussy. Anything that generates code can reasonably be called a code generator. You are just most familiar with the backends of compilers.
Code generation can allow a developer to compensate for missing abstractions in the underlying language or architecture. For example, it's almost trivial to write generator for a Java type-safe enum class with a couple of pages of java tied to a Velocity template for an enum. You just have to be sure that your build process regenerates the class if your input changes. The input could be something as simple as
color {red, green, blue}
It's then easy to add features to your enum infrastructure that aren't in Bloch's class and have them show up in all the project enums (like correct serialization and localization).
The GUI builders that spit out code fragments are just the tip of the iceberg when it comes to code generators. Imagine a utility that could generate the plumbing to make EJB or RMI methods directly accessable from a Windows DCOM client, without it knowing or caring that it's talking to Java on the other end.
Or automatically generating classes for Customer, Order, and Product from an existing database table, and seamlessly loading, caching and saving their instance data without the application knowing or caring that it is persistent.
Automating this sort of tedious programming is what code generation is all about.
Back when we cared about GIF support in one of our products, I researched the cost to license it from Unisys.
Quoting from the information they sent me at the time:
The License Fee for applicable software capable of use solely for GIF-LZW purposes will be forty-five one hundredths of one percent (0.45%) of the selling price, but in no case less than ten cents U.S. ($0.10) or more than ten dollars ($10.00). Further details are available in a representative license agreement, which may be requested from Unisys.
In short, no one will change their price becuase it's just not that much money.
Instead of supporting GIF directly, we built a plug-in image architecture and told the customer EXACTLY how to get a GIF plugin from the net.
The idea is awesome, but I'd want to hear some 'torture-test' stories (like, you know, using it while walking...) from some I-Pod owners before I shell out another $300 USD for something that's about as durable as a lightbulb.
I use one of the older 10 gig iPods while walking all the time -- usually while using a case that will attach to my belt, but sometimes in a pocket. The newer ones have a wired remote with buttons for play/pause, preve/next, volume up/down.
Um.. Telephone companies already do this. They sell caller id. Then sell caller id blockers. Then sell caller id blocker blockers.
Does anyone else wonder if the cable companies built these devices to increase revenue? Nah. That's just too paranoid, right?
Seems to me that you've got a good point there. Much of the cost of selling an audio CD is in making the singles videos to promote it. It's strange that the music business hasn't thought about trying to sell them as content.
It has. I received Tori Amos's Scarlet's Walk as a gift and it has the standard CD, but includes a DVD with music videos and some Web content only accessible if you physically have the CD in your drive.
A few years ago, several developers in Pixar's Renderman group (which builds the photorealistic renderer used in many commercial films, including Pixar's) left to form a company called Exluna. They built a competing renderer and Pixar ended up filing a patent infringment suit.
Exluna was eventually bought out by nVidia and now neither BMRT (the free renderer) nor Entropy ( the commercial renderer), are available. But now nVidia has lots of state-of-the-art expertise in photorealistic rendering implementation.
P2P changes the scale of copying by orders of magnitude. Historically, one could make a tape of an album and give the tape to a friend. That was, and is, illegal, but the casual pirate could only give a copy to a few friends. They could make copies for their own friends etc, but the quality would soon degrade to the point that it wasn't worth it.
Enter 1. Perfect digital copies and 2. P2P networks.
Now you can make a copy and distribute it to millions of your closest friends. They can give it to millions of their closest friends, and so on. The copy is as good as the original.
Since this method of copying scales so much more rapidly, you only need one user in a million to actually break the copy protection. Everybody else can just go along for the ride. That's why the protection mechanism needs to be unbreakable, or it is completely ineffective.
Since the site is already slashdotted, I have no idea how it works. But if you had a device that used sound or light to track your motion (think bat-like echolocation or laser rulers) you could detect gestures without exerting force on the device.
However, it's most likely just an exageration.
Have 20 armed-to-the-teeth RIAA goons kick down the door of her bedroom, drag her to court and prosecute her for 20 years for music piracy. If some high-powered RIAA lawyer claims US$ 20 Mil. for IP theft, from her hapless parents, that's even better. Lock Jane Doe in prison. Cut to Jane's parents crying over both the tragic destiny of their daughters and over the lawyer's bill.
You underestimate the RIAA. They won't pick a cute, innocent and doe-eyed teenager for precisely the reason you would like them to: public opinion could swing against them. They'll pick pick some teenage cracker, bleary-eyed from too many 4am FPS internet sessions with 20,000 downloaded mp3s and 500 pirated movies on his hard disk.
Oh, and a few gig of porn through in, just for good measure.
Robert Cringely has urged Apple to port OS X to the Intel archectecture. I'd love to see it too. I don't know if I'd switch, but the competition would be good for everyone.
Back in the days when the Mac OS was made up of significant chunks of 68000 assembler, I could see that porting to Intel was a pain. Now that they've already switched architectures once (68000 to PowerPC) and have replaced the earlier kernel with a BSD based one, I would think porting to Intel is easier than it's ever been for Apple.
I can only presume they don't think it's in their best interests.
Tab completion is one of my favorite interface inventions ever.
cygwin provides a fairly complete emulation of a unix environment under Windows, including command line completion in several shells.
Alternatively, if you are used to the Windows command line, you can enable command and file completion ( which is implemented but disabled by default!) by editing your registry as follows:
Go to HKEY_CURRENT_USER/Software/Microsoft
create a new key called 'Command Processor' (case sensitive) if it does not exist
create a new DWORD value in the new key called 'CompletionChar' (case sensitive) with value 9.
Then you will have command and file completion by tabbing. (Presumably you could use a character other than 9 (tab), but I've never tried it.)
You say that there is a problem with profiling multithreaded code with gprof. But the issue you point to seems to apply to both single and multithreaded code: Linux gprof doesn't seem to count time spent in system code.
I've completely given up trying to use gprof under Linux. When I need to profile our code, I still use gprof, but under Solaris. I can then fix the bottlenecks, which are rarely system specific, and the Linux version runs faster as well.
Now, compute intensive code tends not to spend a lot of time in system calls, so it isn't clear that it matters whether a profiler counts time spent in system calls. I kind of prefer if it doesn't because it doesn't clutter up the profile with I/O delays (which are usually unavoidable).
Maybe you've never used a working gprof. In a working profiler, time spent waiting for I/O doesn't show up because it doesn't take CPU cycles to wait. If the app is waiting for I/O, it gives the CPU to another process. Time spent in system calls can take a significant amount of of time in a multithreaded app. Thread synchronization is expensive. I had a multithreaded server app that spent 15% of it's time just in the posix mutex functions.
For an entirely different reason, I find the car analogy great. The article keeps going on and on about how horrible it is to switch environments when there are different skins. Then just look at how different cars are.
But they all have steering wheels. And the gas pedal is always the rightmost pedal. And the brake is always to its left. Try selling a car with a joystick for steering, or a pedal for blowing the horn. The fundamental interactions with a car are standard.
You can't say that about the fundamental interactions with most windowing systems. Even the way you resize, raise, and lower windows on a Linux desktop is customizable -- not only because there are so many different window managers, but because many of them are completely configurable about what buttons go where and what they do.
It's frustrating and time consuming when I need to interact with someone elses desktop and I can't change focus from the keyboard, or there is no button to iconify a window, or the only way to raise a window is to click the middle mouse on the border.
There are several very real advantages in using OS-native widgets.
.interfacerc file.
* They have the native look and feel. The importance of this should not be underestimated. If you use the native widgets, you don't have to recode when the look and feel changes. I designed a portable windowing toolkit in which we decided to use native widgets. We had only a few days of rewriting to do when Microsoft changed their look and feel from Windows 3.1 to Windows 95. If we had to do the details ourselves, it probably would have taken months.
* They have native performance. I don't have any experience with Mac internals, and the strict X11 windowing semantics make it hard to optimize actions like linedrawing in hardware, but the graphics cards and drivers for Windows can do many operations in hardware that you will have to do in software if you are just emulating. It's no wonder you can't write a commercial quality GUI in Java when they are doing text antialiasing in software.
* End users don't want it. I'm generalizing here of course, but the average Mac users want a Mac interface, the average Windows users want a Windows interface, and Unix users, well, they want to be able to customize their interface with an
One of the big advantages of a look and feel is that it is consitent from application to application. There's no retraining when moving from app to app. Focus policy is consistent. Menu dropdowns and popups are consitent. You loose some of these advantages with emulation, particularly if you are emulating a user interface that can change look and feel without changing the API.
For example, menu bars in Windows 2000 no longer (by default) underline the keyboard equivalent of the menu until you press the Alt key. I suspect Microsoft is trying to make the menus easier to read for mouse users. This capability is customizable. A portable windowing toolkit that uses native widgets will get the new behavior, including the ability to let the user control it, without changing any code at all. Emulators will always be a little bit behind.
There are many devices that support the old, slow USB interface. Keyboards, mice, low quality web cams and similar devices that don't need high bandwidth. Microsoft already supports this version of USB. USB 2.0 is new. It is high bandwidth, hot swappable, has power in the cable, just like, um, firewire (aka IEEE 1394).
USB 2.0, like firewire, has high enough bandwidth for hard disks and high resolution realtime video capture. But since we already have firewire hard disks, and every digital video camera I've ever seen has a firewire port rather than a USB 2.0 port, I reluctantly have to say that Microsoft is supporting the right one (oh no!).