Coffin's law (inspired by Godwin's law): As an online discussion grows longer, the probability of an ad hominem attack approaches 1. As with Godwin's law, by making the ad hominem attack, you've ended the thread and automatically lost the argument on all counts.
Nope, it's a charged-base device like eprom or flash; the charge is on a floating gate, not a trench capacitor. Grandparent got it right.
The charge is in a floating gate, but it needs regular refreshing or the value will be lost. This is essentially identical to a normal DRAM and completely different from a Flash, EPROM or EEPROM (which retain charge without refresh or even power at all).
A DRAM doesn't necessarily use a trench capacitor either. Some do, but just for one other obvious example, there are also stacked capacitor DRAMs. IOW, DRAMs store data in capacitors of various types.
Now, if you look at a floating gate transistor, what do you really have? Take a look at this simplified diagram just for one example of what it's equivalent to (and note that this paper is talking about exactly the floating gate circuits used in EEPROMS and such...
You know what? I don't care. I want 2 16M DDR ZRAM chips in my computer RIGHT THIS SECOND.
Good luck with that. I seem to recall having heard that they had some test wafers run at a couple of different fabs, but I don't think they intended them for sale, only testing. While I don't think there's a lot of reason they couldn't be built as separate chips, it'd be awfully hard to compete with the bulk DRAM manufacturers.
Just for example, once upon a time you could buy DIMMs of memory from Enhanced Memory Systems. It had substantially lower latency than bulk DRAM, but EMS is dead and gone now. In fairness, I should add that EMS was owned by Ramtron, and was shut down primarily because Ramtron decided to put all their efforts into their ferro-electric RAM technology, not because EMS had any intrinsic problems.
OTOH, I'm pretty sure EMS never made any money off of memory sticks -- they made money off of (you guessed it) caches for microprocessors -- specifically caches for HP's PA-RISCs.
One more interesting detail: EMS's former VP of Engineering now works for ISi...
It has proven to be difficult to get this kind of technology working in production chips. The main difficulty is that process control becomes very very important. Your yields drop through the floor.
One of the major advantages of Z-RAM is that it doesn't require changes in the process (providing you're already using SOI, obviously). It doesn't seem to tighten the requirements on process control compared to a more conventional design either.
At the same time, it provides a substantial increase in memory density over SRAM. Depending on how they decide to spin it, AMD could use this to reduce chip sizes (and therefore improve yields) or maintain roughly the same chip size (and yield as they'd have had with SRAM) but substantially improve performance with much larger capacity L2 cache. It sounds like they're currently looking more at the second option, but I wouldn't be surprised if this gives them a bit more room for more differentiation between Semprons, Athlons, and Opterons.
Additionally, note that any 1T transistor technology is inherently a stored charge device (like EPROM, EEPROM or flash memory but different).
Half right. It is a stored charge device, but that makes it mostly like a DRAM.
It's a challenge. It might be possible.
It's certainly challenging, but you haven't mentioned what I understand is really one of the biggest challenges. From a memory viewpoint, this is a bit like a DRAM cell but it stores a much smaller charge than a conventional DRAM. the small charge means you have to design extremely quiet sense amps to keep the signal from being lost in the noise. If memory serves, however, they can/do use the transistor that makes up the cell as the first sense amp.
I don't see any particular reason to think that AMD is going to be the one to do it though. Intel are wizards at process technology, as evidenced by their movement to 65nm before AMD. They don't happen to use SOI though, that's about the only advantage AMD has in this situation that I can see.
SOI gives you a performance advantage roughly equivalent to one step smaller geometry, so AMD's 90 nm is roughly equivalent to Intel's 65 nm. IOW, AMD's process technology is almost a full generation ahead of Intel's right now. I'd also note that while SOI improves performance about as much as one step smaller of geometry, it does so without the increase in leakage that comes with the smaller geometry. As has already been mentioned elsethread, designing for it is more difficult, but the end result certainly seems to justify the extra work.
Disclaimer: a friend (and former coworker) of mine (in case you read this, Hi Dave!) now works at ISi, so there's a pretty fair chance that I'm at least a bit biased about them. I certainly wish them the best and was quite happy to see this particular bit of news.
The article says they reduced their estimate of frequency because they figure people who've been affected are more likely to respond than those who haven't.
I think the size of the loss will probably have a major effect as well. Somebody who's lost only twenty dollars is a lot less likely to respond than somebody who's lost fifty thousand.
There are also questionable cases. Consider something I hit about a year ago. Shortly after Cingular bought AT&T, I switched my cell phone to Verizon. Cingular continued to bill me few a few months after the switch. After a little arguing over it, they admitted they'd screwed up and cancelled the bill -- but then a month later (or so) sent the bill again, with a late fee added. I called them back up, argued about it, and they cancelled the bill again. After this happening for about three months, they turned it over to a bill colletion agency, and I argued with them instead.
Eventually, I wimped out and paid them instead of continuing to put time and effort into straightening out their mess. Now, first of all, I'm not at all sure whether this falls within the scope of the survey in the first place. My guess is that it's also basically accidental rather than a result of fraud. OTOH, it's somewhat open to question how long accidents can continue to happen without any apparent attempt to fix the problem before you have to figure their ignoring the problem is really intentional.
Anyway, my guess is that the average loss is probably more like tens or perhaps hundreds of dollars, rather than the tens of thousands they've estimated -- but I'd also guess that the problem is much more widespread than they've implied as well.
I still don't think this is any different than commercial software though.
In theory it's not. You have various software under various licenses, and you have to follow those licenses and report appropriately.
From a practical viewpoint, I can see where mistakes may be easier with OSS. To somebody with an accounting mentality, the fact that we spent money developing this (for one example) translates to "it's ours and we control everything about it." If they have (for example) a license agreement from MS that says what they can do with particular code, they have no major problem taking that into account, but that's mostly because they've (usually) been involved in, or are at least aware of, negotations over terms and such. Something like the GPL that may never have made it into their files, and isn't really open to negotation (who'd you negotiate with?) is easier for them to miss.
F/OSS just doesn't fit their mentality at all though -- for example, if a company takes Linux and tailors it for their market, their derived code to tailor it for that market will typically still fall under GPL.
Differences in mindset also makes miscommuncation easy. To a coder, ownership mostly implies responsibility. To an accountant, ownership mostly relates to money. When an accountant asks a coder "how much is our code worth", the coder will do his best to answer. A decent project manager (for example) will have a fair idea of what's been spent on development, and a product manager will know about the size of the potential market and such, so between the, they try to give an answer of what the code's worth -- all without thinking or realizing that when it's all GPL, there simply IS no such thing as "our code" at all, at least from the accounting viewpoint.
I suspect you are not the only one with that theory:)
Probably not.
Of course, if you are going to make mistakes, it helps to be large and/or brilliant. Prolongs the end. Like Kodak.
Kokak is a strange company -- they've fluctuated between looking worse and looking better for quite a while. Looking at their quarterly reports is (at least for me) an exercise in bewilderment. Their major market segments are growing and profitable -- and they lose so much in their "all other" stuff, that they're still losing money!
It's one thing to look at things and decide that something major is such a strategic market that you can put up with it losing money, at least for a while, but when things are so minor that they fall into the "all other" category, and you lose money on them (and not just for a little while either) that strikes me as truly strange.
Some of their other numbers just don't seem to add up at all, at least to me -- page 23 of their quarterly report gives earnings by categories. For each category, they give a raw number and then a percentage of the total, but I can't figure out how they relate to each other at all.
Anyway, I'd have a hard time writing Kodak off as just being on a downhill slide -- though it's awfully hard to see them particularly positively either...
I suspect that the law says that companies have to disclose what "intellectual property" they own, not what they use.
Sarbanes-Oxley says a lot, but as far as I can see, the law itself doesn't directly talk about intellectual property at all (e.g. a search for "intellectual" turns up no hits at all).
From reading through it, it looks to me like the basic requirements are 1) if the company in question is claiming part of the company's value is based on intellectual property, they need to report what it is and substantiate their claim, and 2) if they have liabilities, they disclose what they are.
With GPL software, they could be breaking either (or both) of the two. If they claim to own software that really falls under the GPL, that would probably violate the first part. If they don't report the fact that their violation of the GPL exposes them to liabilities, that would probably violate the second part. Note that the second only involves violation of the GPL, but the first could happen even if the GPL was actually being followed (i.e. they could be distributing source code to users who want it, but still claim in their annual report that what they were distributing belonged to them).
Keep in mind, however, that the summary I've given above is basically of what look to me like relevant parts of a long (66 pages) law that's mostly amendments to existing laws, so parts are hard to read. Worse, a lot of it directs the creation of a board, and then gives directions about what kinds of rules that board will make and enforce -- but a lot of the details are really in the board rules, not directly in the law itself. IOW, while I've tried to be reasonably accurate, if you're in a position where this matters much to you directly, you certainly do NOT want to take my word on any of this.
Quite a few comments, but none has noted one interesting point. At least AFAIK, this makes Konica the first company to truly leave the camera business for a second time.
There have been a number of others that have, for example, started out as German companies, then the name was bought and a Japanese company sold cameras under that name for a while, and finally the whole venture died, but Konica (the company itself, not just the name) has now exited the camera business for a second time. I'm not sure, but offhand, I can't think of anybody else who's really done that.
My other minor observation is that this seems a prime example of a theory I've been building for quite a while: to do well in the market, doing brilliant things matters a lot less than avoiding doing much that's really stpuid.
Konica and Minolta combined absolute brilliance with astounding stupidity. Canon (for one) has never introduced a feature like autofocus that has completely transformed the market, but they've mostly avoided massive stupidity, so the dominate the market.
Those who care to look might easily see something similar in comparing Apple with Microsoft.
Re:Where's my magnifying glass?
on
Web 3.0
·
· Score: 1
Amazingly (almost uniquely, anymore) when you ask your web browser to change the size of type on this page, it actually works! Given the rarity of this anymore, chances are you've accidentally set your browser to the smallest size available, simply because it's been five years (or so) since it really made a difference often enough to notice.
I hope you'll pardon a minor rant, but once upon a time, when we developed programs that ran on the user's computer, it was de rigeur to allow the user to control the color and size of text being displayed. Even when we were working in text mode so all the text was the same size, we at least allowed users control over the colors.
Now, the average web site has changed that completely -- in terms of actual responsiveness to the user's needs and/or wants, we're roughly back to the usability level of dumb terminals connected to a mainframe. You're only going to get something the way you want it if you happen to agree (in detail) with the designer of the web site about how you should get it.
From what I've seen, Web 2.0 mostly deals with the wrong things -- admittedly, much of what it attempts to do needs to be done as wall, but on a realistic list of priorities, none of it would even be in the top 20.
In fact, this duty goes much further: applicants are required (1) to have conducted at least a minimal search, (2) to disclose all known prior art that might be relevant, and (3) to assert their reasonable belief that the invention is still patentable in light of this prior art.
You certainly have to disclose any known prior art, and assert that you belive your invention should be patentable.
The minimal search is an entirely different story though. I've never heard such a statement before, and I don't see any such requirement in the applicable law or PTO rules. If this was required by a rule of the US PTO, I'd expect to see it somewhere in section 1.56. While this certainly requires that the applicant disclose any related art of which he is aware, it does not seem to contain any requirement that the applicant make any attempt (at all) make any attempt whatsoever at searching for art of which he is not aware.
This is one of the best suggestions for fixing the USPTO's examination system: start enforcing Rule 56 sanctions,
Rule 56? I'm guessing you mean 1.56? As noted above, only really attempts to prevent fraud. If somebody lives his entire life under a rock, and thinks he just invented fire, it's perfectly legal for him to file for an patent on it, as long as he remains truly ignorant (throughout the entire prosecution) that it's already known. Of course, if a patent agent or attorney was involved, they'd probably be in trouble for filing such a thing -- they're expected to at least have a little bit of a notion of what's going on. Likewise, we'd certainly hope that the PTO would notice the prior art on such a thing.
Even so, filing a patent for something reasonably well known is perfectly legitimate as long as everybody involved was ignorant of its prior invention/discovery -- and they're not required to do anything to cure themselves of their ignorance either.
For each instance where this is true, there are an equal number of instances where the "little guy" is strong-armed by the big guys.
I'm not at all sure I believe that. From what I've seen, "little guys" often get cease and desist letters related to (alleged) trademark infringement, but that's a whole different story -- a trademark holder is legally obliged to prevent the trademark from falling into common use, or they can (and will) lose protection on the trademark entirely.
Of course, it's open to question exactly what constitutes "strong-armed" -- certainly a company that holds a lot of patents will often send out letters telling people when they believe their patents are being infringed. Usually, these are sent primarily to other relatively large companies though -- anybody making less than $50M US per year or so would most likely only receive one by accident.
The reason for this is pretty simple: if they start something, they have to be prepared to finish it -- but they're not going to spend a million dollars on a lawsuit unless they have at least some possibility of it paying off, and patent royalty rates are typically around 1 to (maybe) 2 percent or so.
So, if they were to sue a $5M US per year company and win (and get their patent applied to the whole revenue stream), it would still take roughly 20 years worth of royalties (i.e. the entire life of the patent) just to break even on the lawsuit itself. You don't become a big company by investing a million dollars into something that will take 20 years just to recoup your investment, and stands absolutely no chance at all of ever making a profit. Of course, that assumes the target company makes the infringing product for the next 20 years -- which is a really lousy bet in anything high-tech at all. Realistically, if it won't break even within a couple of years (at most) it's just not worthwhile, because much past that the market is likely to change, the product become obsolete, etc. Of course, it's possible that the product may grow a lot during that time as well. If so, that's when the patent will be licensed -- to somebody who's not really a "little guy" anymore...
If you can't patent code, where is the incentive to research new algorithms.
You can't patent code -- you can patent (for exmaple) an article of manufacture that embodies the code, a method of operating a computer that happens to depend on code, etc.
That, however, is more or less beside the real point. The point of the patent system isn't primarily to encourage research, inventions, etc. Its point is to encourage people to publish their inventions, and to place them into the public domain in return for exclusive rights to them for a short time.
For those who've pointed out that software technology progressed before patents were allowed on software, I'd point out that while this is at least partly true, there are other things to keep in mind. At that time (up through about the seventies or so) software mostly wasn't an industry in itself. Most software was developed by hardware companies like IBM as what they had to do to sell their hardware. Since they saw the hardware as the real product, and the software as having no real value in itself, it was pretty easy for coders to publish what they did.
If there weren't patents today, I'm reasonably certain the situation would be a whole lot different. IBM (to reuse the previous example) has a software business that makes billions of dollars in itself. If they couldn't patent their inventions in this area, my guess is that they would not just publish them and given them away to everybody. Instead, they'd keep them secret.
The patent system is basically an investment on the part of the public. We don't have to put in money (directly) up-front, but we give the inventor some value, and in return we get full rights to their invention (eventually).
As far as bogus patents go: it's true that there are quite a few patents that are basically nonsense. Many aren't really original, and some don't even work at all (e.g. there are currently some in faster-than-light communication). That's more or less par for the course in investments though -- people diversify investments largely because they know at least some things they invest in are going to be complete losers. In addition, keep in mind that what we've given up is the value of the patent for a period of time -- if the patent has no value in the first place, we've given up exactly nothing. In fact, we get even a slightly better deal than that -- the patent office is profitable, so every time a completely bogus patent gets issued, our tax burden (and gov't debt) is reduced by some tiny fraction of a percent.
Admittedly, if you're in the position of the EU (for one example) you're pretty much getting the best of both worlds -- since most real inventions will be patented in the US anyway, you get the benefit of it being published, but without having to give the inventor anything in return.
Given that what we're investing is a limited period of exclusive rights, the real question (IMO) is mostly whether we're investing the right amount of time. This is basically a balance -- if the period of a patent is too short, the inventor is more likely to maintain something as a trade secret instead of patenting it. If the period is too long, we're increasing the cost, and decreasing the payoff. The question is how soon the invention is likely to become obsolete -- if most are obsolete before their patents expire, we're getting a lousy deal.
It might well be a new combination of features, but is that really patent-worthy?
I'm not sure I can say it is. I'd tend to agree that it might be open to some question -- but I also think there's a huge difference between something being open to some question, and being clearly bogus.
I'd also note that from the viewpoint of the patent office having done its job, this is a crucial difference. IMO, it's unfortunate, but the current US patent law favors issuing a patent if there's any real room for doubt. It basically says to apply for a patent, you have to sign an affidavit saying that as far as you know, this is really your own invention. From there, the burden of proof shifts to the patent office -- the law requires them to issue a patent unless they can show evidence that the invention in question is obvious, not original, etc. If there's room for much doubt at all, the PTO is legally obliged to issue the patent.
IMO, that's where a big part of the problem lies -- the assumption should really be that something really isn't new or novel until the patent applicant shows real evidence that it is, rather than being assumed to be new and novel until the patent office shows it's not.
The problem lies in the cost to litigate this - essentially ensuring that the "little guy" must bow to the pressures of the multi-national corporation.
Actually, the opposite tends to be true. The bad publicity associated with suing "little guys" tends to prevent big companies from suing. By contrast, lots of the little guys sue big companies all the time -- and quite a few make a good (sometimes almost unbelievable) living out of it too.
If you want a serious example, look up "Jerry Lemelson". In case, you want to see a serious example of how badly wrong Wikipedia can get things, look him up there to start with (if you know anything about him, it'll give you a good laugh).
Though he got hundreds of patents (and they may still be issuing) the only thing he ever invented (and I'm not sure he invented it, but he certainly used it a lot) was the submarine patent -- he'd keep patents "in the system" for years, often even decades. He'd write an initial patent that was exceptionally broad and vague, but then keep writing amendments to it for years at a time. Then, when somebody invented something roughly similar, he'd rewrite his old patent (that was still in the system) to cover what they invented, and claim he invented it decades earlier.
Just for one obvious example, he originally wrote a patent on a computer system. Later, when TI invented the microcontroller (i.e. CPU and peripherals on one chip) he rewrote his old computer system patent by basically adding "and...uh...all of that is on one chip." It took quite a long time, but eventually this did get sorted out in court -- the court fuled that his rewritten patent was invalid because the original application showed no evidence that he'd originally even contemplated what was really the important part of the invention -- moving the peripherals onto the same chip as the CPU.
TI did the right thing, fighting this all the way through court to get a bogus patent invalidated. Most companies, however, won't do that -- if the patent holder offers to settle for (say) half what they'd have to pay for the patent litigation itself, they'll just pay the money, and move on.
Given that a patent case will usually cost millions of dollars, it's pretty easy for "little guys" to go and basically blackmail big companies into giving them a few hundred thousand dollars (or so) with even a thoroughly bogus patent. The afore-mentioned Jerry Lemelson did exactly this to the tune of billions of dollars. Despite the money he made (and his estate still makes, as I understand things) he did stay a little guy in terms of (complete lack of) integrity though.
The amplitude of the tide is much higher during a new moon and a full moon.
Getting pretty badly off-topic, but as-stated, that doesn't seem (to me) to make a lot of sense.
I'd think the tide would be maximized at new moon, and minimized at full moon. The sun and moon are aligned in both cases, but during full moon, the moon and sun are on opposite sides of the earth, so the gravity from the sun and moon are in direct opposition to each other. Perhaps I'm missing something, but it seems like that should reduce the amplitude, shouldn't it?
If you wanted to get technical, there's also the tilt of the moon's orbit to take into account -- which normally causes a mild mis-alignment between the two. The truly maximum tide should be during a solar eclipse, and the minimum during a lunar eclipse, I'd think.
During a half moon the moon and the sun's gravity pull at right angles resulting in a lower tide amplitude.
At half-moon, they're at (roughly) right angles all right, but that shouldn't minimize the tide -- you should get two basically separate tides (one lunar, one solar), each at it's own amplitude, with neither reinforcing nor reducing the other.
While this judge's message may seem absurd, remember to pay royalties when you code a progress bar in your application.
Like most such citations, you apparently have NOT really read the patent claims (or even disclosure) -- it seems to be much more speicific than you imply. As usual, the patent itself contains a discussion of the related art that says: "Users typically need or desire to know the status of such tasks running in the background. Heretofore, this need has been accommodated by displaying a dialog box with a progress indicator on it for one or more background operations (also referred to as tasks)."
IOW, the patent itself openly acknowledges that progress bars (of various sorts) were already well known, and the patent itself is much more specific. In particular, the patent only seems to cover a progress bar that's embedded into a status bar AND accompanied by a button that allows the user to do something that affects whatever task the progress bar is related to.
Say, have any of you Java swing programmers ever typed
JProgressBar myJPB = new JProgressBar();
Hmm...does this embed the progress bar into a status bar and create an associated button to allow the user to affect the task associated with the progress bar?
Because I was thinking of starting a patent lawyer career, [...]
Why don't you start by just being a reasonably well-informed layperson. The first step would be to learn that (barely) glancing at a patent abstract does not tell you what the patent covers. Much like the abstract to a scientific paper, the abstract of a patent gives a minimal description of the general sort of thing that's covered by the patent. Only the claims tell you what the patent really covers.
Is it true that Microsoft didn't patch all versions of Windows?
It is true that there is no patch for Win 9x/Me. It is also true that they weren't affected in the first place.
Is this a sneaky way to force upgrades on older OS's?
The only OSes to which this could apply would be NT 3.1, 3.5, 3.51 and 4.0. MS has been far from sneaky in saying that nobody who cares at all about security should even consider running these anymore.
I haven't re-installed any of these dinosaurs to check, but my immediate guess would be that pre-4.0, this wasn't nearly as major of a problem in any case. Before NT 4.0, GDI was implemented as a protected server (i.e. a separate process) rather than living inside of the kernel. With NT 4.0, they moved GDI into the kernel, which improved graphics performance, but also made GDI much more effective as an attack vector.
FWIW, I believe Windows Vista is supposed to move the graphics back out of the kernel again...
The 9X series of windows is still in wide use ESPECIALLY by paying customer, pirates can afford to have the latest, and MS is telling them that it can't be bothered to fix it.
RTFA. Win 9x is not vulnerable to this problem at all. Never has been.
Of course, if you care a bit about security, you should ditch Win 9x (and Me) immediately and never look back, but this is not an example of one of their many vulnerabilities.
Yeah, so? Most bugs of this kind is triggered by passing "broken" data.
It's important (from MS' viewpoint) because Gibson used the incorrect data to support a claim that this was an intentional backdoor. Given Gibson's general modus operandi, I'm sure the data being entirely incorrect won't slow him down a bit, but at least anybody with a somewhat unclouded view of reality realizes he was full of nonsense.
While you can trigger this with broken data, those who RTFA realize that the broken data is entirely incidental.
Re:It will be a happy day...
on
Demise of C++?
·
· Score: 2, Interesting
When C++ is finally a thing of the past, to be replaced by something like D.
While D certainly has some good points, I'm not entirely certain that even Walter Bright is certain it's entirely ready to take over as the premier language. Since you posted as AC I don't know if you read or participate on comp.lang.c++[.moderated] on a regular basis, but if you've been following all the threads, you'll notice where DbC is being discussed, and D is being used as a prime example of how to completely screw things up. Walter is participating in those threads, but so far he seems mostly interested in learning how things should work rather than claiming that D really has it right (for those who didn't realize it, Walter Bright was the inventor of D, as well as the author of the Datalight/Zortech/Symantech/Digital Mars C compilers for C, C++ and D).
Recently I've been learning C++ from a book many consider to be C++'s "Bible": C++ Primer 4th Edition
Ah, it sounds like you probably do not follow the NG much, if at all -- if you did, I'm sure you'd realize that for people who already know programming reasonably well in some other language, Accelerated C++ is, far and away, the recommended book.
Coming from a Java background, I find it difficult to understand the reason for all the const parameters, how C++ uses iterators and how *iter is something completely different from what I'm used to it meaning in C.
The reason for const parameters is simple: they restrict your access to the object so passed. Restricting access as much as possible at any given time prevents accidents, making for safer programs. '*anything' has roughly the same meaning it has in C -- you have a pointer(-like object) and '*' dereferences it. It's possible to overload the (unary version of the) * operator (or nearly any other operator) to do something entirely different, but it's generally poor style to do so. Operator overloading does give the programmer the power to do really bad things, and produce horribly obfuscated code, but it allows the programmer to do really good things, and produce much clearer code than is generally possible without it (e.g. overloading for matrices and complex numbers).
You can somehow pass C-strings to C++ string parameters and they will be automatically converted.
Specifically, it's converted by a constructor. That's exactly what the constructor is for, and it's apparently doing its job exactly as designed. Do you have some objection to things working as they're supposed to?
Initialization lists are horrible, a function can be declared virtual and const (seemingly pointless "features" when in Java all methods are virtual).
This is far from a pointless feature -- while most Java textbooks fail to mention it, this is one of Java's larger shortcomings. Making a function non-virtual says something specific about the design -- that the function in question is invariant across all descendants. The Java language simply fails to allow that concept to be expressed.
Declaring a method const also has a specific meaning -- that the method in question does not alter the logical state of the object. Again, this contributes to the safety of programming. It's true that many languages are utter failures in this regard, but this is an area of strength in C++, and rather a shortcoming in many alternatives.
No garbage collection makes programming a pain and error-prone.
Rather the opposite. GC and it's non-deterministic destruction (finalization) of objects prevents you from using RAII. The fundamental difference here is that RAII can be applied to nearly all kinds of resource management, where GC only applies to memory.
Back before RAII was well developed (or at least before I u
which puts it just inside the closest approach of Saturn, but well outside Jupiter's orbit.
That depends a lot on perspective. As distances between stars go, that's really quite close. Keep in mind that the sun is a fairly small star. For comparison, however, compare this orbit to the diameter of Betelgeuse.
Admittedly, Betelgeuse is huge -- a supergiant, AAMOF. Nonetheless, we're talking about a size that would basically put the two into direct contact --though, admittedly, "contact" with Betelgeuse is a somewhat tenuous term, given that at the outside, it's basically a vacuum (i.e. lower density than our atmosphere).
While I realize this isn't (and isn't intended to be) a cell phone that talks to the normal cell phone carriers, is there any particular reason it can't/couldn't be set up to talk to a VoIP carrier like Skype?
It seems like a Bluetooth headset and a WiFi connection should allow it to do that, no? If so, that'd be rather a slick setup -- it's a bit larger than most of the PocketPCs that support Skype right now, but it also has a considerably larger, nicer screen than they do, making it considerably more usable for other purposes.
...And why are softwares so buggy and have such a lousy reputation anyway? Not to start a flamewar, but let's just list a few possible "reaons" here:
You've forgotten a big one -- maybe even the single biggest one. Most of these high-reliability systems are built as exactly that: a complete, basically closed system.
By contrast, most "normal" software is written as a single component in a much larger system. The developer can (and nearly needs to) maintain a few different systems with different hardware, software, etc., but in the end, he can't even hope to test his program on all the different combinations of hardware and software (e.g. drivers) that the users will have on their machines -- not to mention what they'll be using five years from now!
Coffin's law (inspired by Godwin's law): As an online discussion grows longer, the probability of an ad hominem attack approaches 1. As with Godwin's law, by making the ad hominem attack, you've ended the thread and automatically lost the argument on all counts.
The charge is in a floating gate, but it needs regular refreshing or the value will be lost. This is essentially identical to a normal DRAM and completely different from a Flash, EPROM or EEPROM (which retain charge without refresh or even power at all).
A DRAM doesn't necessarily use a trench capacitor either. Some do, but just for one other obvious example, there are also stacked capacitor DRAMs. IOW, DRAMs store data in capacitors of various types.
Now, if you look at a floating gate transistor, what do you really have? Take a look at this simplified diagram just for one example of what it's equivalent to (and note that this paper is talking about exactly the floating gate circuits used in EEPROMS and such...
Good luck with that. I seem to recall having heard that they had some test wafers run at a couple of different fabs, but I don't think they intended them for sale, only testing. While I don't think there's a lot of reason they couldn't be built as separate chips, it'd be awfully hard to compete with the bulk DRAM manufacturers.
Just for example, once upon a time you could buy DIMMs of memory from Enhanced Memory Systems. It had substantially lower latency than bulk DRAM, but EMS is dead and gone now. In fairness, I should add that EMS was owned by Ramtron, and was shut down primarily because Ramtron decided to put all their efforts into their ferro-electric RAM technology, not because EMS had any intrinsic problems.
OTOH, I'm pretty sure EMS never made any money off of memory sticks -- they made money off of (you guessed it) caches for microprocessors -- specifically caches for HP's PA-RISCs.
One more interesting detail: EMS's former VP of Engineering now works for ISi...
One of the major advantages of Z-RAM is that it doesn't require changes in the process (providing you're already using SOI, obviously). It doesn't seem to tighten the requirements on process control compared to a more conventional design either.
At the same time, it provides a substantial increase in memory density over SRAM. Depending on how they decide to spin it, AMD could use this to reduce chip sizes (and therefore improve yields) or maintain roughly the same chip size (and yield as they'd have had with SRAM) but substantially improve performance with much larger capacity L2 cache. It sounds like they're currently looking more at the second option, but I wouldn't be surprised if this gives them a bit more room for more differentiation between Semprons, Athlons, and Opterons.
Half right. It is a stored charge device, but that makes it mostly like a DRAM.
It's certainly challenging, but you haven't mentioned what I understand is really one of the biggest challenges. From a memory viewpoint, this is a bit like a DRAM cell but it stores a much smaller charge than a conventional DRAM. the small charge means you have to design extremely quiet sense amps to keep the signal from being lost in the noise. If memory serves, however, they can/do use the transistor that makes up the cell as the first sense amp.SOI gives you a performance advantage roughly equivalent to one step smaller geometry, so AMD's 90 nm is roughly equivalent to Intel's 65 nm. IOW, AMD's process technology is almost a full generation ahead of Intel's right now. I'd also note that while SOI improves performance about as much as one step smaller of geometry, it does so without the increase in leakage that comes with the smaller geometry. As has already been mentioned elsethread, designing for it is more difficult, but the end result certainly seems to justify the extra work.
Disclaimer: a friend (and former coworker) of mine (in case you read this, Hi Dave!) now works at ISi, so there's a pretty fair chance that I'm at least a bit biased about them. I certainly wish them the best and was quite happy to see this particular bit of news.
The Z-RAM technology only applies to SOI. Without SOI, the entire basis on which it works simply doesn't exist.
I think the size of the loss will probably have a major effect as well. Somebody who's lost only twenty dollars is a lot less likely to respond than somebody who's lost fifty thousand.
There are also questionable cases. Consider something I hit about a year ago. Shortly after Cingular bought AT&T, I switched my cell phone to Verizon. Cingular continued to bill me few a few months after the switch. After a little arguing over it, they admitted they'd screwed up and cancelled the bill -- but then a month later (or so) sent the bill again, with a late fee added. I called them back up, argued about it, and they cancelled the bill again. After this happening for about three months, they turned it over to a bill colletion agency, and I argued with them instead.
Eventually, I wimped out and paid them instead of continuing to put time and effort into straightening out their mess. Now, first of all, I'm not at all sure whether this falls within the scope of the survey in the first place. My guess is that it's also basically accidental rather than a result of fraud. OTOH, it's somewhat open to question how long accidents can continue to happen without any apparent attempt to fix the problem before you have to figure their ignoring the problem is really intentional.
Anyway, my guess is that the average loss is probably more like tens or perhaps hundreds of dollars, rather than the tens of thousands they've estimated -- but I'd also guess that the problem is much more widespread than they've implied as well.
In theory it's not. You have various software under various licenses, and you have to follow those licenses and report appropriately.
From a practical viewpoint, I can see where mistakes may be easier with OSS. To somebody with an accounting mentality, the fact that we spent money developing this (for one example) translates to "it's ours and we control everything about it." If they have (for example) a license agreement from MS that says what they can do with particular code, they have no major problem taking that into account, but that's mostly because they've (usually) been involved in, or are at least aware of, negotations over terms and such. Something like the GPL that may never have made it into their files, and isn't really open to negotation (who'd you negotiate with?) is easier for them to miss.
F/OSS just doesn't fit their mentality at all though -- for example, if a company takes Linux and tailors it for their market, their derived code to tailor it for that market will typically still fall under GPL.
Differences in mindset also makes miscommuncation easy. To a coder, ownership mostly implies responsibility. To an accountant, ownership mostly relates to money. When an accountant asks a coder "how much is our code worth", the coder will do his best to answer. A decent project manager (for example) will have a fair idea of what's been spent on development, and a product manager will know about the size of the potential market and such, so between the, they try to give an answer of what the code's worth -- all without thinking or realizing that when it's all GPL, there simply IS no such thing as "our code" at all, at least from the accounting viewpoint.
Probably not.
Kokak is a strange company -- they've fluctuated between looking worse and looking better for quite a while. Looking at their quarterly reports is (at least for me) an exercise in bewilderment. Their major market segments are growing and profitable -- and they lose so much in their "all other" stuff, that they're still losing money!
It's one thing to look at things and decide that something major is such a strategic market that you can put up with it losing money, at least for a while, but when things are so minor that they fall into the "all other" category, and you lose money on them (and not just for a little while either) that strikes me as truly strange.
Some of their other numbers just don't seem to add up at all, at least to me -- page 23 of their quarterly report gives earnings by categories. For each category, they give a raw number and then a percentage of the total, but I can't figure out how they relate to each other at all.
Anyway, I'd have a hard time writing Kodak off as just being on a downhill slide -- though it's awfully hard to see them particularly positively either...
Sarbanes-Oxley says a lot, but as far as I can see, the law itself doesn't directly talk about intellectual property at all (e.g. a search for "intellectual" turns up no hits at all).
From reading through it, it looks to me like the basic requirements are 1) if the company in question is claiming part of the company's value is based on intellectual property, they need to report what it is and substantiate their claim, and 2) if they have liabilities, they disclose what they are.
With GPL software, they could be breaking either (or both) of the two. If they claim to own software that really falls under the GPL, that would probably violate the first part. If they don't report the fact that their violation of the GPL exposes them to liabilities, that would probably violate the second part. Note that the second only involves violation of the GPL, but the first could happen even if the GPL was actually being followed (i.e. they could be distributing source code to users who want it, but still claim in their annual report that what they were distributing belonged to them).
Keep in mind, however, that the summary I've given above is basically of what look to me like relevant parts of a long (66 pages) law that's mostly amendments to existing laws, so parts are hard to read. Worse, a lot of it directs the creation of a board, and then gives directions about what kinds of rules that board will make and enforce -- but a lot of the details are really in the board rules, not directly in the law itself. IOW, while I've tried to be reasonably accurate, if you're in a position where this matters much to you directly, you certainly do NOT want to take my word on any of this.
There have been a number of others that have, for example, started out as German companies, then the name was bought and a Japanese company sold cameras under that name for a while, and finally the whole venture died, but Konica (the company itself, not just the name) has now exited the camera business for a second time. I'm not sure, but offhand, I can't think of anybody else who's really done that.
My other minor observation is that this seems a prime example of a theory I've been building for quite a while: to do well in the market, doing brilliant things matters a lot less than avoiding doing much that's really stpuid.
Konica and Minolta combined absolute brilliance with astounding stupidity. Canon (for one) has never introduced a feature like autofocus that has completely transformed the market, but they've mostly avoided massive stupidity, so the dominate the market.
Those who care to look might easily see something similar in comparing Apple with Microsoft.
I hope you'll pardon a minor rant, but once upon a time, when we developed programs that ran on the user's computer, it was de rigeur to allow the user to control the color and size of text being displayed. Even when we were working in text mode so all the text was the same size, we at least allowed users control over the colors.
Now, the average web site has changed that completely -- in terms of actual responsiveness to the user's needs and/or wants, we're roughly back to the usability level of dumb terminals connected to a mainframe. You're only going to get something the way you want it if you happen to agree (in detail) with the designer of the web site about how you should get it.
From what I've seen, Web 2.0 mostly deals with the wrong things -- admittedly, much of what it attempts to do needs to be done as wall, but on a realistic list of priorities, none of it would even be in the top 20.
You certainly have to disclose any known prior art, and assert that you belive your invention should be patentable.
The minimal search is an entirely different story though. I've never heard such a statement before, and I don't see any such requirement in the applicable law or PTO rules. If this was required by a rule of the US PTO, I'd expect to see it somewhere in section 1.56. While this certainly requires that the applicant disclose any related art of which he is aware, it does not seem to contain any requirement that the applicant make any attempt (at all) make any attempt whatsoever at searching for art of which he is not aware.
Rule 56? I'm guessing you mean 1.56? As noted above, only really attempts to prevent fraud. If somebody lives his entire life under a rock, and thinks he just invented fire, it's perfectly legal for him to file for an patent on it, as long as he remains truly ignorant (throughout the entire prosecution) that it's already known. Of course, if a patent agent or attorney was involved, they'd probably be in trouble for filing such a thing -- they're expected to at least have a little bit of a notion of what's going on. Likewise, we'd certainly hope that the PTO would notice the prior art on such a thing.
Even so, filing a patent for something reasonably well known is perfectly legitimate as long as everybody involved was ignorant of its prior invention/discovery -- and they're not required to do anything to cure themselves of their ignorance either.
I'm not at all sure I believe that. From what I've seen, "little guys" often get cease and desist letters related to (alleged) trademark infringement, but that's a whole different story -- a trademark holder is legally obliged to prevent the trademark from falling into common use, or they can (and will) lose protection on the trademark entirely.
Of course, it's open to question exactly what constitutes "strong-armed" -- certainly a company that holds a lot of patents will often send out letters telling people when they believe their patents are being infringed. Usually, these are sent primarily to other relatively large companies though -- anybody making less than $50M US per year or so would most likely only receive one by accident.
The reason for this is pretty simple: if they start something, they have to be prepared to finish it -- but they're not going to spend a million dollars on a lawsuit unless they have at least some possibility of it paying off, and patent royalty rates are typically around 1 to (maybe) 2 percent or so.
So, if they were to sue a $5M US per year company and win (and get their patent applied to the whole revenue stream), it would still take roughly 20 years worth of royalties (i.e. the entire life of the patent) just to break even on the lawsuit itself. You don't become a big company by investing a million dollars into something that will take 20 years just to recoup your investment, and stands absolutely no chance at all of ever making a profit. Of course, that assumes the target company makes the infringing product for the next 20 years -- which is a really lousy bet in anything high-tech at all. Realistically, if it won't break even within a couple of years (at most) it's just not worthwhile, because much past that the market is likely to change, the product become obsolete, etc. Of course, it's possible that the product may grow a lot during that time as well. If so, that's when the patent will be licensed -- to somebody who's not really a "little guy" anymore...
You can't patent code -- you can patent (for exmaple) an article of manufacture that embodies the code, a method of operating a computer that happens to depend on code, etc.
That, however, is more or less beside the real point. The point of the patent system isn't primarily to encourage research, inventions, etc. Its point is to encourage people to publish their inventions, and to place them into the public domain in return for exclusive rights to them for a short time.
For those who've pointed out that software technology progressed before patents were allowed on software, I'd point out that while this is at least partly true, there are other things to keep in mind. At that time (up through about the seventies or so) software mostly wasn't an industry in itself. Most software was developed by hardware companies like IBM as what they had to do to sell their hardware. Since they saw the hardware as the real product, and the software as having no real value in itself, it was pretty easy for coders to publish what they did.
If there weren't patents today, I'm reasonably certain the situation would be a whole lot different. IBM (to reuse the previous example) has a software business that makes billions of dollars in itself. If they couldn't patent their inventions in this area, my guess is that they would not just publish them and given them away to everybody. Instead, they'd keep them secret.
The patent system is basically an investment on the part of the public. We don't have to put in money (directly) up-front, but we give the inventor some value, and in return we get full rights to their invention (eventually).
As far as bogus patents go: it's true that there are quite a few patents that are basically nonsense. Many aren't really original, and some don't even work at all (e.g. there are currently some in faster-than-light communication). That's more or less par for the course in investments though -- people diversify investments largely because they know at least some things they invest in are going to be complete losers. In addition, keep in mind that what we've given up is the value of the patent for a period of time -- if the patent has no value in the first place, we've given up exactly nothing. In fact, we get even a slightly better deal than that -- the patent office is profitable, so every time a completely bogus patent gets issued, our tax burden (and gov't debt) is reduced by some tiny fraction of a percent.
Admittedly, if you're in the position of the EU (for one example) you're pretty much getting the best of both worlds -- since most real inventions will be patented in the US anyway, you get the benefit of it being published, but without having to give the inventor anything in return.
Given that what we're investing is a limited period of exclusive rights, the real question (IMO) is mostly whether we're investing the right amount of time. This is basically a balance -- if the period of a patent is too short, the inventor is more likely to maintain something as a trade secret instead of patenting it. If the period is too long, we're increasing the cost, and decreasing the payoff. The question is how soon the invention is likely to become obsolete -- if most are obsolete before their patents expire, we're getting a lousy deal.
I'm not sure I can say it is. I'd tend to agree that it might be open to some question -- but I also think there's a huge difference between something being open to some question, and being clearly bogus.
I'd also note that from the viewpoint of the patent office having done its job, this is a crucial difference. IMO, it's unfortunate, but the current US patent law favors issuing a patent if there's any real room for doubt. It basically says to apply for a patent, you have to sign an affidavit saying that as far as you know, this is really your own invention. From there, the burden of proof shifts to the patent office -- the law requires them to issue a patent unless they can show evidence that the invention in question is obvious, not original, etc. If there's room for much doubt at all, the PTO is legally obliged to issue the patent.
IMO, that's where a big part of the problem lies -- the assumption should really be that something really isn't new or novel until the patent applicant shows real evidence that it is, rather than being assumed to be new and novel until the patent office shows it's not.
Actually, the opposite tends to be true. The bad publicity associated with suing "little guys" tends to prevent big companies from suing. By contrast, lots of the little guys sue big companies all the time -- and quite a few make a good (sometimes almost unbelievable) living out of it too.
If you want a serious example, look up "Jerry Lemelson". In case, you want to see a serious example of how badly wrong Wikipedia can get things, look him up there to start with (if you know anything about him, it'll give you a good laugh).
Though he got hundreds of patents (and they may still be issuing) the only thing he ever invented (and I'm not sure he invented it, but he certainly used it a lot) was the submarine patent -- he'd keep patents "in the system" for years, often even decades. He'd write an initial patent that was exceptionally broad and vague, but then keep writing amendments to it for years at a time. Then, when somebody invented something roughly similar, he'd rewrite his old patent (that was still in the system) to cover what they invented, and claim he invented it decades earlier.
Just for one obvious example, he originally wrote a patent on a computer system. Later, when TI invented the microcontroller (i.e. CPU and peripherals on one chip) he rewrote his old computer system patent by basically adding "and...uh...all of that is on one chip." It took quite a long time, but eventually this did get sorted out in court -- the court fuled that his rewritten patent was invalid because the original application showed no evidence that he'd originally even contemplated what was really the important part of the invention -- moving the peripherals onto the same chip as the CPU.
TI did the right thing, fighting this all the way through court to get a bogus patent invalidated. Most companies, however, won't do that -- if the patent holder offers to settle for (say) half what they'd have to pay for the patent litigation itself, they'll just pay the money, and move on.
Given that a patent case will usually cost millions of dollars, it's pretty easy for "little guys" to go and basically blackmail big companies into giving them a few hundred thousand dollars (or so) with even a thoroughly bogus patent. The afore-mentioned Jerry Lemelson did exactly this to the tune of billions of dollars. Despite the money he made (and his estate still makes, as I understand things) he did stay a little guy in terms of (complete lack of) integrity though.
Getting pretty badly off-topic, but as-stated, that doesn't seem (to me) to make a lot of sense.
I'd think the tide would be maximized at new moon, and minimized at full moon. The sun and moon are aligned in both cases, but during full moon, the moon and sun are on opposite sides of the earth, so the gravity from the sun and moon are in direct opposition to each other. Perhaps I'm missing something, but it seems like that should reduce the amplitude, shouldn't it?
If you wanted to get technical, there's also the tilt of the moon's orbit to take into account -- which normally causes a mild mis-alignment between the two. The truly maximum tide should be during a solar eclipse, and the minimum during a lunar eclipse, I'd think.
At half-moon, they're at (roughly) right angles all right, but that shouldn't minimize the tide -- you should get two basically separate tides (one lunar, one solar), each at it's own amplitude, with neither reinforcing nor reducing the other.
Like most such citations, you apparently have NOT really read the patent claims (or even disclosure) -- it seems to be much more speicific than you imply. As usual, the patent itself contains a discussion of the related art that says: "Users typically need or desire to know the status of such tasks running in the background. Heretofore, this need has been accommodated by displaying a dialog box with a progress indicator on it for one or more background operations (also referred to as tasks)."
IOW, the patent itself openly acknowledges that progress bars (of various sorts) were already well known, and the patent itself is much more specific. In particular, the patent only seems to cover a progress bar that's embedded into a status bar AND accompanied by a button that allows the user to do something that affects whatever task the progress bar is related to.
Hmm...does this embed the progress bar into a status bar and create an associated button to allow the user to affect the task associated with the progress bar?
Why don't you start by just being a reasonably well-informed layperson. The first step would be to learn that (barely) glancing at a patent abstract does not tell you what the patent covers. Much like the abstract to a scientific paper, the abstract of a patent gives a minimal description of the general sort of thing that's covered by the patent. Only the claims tell you what the patent really covers.
It is true that there is no patch for Win 9x/Me. It is also true that they weren't affected in the first place.
The only OSes to which this could apply would be NT 3.1, 3.5, 3.51 and 4.0. MS has been far from sneaky in saying that nobody who cares at all about security should even consider running these anymore.
I haven't re-installed any of these dinosaurs to check, but my immediate guess would be that pre-4.0, this wasn't nearly as major of a problem in any case. Before NT 4.0, GDI was implemented as a protected server (i.e. a separate process) rather than living inside of the kernel. With NT 4.0, they moved GDI into the kernel, which improved graphics performance, but also made GDI much more effective as an attack vector.
FWIW, I believe Windows Vista is supposed to move the graphics back out of the kernel again...
RTFA. Win 9x is not vulnerable to this problem at all. Never has been.
Of course, if you care a bit about security, you should ditch Win 9x (and Me) immediately and never look back, but this is not an example of one of their many vulnerabilities.
It's important (from MS' viewpoint) because Gibson used the incorrect data to support a claim that this was an intentional backdoor. Given Gibson's general modus operandi, I'm sure the data being entirely incorrect won't slow him down a bit, but at least anybody with a somewhat unclouded view of reality realizes he was full of nonsense.
While you can trigger this with broken data, those who RTFA realize that the broken data is entirely incidental.
While D certainly has some good points, I'm not entirely certain that even Walter Bright is certain it's entirely ready to take over as the premier language. Since you posted as AC I don't know if you read or participate on comp.lang.c++[.moderated] on a regular basis, but if you've been following all the threads, you'll notice where DbC is being discussed, and D is being used as a prime example of how to completely screw things up. Walter is participating in those threads, but so far he seems mostly interested in learning how things should work rather than claiming that D really has it right (for those who didn't realize it, Walter Bright was the inventor of D, as well as the author of the Datalight/Zortech/Symantech/Digital Mars C compilers for C, C++ and D).
Ah, it sounds like you probably do not follow the NG much, if at all -- if you did, I'm sure you'd realize that for people who already know programming reasonably well in some other language, Accelerated C++ is, far and away, the recommended book.
The reason for const parameters is simple: they restrict your access to the object so passed. Restricting access as much as possible at any given time prevents accidents, making for safer programs. '*anything' has roughly the same meaning it has in C -- you have a pointer(-like object) and '*' dereferences it. It's possible to overload the (unary version of the) * operator (or nearly any other operator) to do something entirely different, but it's generally poor style to do so. Operator overloading does give the programmer the power to do really bad things, and produce horribly obfuscated code, but it allows the programmer to do really good things, and produce much clearer code than is generally possible without it (e.g. overloading for matrices and complex numbers).
Specifically, it's converted by a constructor. That's exactly what the constructor is for, and it's apparently doing its job exactly as designed. Do you have some objection to things working as they're supposed to?
This is far from a pointless feature -- while most Java textbooks fail to mention it, this is one of Java's larger shortcomings. Making a function non-virtual says something specific about the design -- that the function in question is invariant across all descendants. The Java language simply fails to allow that concept to be expressed.
Declaring a method const also has a specific meaning -- that the method in question does not alter the logical state of the object. Again, this contributes to the safety of programming. It's true that many languages are utter failures in this regard, but this is an area of strength in C++, and rather a shortcoming in many alternatives.
Rather the opposite. GC and it's non-deterministic destruction (finalization) of objects prevents you from using RAII. The fundamental difference here is that RAII can be applied to nearly all kinds of resource management, where GC only applies to memory.
Back before RAII was well developed (or at least before I u
That depends a lot on perspective. As distances between stars go, that's really quite close. Keep in mind that the sun is a fairly small star. For comparison, however, compare this orbit to the diameter of Betelgeuse.
Admittedly, Betelgeuse is huge -- a supergiant, AAMOF. Nonetheless, we're talking about a size that would basically put the two into direct contact --though, admittedly, "contact" with Betelgeuse is a somewhat tenuous term, given that at the outside, it's basically a vacuum (i.e. lower density than our atmosphere).
It seems like a Bluetooth headset and a WiFi connection should allow it to do that, no? If so, that'd be rather a slick setup -- it's a bit larger than most of the PocketPCs that support Skype right now, but it also has a considerably larger, nicer screen than they do, making it considerably more usable for other purposes.
By contrast, most "normal" software is written as a single component in a much larger system. The developer can (and nearly needs to) maintain a few different systems with different hardware, software, etc., but in the end, he can't even hope to test his program on all the different combinations of hardware and software (e.g. drivers) that the users will have on their machines -- not to mention what they'll be using five years from now!