It's not only licence fees, but also complexity, especially for small hardware like mice. I think it's understandable that a chipset for a 1 MBit/s master/slave architecture is cheaper than 480 MBit/s with a complex network architecture. It's overkill for most devices, and less useful than real ethernet would be.
A lot of home DV stuff is appearing atm, like the Philips Streamium line and the KISS DVD players, and these devices use ethernet and not firewire. With the Rio Karma there's even a MP3 player with ethernet. I doubt that firewire will leave its DV/Mac niche.
These are legacy problems. There's no reason why DV couldnt be done over USB, at least since USB 2.0 and the USB-on-the-go extension. And for audio USB and ethernet are more than sufficient.
>>your just overloading the usb subsystem. try >>playing a game with a usb keyboard and mouse >>on a usb hdd and also using a usb microphone.
Actually I do play FPS with USB mice and keyboard and headset. (without USB hdd, but no one uses them as a primary storage anyway)
BTW most people don't care about the performance of their mice:)
> dedicated ports are the way it should go. for > best performance dedicated hardware is always > better.
No, the recent years have shown that dedicated hardware is worse. In the end the generalized approach will win. Dedicated hardware makes only sense for small quantities, but it will never get the same amount of R&D money. It's like arcade video games. In the early days they were better than consoles. But now a company like Sony puts so much money into R&D that arcade manufacturers have no chance of keeping up with, even if Sony's hardware costs $200 and theirs $20000.
>>>PS/2 is not hotpluggable.[...] >>Unless you're running a rack of headless >>servers. Most people aren't.Unless you're >>running a rack of headless servers. Most people >>aren't.
It's more important for notebooks, when you switch on your notebook and notice that you forgot to plug in your mouse/keyboard. The real problem isnt even that you have to reboot. The problem is that if you do not know this, hotplugging the keyboard can destroy the notebook.
Another common case is pouring coffee over the keyboard or mouse.
I guess the nice part is that you can extend it easily with hubs. That's especially nice for notebooks that lack free space for ports.
>>Why'd there even have to be a USB 1? The original USB runs like a dead slug<<
Then use only 2.0 devices:) I'd assume that even when 2.0 would not exist there would still be low-speed devices, because they are cheaper. Devices like mice are very cost-sensitive.
>>Anyone who has attempted the latter 3 activities without USB2<<
I never had performance problems with 1.1. It's certainly not fast enough for hard drives, but flash-based devices (digicams, mp3 players...) are not that fast anyway... and for printing I don't think that it is slowing than the old centronics interface.
PS/2 is not hotpluggable. It is possibly to short-circuit your motherboard and fry your controller (not likely, but I saw at least one broken mobo after a failed hotplug attempt)
It is stupid to have a separate kind of port for each peripheral. There are already more than enough (serial¶llel ports, firewire, gameport, and analog audio in/outs should die as well, and in the long term there should be only one for network and peripherals)
Some people want more than one keyboard or mice/trackballs/graphics tablets. So should a system come with 5 PS/2 ports just for the case? Unlike USB you have no chance to add more PS/2 ports.
Even though they look identical the system has two separate ports for keyboard and mouse. Why? There is no logical reason (except bad engineering) for this, and definitely does not help usability
PS/2 devices are not good at identifying themselves. With USB a OS can identify the device type and load drivers automatically from the net.
>>How the fcuk I am supposed to connect 8 usb devices on a 3 port USB card without a USB hub ?
I agree that even today systems have not enough USB ports. 10 should be a minimum. But what's your problem? Try connecting 8 keyboards to three PS/2 ports...
Actually it is even funnier: you can not update/patch your installation without losing the certification. So if an exploit becomes known for your OS you have the choice between either running an uncertified OS or running an OS with known exploits until the patch has been certified (which can take many months).
So in reality certified OSes are less secure than an up-to-date system. But whatever, it's certified.
No, it doesnt. Because I, as a user, don't care about the toolkit's documentation. I either use it, or I don't. And I refuse to use any IDE (like Netbeans) that uses Swing.
>>Sorry, dude, but SWT is nowhere *near* as complete as Swing, in terms of functionality.
Maybe, but most *users* will chose a SWT app over a Swing one anytime. Actually most users will refuse to use a Swing app, they feel strange and look ugly. The main reason for Eclipse's success (and the demise of the other free IDEs) is that only Eclipse offers a pleasant GUI, which no Swing-based IDE can.
>>Copying GCs can compact holes in memory, which makes for better cache utilization.
You are missing one point though: GCs can be better at cache utilization than manual heap memory management, but they don't even come close to stack-allocation, neither in cache utilization (almost immediate re-use the hottest cache) and nor in overhead for memory allocation (allocate as many objects as you want with a simple add).
A good C++ program would do almost all memory allocations on the stack, and not on the heap. Only the long-living objects need to be on the heap.
Near Heidelberg/Germany there seems to be a bump in a highway that causes some BMW firmware to crash everytime a BMW runs over it, with the same effect as reported in the second article: the engine stops, the doors and windows are locked and the occupants are trapped. Fortunately people don't need to wait long, because there's usually a local breakdown service waiting to rescue the drivers. Interesting business idea:)
What happens when the library containing all the valuable information on paper burns down (which happened more than once in history)?
Digital data is somewhat easier to destory (not much, a match can be enough to destroy a paper library), but it is much easier to copy and backup. It's trivial to make a backup of your library each day and ship it to some other place. Try that with a house full of paper.
The main problem is that too many people are still trying to delete stuff on their disks, even though that's not neccessary in most cases. Few people create more data in their lifetime than fits on today's hard disks (exception: videos and people who take *many* photos). Part of the problem are operating systems that do not keep revisions of old files, and do not actively support backups (ever seen an OS doing automatic backups to other systems in your home or telling you that it's time for a backup CD?).
Everything will be IP-based - but not yet
on
Is Bluetooth Dead?
·
· Score: 1
Right now Bluetooth can exist because it has many, very specialized profiles that allow building relatively simple devices. IP based technologies like WLAN need more expensive controllers. A few euros/dollars matter for devices like keyboard and headsets, and IP-based hardware would be too expensive. But in a few years the price difference will be neglegible, and then Bluetooth will go away, because TCP/IP is better known and less complex. Bluetooth is not alone, USB and Firewire will also disappear (or at least their protocols, a IP-based solution may use the same hardware).
IMHO Java's Date classes went from simple and easy to use in Java 1.1 to completely horrible in >=1.2, with the introduction of Calendar, DateFormat and whatever those 10 classes are called. It's the prime example of bad API design in the sake of flexibility and correctness. Before the change you could learn in 1 minute how to create a daten given the (gregorian) year, month, and date. Just look on the Date JavaDocs, it was was obvious how to use it. After the change the time to learn went up to at least 10 minutes and complete confusion of most newbies.
>>Instead, if you build a relatively simple interface to a Date class, you might have five or ten member functions that are there because they are logically necessary. [..] Then you get these five or ten operations, and you can build the other 50 in a supporting library.
I would disagree with that statement. While I can understand the concern (less dependence on data structures in the 50 methods), this creates an API that sucks. As a developer you want to have all helper functions for a data type at a single place. As the user of an IDE you want to see all available functions when you enter a variable with a given type. By spreading them into two or more places you increase the risk that somebody does not find them and reimplements them.
Stroustrup and the interviewer miss one important point in the class vs. struct and invariant discussion: binary compatibility. The reason why you should not access variables in structs/classes directly is not always that their representation may change. More often it happens that you need to add a member, but this is not possible without breaking binary compatibility (at least on the usual Linux/Unix compilers). So you need to use the private class/d-ptr pattern to hide at least future members from the public class. This does not break apps that use the class members of earlier version, but it would make the API inconsistent, as the newer version would need to offer a different way of accessing the members. And the easiest one is to have get/set methods. So if you don't want to fall into the inconsistent API trap later, you should use get/set methods from the beginning. It's the only chance to have a consistent API over several evolving but still binary compatible versions.
And, not to forget, the GarageGames model has another important point: the games use a common game engine, based on the original Tribes 2 engine. This is why these games, while not spectacular, look quite good and are also available for platforms like Linux and Mac.
As the effort to create games gets bigger, re-use becomes more and more important.
It's not only licence fees, but also complexity, especially for small hardware like mice. I think it's understandable that a chipset for a 1 MBit/s master/slave architecture is cheaper than 480 MBit/s with a complex network architecture. It's overkill for most devices, and less useful than real ethernet would be.
A lot of home DV stuff is appearing atm, like the Philips Streamium line and the KISS DVD players, and these devices use ethernet and not firewire. With the Rio Karma there's even a MP3 player with ethernet. I doubt that firewire will leave its DV/Mac niche.
> I understood that Firewire supports a "point to
> point" protocol that USB2 does not
http://www.usb.org/developers/onthego/
These are legacy problems. There's no reason why DV couldnt be done over USB, at least since USB 2.0 and the USB-on-the-go extension. And for audio USB and ethernet are more than sufficient.
>No, at worst you would destroy the fuse.
Hmm... not sure what happened, but the one I saw started sending a 'phantom' scan codes every few seconds.
>>your just overloading the usb subsystem. try
:)
>>playing a game with a usb keyboard and mouse
>>on a usb hdd and also using a usb microphone.
Actually I do play FPS with USB mice and keyboard and headset. (without USB hdd, but no one uses them as a primary storage anyway)
BTW most people don't care about the performance of their mice
> dedicated ports are the way it should go. for
> best performance dedicated hardware is always
> better.
No, the recent years have shown that dedicated hardware is worse. In the end the generalized approach will win. Dedicated hardware makes only sense for small quantities, but it will never get the same amount of R&D money. It's like arcade video games. In the early days they were better than consoles. But now a company like Sony puts so much money into R&D that arcade manufacturers have no chance of keeping up with, even if Sony's hardware costs $200 and theirs $20000.
>>>PS/2 is not hotpluggable.[...]
>>Unless you're running a rack of headless
>>servers. Most people aren't.Unless you're >>running a rack of headless servers. Most people
>>aren't.
It's more important for notebooks, when you switch on your notebook and notice that you forgot to plug in your mouse/keyboard.
The real problem isnt even that you have to reboot. The problem is that if you do not know this, hotplugging the keyboard can destroy the notebook.
Another common case is pouring coffee over the keyboard or mouse.
That's not a problem with USB, that's a problem with your OS.
why are you hotswapping a ps/2 device?
I don't, because I know that I shouldnt. But I have seen *many* people do it.
>>Any particular reason why USB is a bus?<<
:)
I guess the nice part is that you can extend it easily with hubs. That's especially nice for notebooks that lack free space for ports.
>>Why'd there even have to be a USB 1? The original USB runs like a dead slug<<
Then use only 2.0 devices
I'd assume that even when 2.0 would not exist there would still be low-speed devices, because they are cheaper. Devices like mice are very cost-sensitive.
>>Anyone who has attempted the latter 3 activities without USB2<<
I never had performance problems with 1.1. It's certainly not fast enough for hard drives, but flash-based devices (digicams, mp3 players...) are not that fast anyway... and for printing I don't think that it is slowing than the old centronics interface.
>>How the fcuk I am supposed to connect 8 usb devices on a 3 port USB card without a USB hub ?
I agree that even today systems have not enough USB ports. 10 should be a minimum.
But what's your problem? Try connecting 8 keyboards to three PS/2 ports...
Actually it is even funnier: you can not update/patch your installation without losing the certification. So if an exploit becomes known for your OS you have the choice between either running an uncertified OS or running an OS with known exploits until the patch has been certified (which can take many months).
So in reality certified OSes are less secure than an up-to-date system. But whatever, it's certified.
No, it doesnt. Because I, as a user, don't care about the toolkit's documentation. I either use it, or I don't. And I refuse to use any IDE (like Netbeans) that uses Swing.
Umm, I think you're missing the point. Who cares if users prefer SWT over Swing.
Those who write software in the hope that users use it.
Actually, I disagree with this. Have you ever used JEdit?
Yes, it is responsive, but it looks&feels bad.
>>Sorry, dude, but SWT is nowhere *near* as complete as Swing, in terms of functionality.
Maybe, but most *users* will chose a SWT app over a Swing one anytime. Actually most users will refuse to use a Swing app, they feel strange and look ugly.
The main reason for Eclipse's success (and the demise of the other free IDEs) is that only Eclipse offers a pleasant GUI, which no Swing-based IDE can.
>>Copying GCs can compact holes in memory, which makes for better cache utilization.
You are missing one point though: GCs can be better at cache utilization than manual heap memory management, but they don't even come close to stack-allocation, neither in cache utilization (almost immediate re-use the hottest cache) and nor in overhead for memory allocation (allocate as many objects as you want with a simple add).
A good C++ program would do almost all memory allocations on the stack, and not on the heap. Only the long-living objects need to be on the heap.
Near Heidelberg/Germany there seems to be a bump in a highway that causes some BMW firmware to crash everytime a BMW runs over it, with the same effect as reported in the second article: the engine stops, the doors and windows are locked and the occupants are trapped. Fortunately people don't need to wait long, because there's usually a local breakdown service waiting to rescue the drivers. Interesting business idea :)
What happens when the library containing all the valuable information on paper burns down (which happened more than once in history)?
Digital data is somewhat easier to destory (not much, a match can be enough to destroy a paper library), but it is much easier to copy and backup. It's trivial to make a backup of your library each day and ship it to some other place. Try that with a house full of paper.
The main problem is that too many people are still trying to delete stuff on their disks, even though that's not neccessary in most cases. Few people create more data in their lifetime than fits on today's hard disks (exception: videos and people who take *many* photos). Part of the problem are operating systems that do not keep revisions of old files, and do not actively support backups (ever seen an OS doing automatic backups to other systems in your home or telling you that it's time for a backup CD?).
Right now Bluetooth can exist because it has many, very specialized profiles that allow building relatively simple devices. IP based technologies like WLAN need more expensive controllers. A few euros/dollars matter for devices like keyboard and headsets, and IP-based hardware would be too expensive.
But in a few years the price difference will be neglegible, and then Bluetooth will go away, because TCP/IP is better known and less complex. Bluetooth is not alone, USB and Firewire will also disappear (or at least their protocols, a IP-based solution may use the same hardware).
IMHO Java's Date classes went from simple and easy to use in Java 1.1 to completely horrible in >=1.2, with the introduction of Calendar, DateFormat and whatever those 10 classes are called. It's the prime example of bad API design in the sake of flexibility and correctness.
Before the change you could learn in 1 minute how to create a daten given the (gregorian) year, month, and date. Just look on the Date JavaDocs, it was was obvious how to use it. After the change the time to learn went up to at least 10 minutes and complete confusion of most newbies.
>>Instead, if you build a relatively simple interface to a Date class, you might have five or ten member functions that are there because they are logically necessary. [..] Then you get these five or ten operations, and you can build the other 50 in a supporting library.
I would disagree with that statement. While I can understand the concern (less dependence on data structures in the 50 methods), this creates an API that sucks. As a developer you want to have all helper functions for a data type at a single place. As the user of an IDE you want to see all available functions when you enter a variable with a given type. By spreading them into two or more places you increase the risk that somebody does not find them and reimplements them.
Stroustrup and the interviewer miss one important point in the class vs. struct and invariant discussion: binary compatibility. The reason why you should not access variables in structs/classes directly is not always that their representation may change. More often it happens that you need to add a member, but this is not possible without breaking binary compatibility (at least on the usual Linux/Unix compilers). So you need to use the private class/d-ptr pattern to hide at least future members from the public class. This does not break apps that use the class members of earlier version, but it would make the API inconsistent, as the newer version would need to offer a different way of accessing the members. And the easiest one is to have get/set methods. So if you don't want to fall into the inconsistent API trap later, you should use get/set methods from the beginning. It's the only chance to have a consistent API over several evolving but still binary compatible versions.
Oops, I have just proved that by alphabet skills have suffered in the last years.
Easy: the next one is reserved for Java applications.
And, not to forget, the GarageGames model has another important point: the games use a common game engine, based on the original Tribes 2 engine. This is why these games, while not spectacular, look quite good and are also available for platforms like Linux and Mac.
As the effort to create games gets bigger, re-use becomes more and more important.
If I remember correctly they have only one.