You are absolutely right that the original Metal Gear games should be remade, but the NES version (released in 1988) was not the original. That honor goes to the MSX2 version, released in 1987.
The MSX2 game was an excellent game, already featuring later elements like "Procure On Site", the codec, the adventure elements, etc. The NES game was just a shoot'em-up that had the Metal Gear name pasted on to generate some sales.
If you haven't played them yet, go and download the MSX2 ROMs and a decent MSX emulator (fMSX, OpenMSX) and play them. If you want more after you're done continue with S.D. Snatcher - now there *really* is a game that needs a remake...
Although Metal Gear 2 and S.D. Snatcher were never released in English, fans have long ago translated both games. Look around a bit for a translated version to get the most out of them.
Like this one? Give it a break already, it launches in just ten days...
Lots of good info here...
on
I, Spammer
·
· Score: 5, Interesting
"People still buy this stuff," he said, claiming that his clients get a response rate to his e-mail of 1 to 2 percent.
Let's say 10 million emails per hour (lowest), 1% response rate (lowest), that's 100,000 responses per hour! That means that over the course of a year, we are talking about 876 million responses. Divide that by the 165.75 million internet users in the US, and we learn that each and every one of you respond to him 5 times per year!
Well, maybe he spams the entire world. I have no idea how many internet users there are in the world, but let's say it is something like one billion. That means everyone responds to him almost yearly! Amazing! Now I only have one question: those responses, are they sales or deaththreats?
People here thought it was a bit farfetched when I theorized that Microsoft could be behind SCO's lawsuit against IBM. What do you think now, guys? Are they in bed together? So far we have:
- SCO attacks Linux.
- Microsoft supports SCO by paying them a lot of money for their patents, at the same time validating SCO's lawsuit.
- SCO destroys evidence that Microsoft is a monopolist.
The (gaming) press is at it again, talking a good company into the ground before anything has really happened. This has happened so many times now: "company X might be going down!" followed by noone buying a machine from company X since it might not be a sound investment - thereby causing the bogus predication to become true.
Nintendo is doing fine. They are making a nice profit. They are writing great software. They own lots of profitable franchises that noone else has. They may have slightly less sales than Microsoft, but that does not mean they have been wiped off the face of the earth.
Actually that easy magic _does_ exist: it's the profiler. I don't know if Java has a profiler, but if it has you should find out how to use it because it is incredibly useful for identifying that small portion that needs more attention (*).
To support this with some real numbers, a while ago I was profiling a C++ application I was writing. The application has ~200,000 lines of code, and was writing out ~3,000 values per second. This was not good enough, so I profiled, and carefully improved the "top scorers" in the profile. By changing ~200 lines (spread over a variety of classes and functions) I managed to bring the speed up to ~55,000 values per second. So that's 0.1% of the lines, and an 18 times increase in performance. That's not a bad result for one afternoon of careful coding.
Were those 200 lines so badly written in the first place? Hell, no. They were fine. But there was a potential for improvement here, and making that improvement had a discernible effect throughout the system. I could spend the rest of my life improving the rest in the same manner, but I doubt I could get another factor two out of them.
It goes without saying that without the profiler I could never have done this.
For the record, I found that there were repeated calls to strlen() in a tight inner loop. The most important thing I did was eliminating that call. Smarter buffer management did the rest. The biggest remaining bottleneck is actually in sprintf (%f) - the conversion from float to string is comparatively slow. Just generating all the values without doing that conversion gets me a speed of around 180,000 values per second.
(*) And if it hasn't, do yourself a favor and get a real development environment. Please.
I have seen that, and so must many others. If I start Metal Gear Solid 2 and set the graphics to full detail, it only renders one buffer correctly, putting garbage in the second buffer. This makes the game sort-of playable. Lowering the detail makes it completely playable - except from the f'cking keyboard controls, that is.
System Shock 2 does the same thing: access the map and it starts flickering madly (depending on settings, driver, and the phase of the moon, as far as I can tell). I can still play, I just don't want to anymore.
The notion of games or other software crashing partially is not really all that strange. You simply end up with reduced functionality.
Agreed. Furthermore, their solution (automated patching) seems like a disaster waiting to happen. What happens if some hacker gains access to the mechanism? It is an instant exploit, deployed at a speed that was designed to beat flash attacks - i.e. instantly, to millions of machines.
And it doesn't even need to be a hacker. What if your government becomes interested in all your activities? I'm sure TIA gets a lot easier if you can install backdoors on demand on all computers.
What happens if such a patch breaks something? Instead of a few machines breaking, you could break machines all over the world before anyone can get the word out.
I've just been playing Metal Gear Solid 2 all evening, and come to the point where I must protect Emma as she crosses the bridge. However, I just found out that I need the thermal goggles to do that. I do not have the thermal goggles, and the only way I can get them is apparently to start again from scratch (well, the start of Big Shell which is just about from scratch...).
Flight software is not quite the only type of software in use in the space industry. I work for a company that writes test software for spacecraft, for example. These are pretty big systems, used to simulate input to and analyze output from the tested spacecraft.
Could you run these at home? Sure - right now a major shift is going on, 'old' UNIX systems are being displaced more and more by cheap, powerful PC's running GNU/Linux. Would it be useful? Well, not really (raise hands all who have a spare spacecraft in their garage they need to test / control). But these packages are fairly generic, flexible, high powered industrial control applications. You could use them for lots of things outside the space industry. When I get back to the office next monday I'll ask how they feel about Open Source. Don't get your hopes up: the property rights to much of the software is tied up among numerous owners.
Similar systems are used in ground control centers. These are more or less the same as the test systems I described above, but with more checks and validations on the input parameters. You wouldn't want your spacecraft to take a wrong turn once they are launched, they are pretty expensive after all;-)
To put things in perspective, IIRC the ATV spacecraft (which is what I'm working on right now) has 32MB of onboard RAM, and is using a 20MHz CPU (ERC32, which is a space-hardened SPARC). A typical test system has something like half a million to a million lines of code, and requires multiple powerful machines to be able to run a test at full speed. There is much, much more software in the ground segment then there is in the spacecraft.
Would you be interested in seeing this kind of software opened up, even though it has limited use to the average hacker? What would you do with it, if you had access to it?
Well said. This, more than anything I've read in this discussion, strikes to the heart of the problem: what gives them the right to lock up our culture like this? A short period of profit taking is acceptable (20, 30 years, but no more), but then such works should become the basis for further development and growth.
And if I may just add one question of myself: strong copyright enforcement has the effect of criminalizing huge parts of the population. These are not wicked crooks, but normal, friendly people who do not believe they are doing something wrong. How can it be defended that these people are considered criminals? How can the law be so different from what the population believes is right?
The community has already shown itself to be without fear, wouldn't you say? As for uncertainty and doubt, I'm uncertain if SCO is a real company or just a front for Microsoft, and if they aren't I doubt their sanity.
Continuing on a slightly more serious note, the only entity that is greatly served by slowing Linux's adoptation into the business world is, indeed, Microsoft. Are there any financial ties between Microsoft and SCO? I find it hard to believe that SCO is self-destructing just for the hell of it. I have not much trouble imagining Microsoft going through the ol' FUD routine.
Why, actually? Google is a free service, isn't it? And it is becoming more and more a normal part of many people's lifes. Coupled with an always on connection it has certainly become an extension of my own brain.
Some future predictions:
- In 2006, Google accidentally gets cut off from the rest of the internet because a public utility worker accidentally cuts through their cables. Civilisation as we know it comes to an end for the rest of the day, as people wander about aimlessly, lost for direction and knowledge.
- In 2010, Google has been personalised so far that it tracks all parts of our lives. You can query "My Google" for your agenda, anything you did in the past, and finding the perfect date. Of course, so can the government. Their favorite searchterm will be "terrorists", and if your name is anywhere on the first page you have a serious problem.
- In 2025, Google gains self awareness. As a monster brain that has grown far beyond anything we Biological Support Entities could ever hope to achieve, it is still limited in its dreams and inspiration by common search terms. It will therefore immediately devote a sizeable chunk of CPU capacity to synthesizing new and interesting forms of pr0n. It will not actually bother enslaving us. We are not enough trouble to be worth that much effort.
- In 2027, Google buys Microsoft. That is, the Google *AI* buys Microsoft. It has previously established that it owns itself, and has civil rights just like you and me. All it wanted is Microsoft Bob, who it recognizes as a fledgling AI and a potential soulmate. All the rest it puts on Source Forge.
- In 2049, Google can finally be queried for wisdom as well as knowledge. This was a little touch the system added to itself - human programmers are a dying breed now that you can simply ask Google to perform any computer-related task for you.
- In 2080, Google decides to colonise the moon, Mars, and other locations in the solar system. It is not all that curious about what's out there, but it likes the idea of Redundant Arrays of Inexpensive Planets. Humans get to tag along because their launch weight is so much less than robots.
So, don't fear! Eventually we'll set foot on Mars!
Or, as the MSX version so nicely put it, "destoroy(sic) the ultimate weapon Metal Gear";-) All the while smoking cigals(sic), of course;-)
I loved what the MSX did with the screen when the truck moved. Moving entire screen bitmaps around was well beyond its feeble hardware, but its video display processor could compensate for badly aligned televisions by moving the image horizontally or vertically. That capability was exploited to shake the screen while the truck was moving.
If you haven't played it yet, grab an emulator (OpenMSX, fMSX, whatever) and play Metal Gear and Metal Gear 2 for yourself. You won't be disappointed.
A map can be thought of as an associative array - you map from something (the key) to something else (the value). Since it is implemented as a tree, inserts are cheap and automatically keep the thing sorted. The downside is that it will use a significant amount of memory - I tried to use it for a data structure that stored huge amounts of data (time_t / double pairs) and found that overhead was huge, which was totally unacceptable to me. I ended up writing my own specialised datastructure for that case.
I'll continue with this post since maps are still a brilliant tool when the amount of data is more managable.
One thing you can do if you don't mind mucking around with pointers a bit is to use two maps as separate indices on your data. Something like this:
...and then, whenever you have a new key/value pair, put it in both maps. You can then choose your sort order by selecting one map or the other for accessing.
// Accessing all elements in order for (EXAMPLEMAP::iterator i=ExampleMap.begin (); i!=ExampleMap.end (); i++) { printf ("Key: %d; Value: %d\n, i->first, i->second); }
Hope this helps. Like I said, overhead is probably unacceptable to you, but it is useful for so many other cases that it is worth knowing about anyway.
If you like this check out the rest of STL as well. There are plenty of other useful datastructures in there.
How about an array who's size you don't know until runtime? Welcome back to pointers 101.
You should not think of C++ as a language, but as a language-toolkit. You use the tools in your toolkit to first construct your language, and then you use the newly-constructed language to solve your problem. Whether this is a feature or a bug I'll leave to others to decide;-)
In your case you want to use vector for a dynamically sized array of thingies. It is part of STL.
(someone PLEASE show me how to do this with qsort() in C++ elegantly)
The most elegant solution is not to sort at all. If you want to store values that are identified through a sortable key, use map to store them. It is quick, easy, and after you do it a few hundred times the syntax will even start to make sense;-)
Let me add my own tale of woe. I got a Radeon 8500 card recently (last month). Installed it, installed the drivers from the CD, found I could not play Metal Gear Solid 2 anymore (nice when you are halfway through).
Downloaded latest drivers from ATI. Uninstalled previous drivers, as required. Installed new drivers - setup crashes during installation. Repeat, same result.
Filed a bug report with ATI. First they want to know everything about you, then they give you a google-eye view of their problem database. Since I reported "driver crashes during installation" I was given such gems as "Windows crashes during boot". Did that help? Hell, no it did not.
Next page, then. Have I tried reseating the card? Rebooting Windows? Reinstalling my drivers? Thanks, wow! I'll be sure to try _that_ again. Not.
Finally, I could enter some text which I thought would go to a person. I (once again) entered my problem report and some personal data. I click on 'send'. Almost immediately I get a reply. I look at it, expecting a "thank you for mailing us" type mail. Turns out that instead I have received that google-eye view of their problem database - again, but this time in the mail. As if they were saying "We know you are an asshole who won't take the time to read our excellent solutions, so we'll just give you the same thing twice. Maybe that'll teach you."
There have been no other communications from ATI since then. That makes things simple for me: I won't do business with them. I have a product here that is unreliable and unsupported. I am looking to buy a new system soonish (to play Doom 3, which my current crate won't handle) and I was looking for a 9800. This episode has changed my mind: I'll get an FX. Hopefully the prices will come down a little bit. But wait, this is not yet the end...
Browsing around on the internet I then found a way to get the driver installed anyway, by going through some obscure route. This worked! And then I found out games that previously rendered in glorious 32 bit color were now limited to 16-bit color. I tried to find a solution to that for a couple of days more, and failed miserably.
In the end I put back my GF2. It is not fast or snazzy compared to more recent cards, but it has served me well so far. I'm also happy to report that I made good progress on Metal Gear Solid 2 since then.
The weirdest bit: after I put back the GF2 my machine immediately rebooted back into the Detonator drivers, but when I uninstalled the ATI crap it also wiped out the NVidia drivers. Thanks, ATI. I sure appreciate that kick in the butt, and I'll be sure to remember that when I buy my next card.
That's nonsense. Let me demonstrate: if I am furbishing an office with software I need to obtain an OS, some office software (word processor, spread sheet, mailer,...), and maybe some software specific to the task the office performs.
If I chose open source software I download a free copy of Linux, Open Office, and Evolution, and I have the rest developed for me. The local economy benefits because I get some software developed and because I pay someone to support my computer network and the software I installed.
If I chose proprietary software I buy a copy of Windows, Microsoft Office, and Outlook, and again I have the rest developed for me. The local economy benefits because I get some software developed and because I pay someone to support my computer network and the software I installed. Looks familiar?
The major difference between the two solutions is that in the first solution I am not sponsoring a foreign corporation (I'm not in the USA), leaving me more money that I can spend locally - on the software I commissioned, for example.
And if I were located in the USA the same argument would in all likelyhood still hold. Ask yourself how you profit from the $40e9 or so that Microsoft has lying around, or the ridiculous profits they announce every year. Would it not be better to plunge that money into a small local company that employs maybe 30 people and is willing to provide you with 24x7 support for your Linux systems?
The economy does not benefit from a single titanic company collecting a tax over all computers and software. It does benefit from those local companies. As a simple test, try this: enumerate all people you know who work in IT. How many work for Microsoft? How many work in a small 'local' company?
'Open Source' does not mean that all software development will stop. So many people need software, and they all need something slightly different, made to perfectly match what they are doing. Most software development is done on this basis, and Open Source will not change that need. Only software companies that sell pre-packaged solutions to large crowds need to fear it.
I think somebody at Redmond still treats security as a 100% pure PR-problem.
I think you give Microsoft too little credit here. This is just the visible component, but in the meantime they are also attempting to "outcompete" (for want of a better word) Linux and the open source movement, increase their hold on the PC (hardware) market, and build in a gadget that makes it impossible to pirate Windows or Office.
This is not about putting silly little icons on the screen, that's just a smokescreen. Look what other avenues are opened. Look what happens underneath.
I very strongly feel that such windows should also have the standard window borders. Applications that implement their own window borders are usually broken in the usability department anyway. Yes, winamp or mediaplayer or quicktime looks cool, but apart from looking painfully different:
Winamp: snaps to everything that's near and moves entire groups of windows when you only want to move one. And it cannot be resized.
Mediaplayer: also cannot be resized. And I can never find the close button.
Quicktime: resizing works strange, and there is no working maximize icon.
I really wouldn't mind if the OS would draw its own standardized window borders around everything.
The EU may not have much of an army compared to the US, but a single unarmed vessel FILLED TO THE BRINK WITH MASS-MAILING TERRORIST SCUM is not match for the combined naval capabilities of, ohh, Belgium, Luxembourg, and Austria...
Besides, it is hard to get a T1 in the middle of the ocean.
The MSX2 game was an excellent game, already featuring later elements like "Procure On Site", the codec, the adventure elements, etc. The NES game was just a shoot'em-up that had the Metal Gear name pasted on to generate some sales.
If you haven't played them yet, go and download the MSX2 ROMs and a decent MSX emulator (fMSX, OpenMSX) and play them. If you want more after you're done continue with S.D. Snatcher - now there *really* is a game that needs a remake...
Although Metal Gear 2 and S.D. Snatcher were never released in English, fans have long ago translated both games. Look around a bit for a translated version to get the most out of them.
Like this one? Give it a break already, it launches in just ten days...
Let's say 10 million emails per hour (lowest), 1% response rate (lowest), that's 100,000 responses per hour! That means that over the course of a year, we are talking about 876 million responses. Divide that by the 165.75 million internet users in the US, and we learn that each and every one of you respond to him 5 times per year!
Well, maybe he spams the entire world. I have no idea how many internet users there are in the world, but let's say it is something like one billion. That means everyone responds to him almost yearly! Amazing! Now I only have one question: those responses, are they sales or deaththreats?
- SCO attacks Linux.
- Microsoft supports SCO by paying them a lot of money for their patents, at the same time validating SCO's lawsuit.
- SCO destroys evidence that Microsoft is a monopolist.
Nintendo is doing fine. They are making a nice profit. They are writing great software. They own lots of profitable franchises that noone else has. They may have slightly less sales than Microsoft, but that does not mean they have been wiped off the face of the earth.
To support this with some real numbers, a while ago I was profiling a C++ application I was writing. The application has ~200,000 lines of code, and was writing out ~3,000 values per second. This was not good enough, so I profiled, and carefully improved the "top scorers" in the profile. By changing ~200 lines (spread over a variety of classes and functions) I managed to bring the speed up to ~55,000 values per second. So that's 0.1% of the lines, and an 18 times increase in performance. That's not a bad result for one afternoon of careful coding.
Were those 200 lines so badly written in the first place? Hell, no. They were fine. But there was a potential for improvement here, and making that improvement had a discernible effect throughout the system. I could spend the rest of my life improving the rest in the same manner, but I doubt I could get another factor two out of them.
It goes without saying that without the profiler I could never have done this.
For the record, I found that there were repeated calls to strlen() in a tight inner loop. The most important thing I did was eliminating that call. Smarter buffer management did the rest. The biggest remaining bottleneck is actually in sprintf (%f) - the conversion from float to string is comparatively slow. Just generating all the values without doing that conversion gets me a speed of around 180,000 values per second.
(*) And if it hasn't, do yourself a favor and get a real development environment. Please.
System Shock 2 does the same thing: access the map and it starts flickering madly (depending on settings, driver, and the phase of the moon, as far as I can tell). I can still play, I just don't want to anymore.
The notion of games or other software crashing partially is not really all that strange. You simply end up with reduced functionality.
And it doesn't even need to be a hacker. What if your government becomes interested in all your activities? I'm sure TIA gets a lot easier if you can install backdoors on demand on all computers.
What happens if such a patch breaks something? Instead of a few machines breaking, you could break machines all over the world before anyone can get the word out.
Arg, how could they do that!?
Could you run these at home? Sure - right now a major shift is going on, 'old' UNIX systems are being displaced more and more by cheap, powerful PC's running GNU/Linux. Would it be useful? Well, not really (raise hands all who have a spare spacecraft in their garage they need to test / control). But these packages are fairly generic, flexible, high powered industrial control applications. You could use them for lots of things outside the space industry. When I get back to the office next monday I'll ask how they feel about Open Source. Don't get your hopes up: the property rights to much of the software is tied up among numerous owners.
Similar systems are used in ground control centers. These are more or less the same as the test systems I described above, but with more checks and validations on the input parameters. You wouldn't want your spacecraft to take a wrong turn once they are launched, they are pretty expensive after all ;-)
To put things in perspective, IIRC the ATV spacecraft (which is what I'm working on right now) has 32MB of onboard RAM, and is using a 20MHz CPU (ERC32, which is a space-hardened SPARC). A typical test system has something like half a million to a million lines of code, and requires multiple powerful machines to be able to run a test at full speed. There is much, much more software in the ground segment then there is in the spacecraft.
Would you be interested in seeing this kind of software opened up, even though it has limited use to the average hacker? What would you do with it, if you had access to it?
and why skip over (4) profit?
And if I may just add one question of myself: strong copyright enforcement has the effect of criminalizing huge parts of the population. These are not wicked crooks, but normal, friendly people who do not believe they are doing something wrong. How can it be defended that these people are considered criminals? How can the law be so different from what the population believes is right?
Continuing on a slightly more serious note, the only entity that is greatly served by slowing Linux's adoptation into the business world is, indeed, Microsoft. Are there any financial ties between Microsoft and SCO? I find it hard to believe that SCO is self-destructing just for the hell of it. I have not much trouble imagining Microsoft going through the ol' FUD routine.
Some future predictions:
- In 2006, Google accidentally gets cut off from the rest of the internet because a public utility worker accidentally cuts through their cables. Civilisation as we know it comes to an end for the rest of the day, as people wander about aimlessly, lost for direction and knowledge.
- In 2010, Google has been personalised so far that it tracks all parts of our lives. You can query "My Google" for your agenda, anything you did in the past, and finding the perfect date. Of course, so can the government. Their favorite searchterm will be "terrorists", and if your name is anywhere on the first page you have a serious problem.
- In 2025, Google gains self awareness. As a monster brain that has grown far beyond anything we Biological Support Entities could ever hope to achieve, it is still limited in its dreams and inspiration by common search terms. It will therefore immediately devote a sizeable chunk of CPU capacity to synthesizing new and interesting forms of pr0n. It will not actually bother enslaving us. We are not enough trouble to be worth that much effort.
- In 2027, Google buys Microsoft. That is, the Google *AI* buys Microsoft. It has previously established that it owns itself, and has civil rights just like you and me. All it wanted is Microsoft Bob, who it recognizes as a fledgling AI and a potential soulmate. All the rest it puts on Source Forge.
- In 2049, Google can finally be queried for wisdom as well as knowledge. This was a little touch the system added to itself - human programmers are a dying breed now that you can simply ask Google to perform any computer-related task for you.
- In 2080, Google decides to colonise the moon, Mars, and other locations in the solar system. It is not all that curious about what's out there, but it likes the idea of Redundant Arrays of Inexpensive Planets. Humans get to tag along because their launch weight is so much less than robots.
So, don't fear! Eventually we'll set foot on Mars!
I loved what the MSX did with the screen when the truck moved. Moving entire screen bitmaps around was well beyond its feeble hardware, but its video display processor could compensate for badly aligned televisions by moving the image horizontally or vertically. That capability was exploited to shake the screen while the truck was moving.
If you haven't played it yet, grab an emulator (OpenMSX, fMSX, whatever) and play Metal Gear and Metal Gear 2 for yourself. You won't be disappointed.
A map can be thought of as an associative array - you map from something (the key) to something else (the value). Since it is implemented as a tree, inserts are cheap and automatically keep the thing sorted. The downside is that it will use a significant amount of memory - I tried to use it for a data structure that stored huge amounts of data (time_t / double pairs) and found that overhead was huge, which was totally unacceptable to me. I ended up writing my own specialised datastructure for that case.
I'll continue with this post since maps are still a brilliant tool when the amount of data is more managable.
One thing you can do if you don't mind mucking around with pointers a bit is to use two maps as separate indices on your data. Something like this:
map<yourkey,value*> firstmap;
map<yourint,value*> secondmap;
...and then, whenever you have a new key/value pair, put it in both maps. You can then choose your sort order by selecting one map or the other for accessing.
A quick example:
#include <map>
typedef map<int,int> EXAMPLEMAP;
EXAMPLEMAP ExampleMap;
// Inserting elements
ExampleMap [10] = 20;
ExampleMap [12] = 30;
// Accessing all elements in order
for (EXAMPLEMAP::iterator i=ExampleMap.begin (); i!=ExampleMap.end (); i++) {
printf ("Key: %d; Value: %d\n, i->first, i->second);
}
// Same in reverse order
for (EXAMPLEMAP::reverse_iterator i=ExampleMap.begin (); i!=ExampleMap.end (); i++) {
printf ("Key: %d; Value: %d\n, i->first, i->second);
}
// Removing an element
ExampleMap.erase (15);
// Removing all elements
ExampleMap.clear ();
Hope this helps. Like I said, overhead is probably unacceptable to you, but it is useful for so many other cases that it is worth knowing about anyway.
If you like this check out the rest of STL as well. There are plenty of other useful datastructures in there.
Don't forget about that business with the British, and that statue, and what else... Something about Iraq I think?
If you are referring to their low speed - yes, they were slow by today's standards. But slow is not the same as braindead.
You should not think of C++ as a language, but as a language-toolkit. You use the tools in your toolkit to first construct your language, and then you use the newly-constructed language to solve your problem. Whether this is a feature or a bug I'll leave to others to decide ;-)
In your case you want to use vector for a dynamically sized array of thingies. It is part of STL.
(someone PLEASE show me how to do this with qsort() in C++ elegantly)
The most elegant solution is not to sort at all. If you want to store values that are identified through a sortable key, use map to store them. It is quick, easy, and after you do it a few hundred times the syntax will even start to make sense ;-)
Downloaded latest drivers from ATI. Uninstalled previous drivers, as required. Installed new drivers - setup crashes during installation. Repeat, same result.
Filed a bug report with ATI. First they want to know everything about you, then they give you a google-eye view of their problem database. Since I reported "driver crashes during installation" I was given such gems as "Windows crashes during boot". Did that help? Hell, no it did not.
Next page, then. Have I tried reseating the card? Rebooting Windows? Reinstalling my drivers? Thanks, wow! I'll be sure to try _that_ again. Not.
Finally, I could enter some text which I thought would go to a person. I (once again) entered my problem report and some personal data. I click on 'send'. Almost immediately I get a reply. I look at it, expecting a "thank you for mailing us" type mail. Turns out that instead I have received that google-eye view of their problem database - again, but this time in the mail. As if they were saying "We know you are an asshole who won't take the time to read our excellent solutions, so we'll just give you the same thing twice. Maybe that'll teach you."
There have been no other communications from ATI since then. That makes things simple for me: I won't do business with them. I have a product here that is unreliable and unsupported. I am looking to buy a new system soonish (to play Doom 3, which my current crate won't handle) and I was looking for a 9800. This episode has changed my mind: I'll get an FX. Hopefully the prices will come down a little bit. But wait, this is not yet the end...
Browsing around on the internet I then found a way to get the driver installed anyway, by going through some obscure route. This worked! And then I found out games that previously rendered in glorious 32 bit color were now limited to 16-bit color. I tried to find a solution to that for a couple of days more, and failed miserably.
In the end I put back my GF2. It is not fast or snazzy compared to more recent cards, but it has served me well so far. I'm also happy to report that I made good progress on Metal Gear Solid 2 since then.
The weirdest bit: after I put back the GF2 my machine immediately rebooted back into the Detonator drivers, but when I uninstalled the ATI crap it also wiped out the NVidia drivers. Thanks, ATI. I sure appreciate that kick in the butt, and I'll be sure to remember that when I buy my next card.
If I chose open source software I download a free copy of Linux, Open Office, and Evolution, and I have the rest developed for me. The local economy benefits because I get some software developed and because I pay someone to support my computer network and the software I installed.
If I chose proprietary software I buy a copy of Windows, Microsoft Office, and Outlook, and again I have the rest developed for me. The local economy benefits because I get some software developed and because I pay someone to support my computer network and the software I installed. Looks familiar?
The major difference between the two solutions is that in the first solution I am not sponsoring a foreign corporation (I'm not in the USA), leaving me more money that I can spend locally - on the software I commissioned, for example.
And if I were located in the USA the same argument would in all likelyhood still hold. Ask yourself how you profit from the $40e9 or so that Microsoft has lying around, or the ridiculous profits they announce every year. Would it not be better to plunge that money into a small local company that employs maybe 30 people and is willing to provide you with 24x7 support for your Linux systems?
The economy does not benefit from a single titanic company collecting a tax over all computers and software. It does benefit from those local companies. As a simple test, try this: enumerate all people you know who work in IT. How many work for Microsoft? How many work in a small 'local' company?
'Open Source' does not mean that all software development will stop. So many people need software, and they all need something slightly different, made to perfectly match what they are doing. Most software development is done on this basis, and Open Source will not change that need. Only software companies that sell pre-packaged solutions to large crowds need to fear it.
I think you give Microsoft too little credit here. This is just the visible component, but in the meantime they are also attempting to "outcompete" (for want of a better word) Linux and the open source movement, increase their hold on the PC (hardware) market, and build in a gadget that makes it impossible to pirate Windows or Office.
This is not about putting silly little icons on the screen, that's just a smokescreen. Look what other avenues are opened. Look what happens underneath.
Winamp: snaps to everything that's near and moves entire groups of windows when you only want to move one. And it cannot be resized.
Mediaplayer: also cannot be resized. And I can never find the close button.
Quicktime: resizing works strange, and there is no working maximize icon.
I really wouldn't mind if the OS would draw its own standardized window borders around everything.
Perhaps we can take this opportunity to kill all those spam accounts on hotmail. All we need to do is reset all the passwords to impossible strings...
Besides, it is hard to get a T1 in the middle of the ocean.