Many here may be pissed about the GIF issue, but UniSys's finantial situation has neither gained nor lost because of it.
That's the whole problem. Unisys probably raked in a few megabucks on GIF patents. However, their enforcement threats imposed huge costs of accounting on the rest of the world.
Considering lost time, productivity, recoding and legal fees, this episode undoubtedly cost the world at large many times what Unisys ever made on the patent.
There probably ought to be provisions added to patent laws to compensate innocent parties for their unexpected costs when they are suddenly forced to comply with submarine patents.
If, hypothetically, the supply of free OSS developers dried up, then IBM, SCO, Sun and Apple will have to hire some if they want to continue to evolve their products. Is there some problem with that?
There are more advantages to DOS than just the simplicity of single-tasking. Before version 2.0, DOS didn't support directories. Could reverting to DOS 1.0 simplify searches and end user confusion over file system hierarchies as well? I think that the WinFS team should take a look.
(Opens search dialog:) => Where is the 3rd quarter inventory report for Consolidated Products?
(The animated dog instantly replies:) => It's on C:
If you constantly recorded an MP3 at a decent 1MB/minute rate for an entire lifetime of 80 years, you would end up with 4.2e13 bytes, which is only 42% of 100 TB. So you could record every sound you experience or produce, with room to spare.
THE INSTANT ANY CPU WRITES A ONE TO GO!!, ALL THE CPUS KNOW IT!! AND CAN START WORKING INSTANTLY!
How do they know? By cache coherence signals transferred between the CPUs. This isn't free and consumes bus bandwidth.
The first CPU can't "instantly" write the value either, because it must first obtain exclusive ownership of that cache line by checking with the other CPUs.
On the Opteron architecture (we call this NUMA, or "point-to-point"), as soon as one CPU writes a value to the 'GO!!' area, well, that's _just the beginning_. It has to tell another CPU in the system that it just did that. etc etc
It has to use some communication resource to update the other CPUs on the state of that cache line. Just like the bus-based situation.
What do you advocate then? Protectionism, trade-barriers, wage and price controls? These have all been tried before by many economies at many different times. In the short run a few jobs here and there are kept at home, but in the long run those types of measures create very lazy and non-competitive companies that produce shoddy goods and services at very high prices.
If you read what I said, I wasn't trying to protect jobs. I said that these jobs are disappearing either way. The goal is to prevent accumulations of massive foreign debt and to retain our ability to produce goods competitively.
The way to do this would be to somehow convince PHBs and investors to focus on longer term goals, not just the next quarter's earnings report. I'm not sure how to do that, but it's obvious that trade barriers wouldn't do it. That would just encourage keeping too many high-priced US workers on the payrolls.
Since it takes fewer people to make the same # of items it did 10 years ago.
That's not necessarily so. I read an interesting article a while back (I don't remember where, sorry), that covered Ohio Art's outsourcing of Etch-A-Sketches to China. It said that it now takes significantly *more* labor to put together each Etch-A-Sketch because the factory in China is less automated than the American one was. However, the labor is so much cheaper that the overall production cost is still lower.
IMHO, the US is being lazy and shortsighted by trying to move so much manufacturing overseas instead of focusing on better automation. The manufacturing jobs will be lost either way, but at least with automation we wouldn't be allowing our national capabilies for making anything other than lawsuits or french fries atrophy. We wouldn't be building up such massive trade deficits either.
Actually, US patents filed before 1995 are generally valid for 17 years from the grant date. Those filed after 1995 are valid 20 years from the filing date.
Hmmm... that jogs my memory. I guess I already knew that, but I haven't used basic since the days of "1000 for i = 1 to 10"; seeing it with "for each" threw me off. IIRC, the "next" statement worked like a GOTO; there were no blocks, and you could mix loops together in arbitrary ways. I don't know if that's still true in VB.
That's more "readable" than either of your examples, even readable by someone who's never coded anything in their lives.
I'm familiar well over a dozen languages, but I've never used VB. It's not clear at all to me what the "Next Object" line us supposed to do; it's a rather unusual looking construct. I assume it advances the iterator, but in most languages that's handled by the "for each" loop itself.
It really is pretty hard to beat Python's version for clarity and simplicty:
for x in collection: x.foo()
Re:Join the Revolution
on
Linux vs. Windows
·
· Score: 2, Insightful
People always ask, how can MS compete against a free product. I would point to the bottled water market. Even with nearly free water almost everywhere, high priced competitors still do pretty well, because people think bottled water is of better quality.
However, bottled water constitutes only a small fraction of the total water consumed. My water bill says that our family consumed over 50,000 gallons of water last year (and many times that was probably used to produce the food we bought); however, I doubt that we bought more than about 10 gallons of bottled water over the same time.
Right now, the desktop software market is like one where more than 90% of the people are buying only bottled water. That's likely to change if people figure out that they can get a cheaper source of quality goods. Linux might be thought of as a new community water treatment plant just coming into service, offering plentiful water on tap for a nominal service fee.
While Microsoft will always be able to sell high-priced products to niche markets, over the long run they may have a very hard time maintaining anywhere near their current market share unless they dramatically drop the prices and licensing restrictions on their bulk products.
If you are going to circumvent the OS (and violate the EULA) you may as well just buy a $5 pirate copy. It would be just as legal.
It hasn't been definitively proved in court that an EULA is enforceable. You had a legal copy of NTWS. Especially in the pre-DMCA days, you could do with it what you pleased as long as you did not make more copies than allowed under fair use.
Even if you assume that clicking a button concerning text that you could not review before the purchase constitutes signing a valid contract (which is highly doubtful), contradicting the EULA is a breach of contract, not copyright infringement. So it would not be "just as legal" as downloading a pirated copy.
Here's the nail on the head time. There should not be anything controversial at all about the idea that exclusive copyright MEANS the exclusive right to copy.
Except that a copyright isn't a totally exclusive right to copy. There are several exceptions, and the rules on where to draw the line are fuzzy and open to interpretation. It's certainly beyond a 4th grade level topic, and subject to controversy, but will undoubtedly be presented to the 4th graders in your oversimplified black-and-white terms anyway.
The shifted letters over the numbers really messes with you when you are used to your paren's to be at 9 and 0, not 0 and -.
If you map a convenient combo such as Alt-K like so: :imap <M-k> ()<Left>
then you'll never have strain your pinky reaching up for parentheses again, and you automatically stay balanced. I've done that for many of the obvious quotes and brackets (If you do this, helps to imap something like Ctl-L to <Right> and Alt-L to <End>). It saves tons of typing on hard-to-reach keys.
OK, I misread the third paragraph of original post. However, you still seem to assume that if a machine freezes up, then it can't deliver the wrong dose.
It's not enough to "hope" the operator would notice and shut down the machine if it crashes; what if it locks up with the radiation beam turned on? How would he even know whether the beam is on with the controls frozen? Is he supposed to fumble for the power cord and yank it? There's not necessarily a lot of margin between killing the cancer cells and destroying the healthy tissues of the body.
That's bad, but my SuSE 9.1 currently has 300MB of update RPMs in its cache folder, and it's only been 4 months since release. (Actually, subtracting out multiple updates on the same package and kernel sources, that leaves only about 90MB of "essential" updates. It's still pretty ridiculous, though.)
All of this seems very inefficient to me, given that most of the time a patch fixes just a few lines of mistaken code. Maybe they should add something like a "#pragma patch" to gcc around code fix lines. It would generate the exact original binary, tack the patched code onto the end of the binary and insert a jump instead of the original code. Then most updates could be put out in a few KB of binary diffs.
A 1 square foot panel would produce 3.8 Watts X 8 hours (assuming 8 good hours of sunlight) or ~.03 kW-hr at a cost of $45, which works out to $1500 per kilowatt hour.
That's only if you used it one day and then threw it away. You need to divide by the number of days in use; if it lasted 10 years, that would come out to $1500/3650 = $.27/kwh. Of course, power inverters and storage would probably significantly increase the total cost above that.
There was nothing scary about the firt Doom, the graphics were so bad that it didn't matter.
Bad graphics or not, the first time I ran into those 30 foot tall Satan-like bosses with the neverending rapid-fire rocket barrages, I was pretty damned scared. All I remember thinking was: Ahhhhgh! WTF?!! Run away! Run away!
(Hmm... maybe that was actually Doom II. It all kind of blurs together now; same bad graphics, though.)
That's the whole problem. Unisys probably raked in a few megabucks on GIF patents. However, their enforcement threats imposed huge costs of accounting on the rest of the world.
Considering lost time, productivity, recoding and legal fees, this episode undoubtedly cost the world at large many times what Unisys ever made on the patent.
There probably ought to be provisions added to patent laws to compensate innocent parties for their unexpected costs when they are suddenly forced to comply with submarine patents.
If, hypothetically, the supply of free OSS developers dried up, then IBM, SCO, Sun and Apple will have to hire some if they want to continue to evolve their products. Is there some problem with that?
Here you go:
If busses scale so well, then why isn't the Internet on a single electrical bus?
There are more advantages to DOS than just the simplicity of single-tasking. Before version 2.0, DOS didn't support directories. Could reverting to DOS 1.0 simplify searches and end user confusion over file system hierarchies as well? I think that the WinFS team should take a look.
(Opens search dialog:) => Where is the 3rd quarter inventory report for Consolidated Products?
(The animated dog instantly replies:) => It's on C:
If you constantly recorded an MP3 at a decent 1MB/minute rate for an entire lifetime of 80 years, you would end up with 4.2e13 bytes, which is only 42% of 100 TB. So you could record every sound you experience or produce, with room to spare.
How do they know? By cache coherence signals transferred between the CPUs. This isn't free and consumes bus bandwidth.
The first CPU can't "instantly" write the value either, because it must first obtain exclusive ownership of that cache line by checking with the other CPUs.
On the Opteron architecture (we call this NUMA, or "point-to-point"), as soon as one CPU writes a value to the 'GO!!' area, well, that's _just the beginning_. It has to tell another CPU in the system that it just did that. etc etc
It has to use some communication resource to update the other CPUs on the state of that cache line. Just like the bus-based situation.
If you read what I said, I wasn't trying to protect jobs. I said that these jobs are disappearing either way. The goal is to prevent accumulations of massive foreign debt and to retain our ability to produce goods competitively.
The way to do this would be to somehow convince PHBs and investors to focus on longer term goals, not just the next quarter's earnings report. I'm not sure how to do that, but it's obvious that trade barriers wouldn't do it. That would just encourage keeping too many high-priced US workers on the payrolls.
That's not necessarily so. I read an interesting article a while back (I don't remember where, sorry), that covered Ohio Art's outsourcing of Etch-A-Sketches to China. It said that it now takes significantly *more* labor to put together each Etch-A-Sketch because the factory in China is less automated than the American one was. However, the labor is so much cheaper that the overall production cost is still lower.
IMHO, the US is being lazy and shortsighted by trying to move so much manufacturing overseas instead of focusing on better automation. The manufacturing jobs will be lost either way, but at least with automation we wouldn't be allowing our national capabilies for making anything other than lawsuits or french fries atrophy. We wouldn't be building up such massive trade deficits either.
Actually, US patents filed before 1995 are generally valid for 17 years from the grant date. Those filed after 1995 are valid 20 years from the filing date.
Hmmm... that jogs my memory. I guess I already knew that, but I haven't used basic since the days of "1000 for i = 1 to 10"; seeing it with "for each" threw me off. IIRC, the "next" statement worked like a GOTO; there were no blocks, and you could mix loops together in arbitrary ways. I don't know if that's still true in VB.
I'm familiar well over a dozen languages, but I've never used VB. It's not clear at all to me what the "Next Object" line us supposed to do; it's a rather unusual looking construct. I assume it advances the iterator, but in most languages that's handled by the "for each" loop itself.
It really is pretty hard to beat Python's version for clarity and simplicty:
However, bottled water constitutes only a small fraction of the total water consumed. My water bill says that our family consumed over 50,000 gallons of water last year (and many times that was probably used to produce the food we bought); however, I doubt that we bought more than about 10 gallons of bottled water over the same time.
Right now, the desktop software market is like one where more than 90% of the people are buying only bottled water. That's likely to change if people figure out that they can get a cheaper source of quality goods. Linux might be thought of as a new community water treatment plant just coming into service, offering plentiful water on tap for a nominal service fee.
While Microsoft will always be able to sell high-priced products to niche markets, over the long run they may have a very hard time maintaining anywhere near their current market share unless they dramatically drop the prices and licensing restrictions on their bulk products.
It hasn't been definitively proved in court that an EULA is enforceable. You had a legal copy of NTWS. Especially in the pre-DMCA days, you could do with it what you pleased as long as you did not make more copies than allowed under fair use.
Even if you assume that clicking a button concerning text that you could not review before the purchase constitutes signing a valid contract (which is highly doubtful), contradicting the EULA is a breach of contract, not copyright infringement. So it would not be "just as legal" as downloading a pirated copy.
Shouldn't that patent be expiring on Oct. 6, 2004? If so, this won't be an issue for very long.
Except that a copyright isn't a totally exclusive right to copy. There are several exceptions, and the rules on where to draw the line are fuzzy and open to interpretation. It's certainly beyond a 4th grade level topic, and subject to controversy, but will undoubtedly be presented to the 4th graders in your oversimplified black-and-white terms anyway.
If you map a convenient combo such as Alt-K like so:
:imap <M-k> ()<Left>
then you'll never have strain your pinky reaching up for parentheses again, and you automatically stay balanced. I've done that for many of the obvious quotes and brackets (If you do this, helps to imap something like Ctl-L to <Right> and Alt-L to <End>). It saves tons of typing on hard-to-reach keys.
It's not enough to "hope" the operator would notice and shut down the machine if it crashes; what if it locks up with the radiation beam turned on? How would he even know whether the beam is on with the controls frozen? Is he supposed to fumble for the power cord and yank it? There's not necessarily a lot of margin between killing the cancer cells and destroying the healthy tissues of the body.
Yes, and with drugs or radiation, the wrong dosage can kill you.
All of this seems very inefficient to me, given that most of the time a patch fixes just a few lines of mistaken code. Maybe they should add something like a "#pragma patch" to gcc around code fix lines. It would generate the exact original binary, tack the patched code onto the end of the binary and insert a jump instead of the original code. Then most updates could be put out in a few KB of binary diffs.
Likewise, it doesn't seem like a word processor and a desktop GUI toolkit should be worth $300 Billion.
Of 64 G5s
Or 128 Opterons
Between them only CAT5
Imagine all the boxen
Benching Quake FPS...
Imagine no shared memory
It isn't hard to do
Nothing to spinlock or thrash for
No cache coherence too
Imagine all the boxen
Crunching local tasks...
Imagine there's no mainframes
I wonder if you can
No need for Crays or S/390s
A cluster loosely bound
Imagine all the boxen
Sharing all the LAN...
You may say that I'm a uniprocessor
But I'm not the only one
I hope someday you'll join us
And we'll simulate nukes as one
That's only if you used it one day and then threw it away. You need to divide by the number of days in use; if it lasted 10 years, that would come out to $1500/3650 = $.27/kwh. Of course, power inverters and storage would probably significantly increase the total cost above that.
Bad graphics or not, the first time I ran into those 30 foot tall Satan-like bosses with the neverending rapid-fire rocket barrages, I was pretty damned scared. All I remember thinking was: Ahhhhgh! WTF?!! Run away! Run away!
(Hmm... maybe that was actually Doom II. It all kind of blurs together now; same bad graphics, though.)
My '78 Chrysler Newport doesn't appreciate that insult.