"But Average Joe doesn't need anywhere near that."
That's why HP, IBM, Sun, etc., are pitching this to high-end enterprise customers.;-)
That being said, if it got easy enough, there are occasional scenarios where Average Joe could use a compute resource larger than his computer. For example, if he's editing a home video and doing compute intensive transitions. But aside from speeding up some things that people do now, a "compute grid" could enable things that people don't do now because it's not possible, "blue sky" stuff.
I was at Thinking Machines (the company that invented massively parallel computing) a decade ago, and back then Danny Hillis talked frequently about "utility computing" -- the idea that your computations would know how to flow back to wherever it needed to be done. So you'd work on a desktop computer and the user interactive bits would run locally, harder parts would flow back to a big CPU in the basement, and the really hard parts could flow back to a city supercomputer, in a CPU equivalent of the power grid.
At a high level, it's a pretty simple idea, and very powerful.
At the detailed level, there are some amazingly hard problems to solve. Like, for example, how does software get split into parts that can be separated with minimal communications overhead, or how do you decide when a task would run more efficiently spread across a bunch of CPU's, or how do you keep running smoothly when a network outage causes 10% of your CPU's to drop off of the grid....
I suspect that the reason that all of the big companies are pitching this is that:
1) CPU's and operating systems have been commoditized by Intel/AMD/etc. and Linux, and they want to have a reason for you to buy bigger/better/more expensive systems.
2) Once one of them announced it, they all have to have a "response".
That being said, I think that what they're doing is going to be of real value to high-end customers. If you're running a farm of 5,000 servers, you really need the software to be self-healing, etc.
"The point of the OP is that you can't meaningfully restrain p2p without interfering with general purpose computing."
I disagree -- there are easy ways that the p2p networks could at least try to block most illegal file sharing that wouldn't interfere with your computer at all. The reason that the p2p companies don't even try is that their business model is to _enable_ illegal file sharing.
Keep in mind that the p2p networks are run by companies doing this to make money, not freedom fighters. (OK, aside from FreeNet and perhaps some of the Gnutella implementations) What these guys are doing is gathering users by the million by giving away other people's work, then making money by abusing those users with adware and spyware. Their marketing people talk about "revolution" and so on because it's good PR.
"What exactly is the point of releasing trival, 10-minutes-to-rewrite-from-scratch stuff like this under the GPL rather than any of the other open-source licenses?... The only reason I can think of off hand is to bait clueless developers into shipping it with a commercial product so you can come along and hassle them about it later."
How about "because even though it's not rocket science, this code is useful to me, and I want other people to be able to use it rather than have to rewrite it"? I's not like violating the GPL would force a closed source company to release their source code -- they'd simply rewrite the offending bits ("ten minutes" right?).
The question I'd have is whether it's actually a GPL violation, or whether multiple programmers simply came up with the same solution to these fairly simple problems. It's a lot more likely (IMO) that a programmer would write trivial code in a similar manner than that they'd bother locating an open source solution and use it in their closed source application -- it's always more fun to write code than find and reuse it, and the "cost" of writing these things is pretty small. I'm not saying that it's impossible that it's a GPL violation, but my advice would be to make a pretty strong case that it's not just parallel development to yourself before sending any threatening letters.
I'm not complaining about the Dock (I like the Dock!), just saying that WindowShade is very cool. You can minimize any window to an icon, kinda like the Dock but with the application icon superimposed so that I you have more of a clue what it is, and more importantly, with the icons anywhere you want them.
The problem is that you can't just look at the dock and know what's in it. You have to "scrub" the mouse over the icons in the dock in order to cause them to display their names.
WindowShade's approach, where they create an icon that is an image of the document's contents, with the application icon superimposed, is much better. You can easily see all Photoshop documents, and tell the difference between them, in a natural, intuitive way.
Most of TOG's suggestions weren't my cup of tea ( I like the Dock, but hey, I used to be a NEXTSTEP developer), but WindowShade is a wonderful program.
http://www.unsanity.com/haxies/wsx/
Actually, these guys make a lot of cool, useful little app's, but WindowShade's "minimize in place" is wonderful. When you click on the 'minimize' control for a window, it's minimized down to an icon. But unlike the dock it's minimized right where the window was, so you can arrange the icons yourself. Also, the icon is a live version of the document's contents (so you can see a progress bar's progress, differentiate between two different Photoshop images, etc.) and has the application icon superimposed (so you know what kind of window it is). Apple should at least use these icons in the Dock.
The context of the discussion though is for people being sent pre-release copies of movie, who are asked to sign NDA's promising that they won't let other people see (or copy) the movie. The recipient certainly isn't forced to sign the NDA -- they can easily choose not to receive the movie.
And even in Stallman's wrestling match with Xerox that you linked to, he wasn't forced to sign the NDA -- he just didn't get the source code he wanted.
"Forcing people to sign NDA's aren't treating people as honest - its also somewhat amoral, and presumably anyone who can get away with it will summarily ignore it."
NDA's aren't immoral, and they're certainly not forced on people in my experience -- they're the tool that you use to protect yourself when you're given someone special, early access to something in return for them agreeing to keep it secret. If they don't agree with the NDA, they don't sign it, and don't accept the information (or movie) that they would have received under the NDA.
Actually, watermarking and Palladium are very different. The watermarking that was used to identify the source of the leak doesn't limit the use or the distribution of the movie at all -- it just allows them to determine the source of the leak. Since everyone who receives a pre-release copy of a movie has a signed NDA, it's (IMO) fair for the movie studios to use technology to determine who broke their NDA, and take corrective action afterwards.
Palladium, on the other hand, has the opposite goal -- it's goal is to prevent anyone from being able to do anything that the content creater doesn't want to have happen. So rather than treating people as honest and catching the exceptions, it treats everyone as a potential criminal.
"the academy said "Something's Gotta Give" marked the first time a so-called screener sent to an Oscar voter had been made available for illegal copying"
There have certainly been screeners circulateddigitally before, so perhaps there's some subtle distinction here. Perhaps they're differentiating between the "screeners" sent to Oscar voters and the "screeners" sent to reviewers, etc., to promote the movies?
I called Fossil last week, and they claimed that the Fossil Palm PDA would be shipping this month. I'm not sure that I believe it, since it's been "about to ship" for something like a year. Sales people at stores got trained last Summer, and are very excited about the product...
I agree, this rumor isn't true (IMO). Right now there are two significant (protected) formats for commercial music publishers -- WMA and AAC with Fairplay. Since the iPod is the market leading MP3 player (55% of MP3 player sales by dollars) and iTunes Music Store is the market leading digital download sales channel (80% of all downloads sold), Apple's in a great position, so publishers will support both formats.
If Apple added support for WMA to the iPod, it would allow music stores and publishers to ignore AAC and publish only WMA and cover all MP3 players. This would ultimately lead to AAC, and then iTMS and the iPod, being marginalized.
IMO, as long as Apple is a significant player they'll be supported, because the labels would rather do business with Apple than Microsoft, and because they prefer industry standards such as AAC over proprietary formats (that they don't control) like WMA. The last thing Apple would do is something that would promote the adoption of WMA...
"MacOS X is quite different from Rhapsody. I'm not saying they don't have ported it to x86. I heard they did, but I honestly don't know. But trying to use Rhapsody x86 version's existence as a proof of MacOS X x86 version is not that strong argument. It's like Microsoft has PPC version of Win XP somewhere, because they have Win NT for PPC while ago."
My guess is that both companies keep internal builds that run across various CPU's in order to make sure that they keep their code clean and portable. Running on both the PPC and x86 goes a long way towards flushing out issues that would cause problems on 64-bit CPU's, for example. So I think that we're pretty much in agreement...
When I said that Rhapsody ran on x86, I was _not_ referring to Darwin; I was referring to the complete "Rhapsody" operating system, which I used to run on off-the-shelf PC's. Rhapsody was the code name for MacOS X before it shipped to end users. The whole thing ran, all the way up to the Display Postscript rendered UI, except for "yellow box". So you could (and I did) compile any Cocoa app as a "far binary" and it ran fine on either PPC or x86. What's what I'm saying Apple is still making sure runs on the x86, in order to keep their options open.
While I agree that it's unlikely that Apple will _ship_ MacOS X for x86's, I'm fairly certain that they've been making sure that it compiles and runs on the x86. I certainly can't identify my source (they have rules, you know) so let's keep it as a speculation -- if you had an OS that was extremely portable and ran across a wide range of processors, you'd probably make sure that it kept running on all of those processors, even if you only shipped on one, in order to make sure that you kept your options open, right?
Well, I agree that they're both formats that anyone can license, but there's a difference between an "open standard" completely controlled by a single vendor and an "open standard" controlled by a consortium of vendors and content companies.
"It's long been speculated that Apple may some day bring OS X to the x86 platform."
Remember, Apple shipped "Rhapsody" for x86 to developers. And, um, it's been credibly "rumored" that Apple is maintaining the MacOS X code based on x86.
"Abolish minimum wage laws entirely and recalculate the minimum wage for a job daily, based on whatever the employer is willing to pay and the employee is willing to accept"
We don't do this because there's an unequal relationship between employers and employees. Without there being a law to restrain their behavior, employers would push salaries for "commodity" jobs down to as low as the most desparate person. I don't know about you, but I don't want to live in a society where people can work a hard, full-time job and starve. We also don't let employers (legally) lock their employees into buildings so that they burn to death if there's a fire, or (legally) remove safety elements on industrial equipment because it marginally improves prodictivity while risking employee dismemberment or death. Companies are motivated by maximizing profit -- it's the government's job to balance the scales back towards the citizens.
In theory, distributing computing is an amazing resource -- most computers are 99% unused (2.4 GHz CPU waiting for the user to hit the next keystroke...). But it's very, very hard to actually take advantage of it.
The problem isn't so much that the compute time isn't valuable as that there are relatively few problems that are amenable to this style of distibuted computing.
There are two axis that I believe need to work out: the value of solving the problem (and to whom), and how parallelizable it is.
In terms of value, if a problem is really valuable to me to solve, it's worth the expense of setting my your own compute farm, where you can guarantee results. If it's really not worth anything to solve, then nobody will bother actually solving it. So distributed computing only works for problems that are pretty important to solve, but not important enough to spend a lot of money on.
Even more of an issue, the problem has to be one that is amenable to loosely coupled parallel systems. That means that I have to be able to chop my problem up into chunks of extremely compute intensive work that can be performed with no communication between nodes (i.e. not like 99.9% of the code most people write), and I can accept all of the issues related to the nodes being completely unpredictable. So if a node never completes the work and submits the results, I have to re-assign the work to another node eventually. And if I don't trust the client nodes, I might have to have multiple nodes do the same job so that I can compare answers. And, of course, I can't even predict the number of available nodes. And security is out the window, since I'm shipping my data and code to random volunteers.
Among other things, this all means that I can't use distributed computing to solve problems where I need to know the answer in a predictable amount of time. So, for example, if I'm producing a movie and need to render tons of graphics (and problem which parallelized very nicely) I'm probably better off buying a rendering farm than trying to use a distributed network to solve it, because it's _very_ important to me to know when the movie will be rendered, and foolist of me to try to save $500K in hardware in a $50M movie budget in return for the risks.
And, of course, the vast majority of problems that people want to solve are hard to parallelize. Not that it couldn't be done with sufficient cleverness, perhaps, but very few engineers can design and implement distributed systems that work well. This makes it a wonderfully challenging field to work in, but a terrible one to sell -- most corporations' problems don't fit the distributed computing model.
That being said, I don't mean to be completely negative -- I'm a huge fan of parallel computing; I worked for Thinking Machines back in the day. There are certainly many cases where distributed computing works. SETI is a pretty obvious succes -- it parallelizes perfectly, is a very interesting problem to solve, but has no actual funding, so the only way to solve it is to use volunteered spare cycles. Or if I'm making a computer graphic movie but have no money -- you can get people to volunteer computer time in return for non-monetary rewards (the ego boost of seeing your name in a movie's credits, etc.). And distributed compilation is a wonderful thing.
"But Average Joe doesn't need anywhere near that."
;-)
That's why HP, IBM, Sun, etc., are pitching this to high-end enterprise customers.
That being said, if it got easy enough, there are occasional scenarios where Average Joe could use a compute resource larger than his computer. For example, if he's editing a home video and doing compute intensive transitions. But aside from speeding up some things that people do now, a "compute grid" could enable things that people don't do now because it's not possible, "blue sky" stuff.
I was at Thinking Machines (the company that invented massively parallel computing) a decade ago, and back then Danny Hillis talked frequently about "utility computing" -- the idea that your computations would know how to flow back to wherever it needed to be done. So you'd work on a desktop computer and the user interactive bits would run locally, harder parts would flow back to a big CPU in the basement, and the really hard parts could flow back to a city supercomputer, in a CPU equivalent of the power grid.
...
At a high level, it's a pretty simple idea, and very powerful.
At the detailed level, there are some amazingly hard problems to solve. Like, for example, how does software get split into parts that can be separated with minimal communications overhead, or how do you decide when a task would run more efficiently spread across a bunch of CPU's, or how do you keep running smoothly when a network outage causes 10% of your CPU's to drop off of the grid.
I suspect that the reason that all of the big companies are pitching this is that:
1) CPU's and operating systems have been commoditized by Intel/AMD/etc. and Linux, and they want to have a reason for you to buy bigger/better/more expensive systems.
2) Once one of them announced it, they all have to have a "response".
That being said, I think that what they're doing is going to be of real value to high-end customers. If you're running a farm of 5,000 servers, you really need the software to be self-healing, etc.
"The point of the OP is that you can't meaningfully restrain p2p without interfering with general purpose computing."
I disagree -- there are easy ways that the p2p networks could at least try to block most illegal file sharing that wouldn't interfere with your computer at all. The reason that the p2p companies don't even try is that their business model is to _enable_ illegal file sharing.
Keep in mind that the p2p networks are run by companies doing this to make money, not freedom fighters. (OK, aside from FreeNet and perhaps some of the Gnutella implementations) What these guys are doing is gathering users by the million by giving away other people's work, then making money by abusing those users with adware and spyware. Their marketing people talk about "revolution" and so on because it's good PR.
"What exactly is the point of releasing trival, 10-minutes-to-rewrite-from-scratch stuff like this under the GPL rather than any of the other open-source licenses? ... The only reason I can think of off hand is to bait clueless developers into shipping it with a commercial product so you can come along and hassle them about it later."
How about "because even though it's not rocket science, this code is useful to me, and I want other people to be able to use it rather than have to rewrite it"? I's not like violating the GPL would force a closed source company to release their source code -- they'd simply rewrite the offending bits ("ten minutes" right?).
The question I'd have is whether it's actually a GPL violation, or whether multiple programmers simply came up with the same solution to these fairly simple problems. It's a lot more likely (IMO) that a programmer would write trivial code in a similar manner than that they'd bother locating an open source solution and use it in their closed source application -- it's always more fun to write code than find and reuse it, and the "cost" of writing these things is pretty small. I'm not saying that it's impossible that it's a GPL violation, but my advice would be to make a pretty strong case that it's not just parallel development to yourself before sending any threatening letters.
I'm not complaining about the Dock (I like the Dock!), just saying that WindowShade is very cool. You can minimize any window to an icon, kinda like the Dock but with the application icon superimposed so that I you have more of a clue what it is, and more importantly, with the icons anywhere you want them.
The problem is that you can't just look at the dock and know what's in it. You have to "scrub" the mouse over the icons in the dock in order to cause them to display their names.
WindowShade's approach, where they create an icon that is an image of the document's contents, with the application icon superimposed, is much better. You can easily see all Photoshop documents, and tell the difference between them, in a natural, intuitive way.
Check out http://www.unsanity.com/haxies/wsx/.
Most of TOG's suggestions weren't my cup of tea ( I like the Dock, but hey, I used to be a NEXTSTEP developer), but WindowShade is a wonderful program.
http://www.unsanity.com/haxies/wsx/
Actually, these guys make a lot of cool, useful little app's, but WindowShade's "minimize in place" is wonderful. When you click on the 'minimize' control for a window, it's minimized down to an icon. But unlike the dock it's minimized right where the window was, so you can arrange the icons yourself. Also, the icon is a live version of the document's contents (so you can see a progress bar's progress, differentiate between two different Photoshop images, etc.) and has the application icon superimposed (so you know what kind of window it is). Apple should at least use these icons in the Dock.
"Please tell me that that IP stack on this thing is not called SkyNET. nah, it's called SkyLAB." When the network crashes, the network really crashes!
The context of the discussion though is for people being sent pre-release copies of movie, who are asked to sign NDA's promising that they won't let other people see (or copy) the movie. The recipient certainly isn't forced to sign the NDA -- they can easily choose not to receive the movie.
And even in Stallman's wrestling match with Xerox that you linked to, he wasn't forced to sign the NDA -- he just didn't get the source code he wanted.
"Forcing people to sign NDA's aren't treating people as honest - its also somewhat amoral, and presumably anyone who can get away with it will summarily ignore it."
NDA's aren't immoral, and they're certainly not forced on people in my experience -- they're the tool that you use to protect yourself when you're given someone special, early access to something in return for them agreeing to keep it secret. If they don't agree with the NDA, they don't sign it, and don't accept the information (or movie) that they would have received under the NDA.
Actually, watermarking and Palladium are very different. The watermarking that was used to identify the source of the leak doesn't limit the use or the distribution of the movie at all -- it just allows them to determine the source of the leak. Since everyone who receives a pre-release copy of a movie has a signed NDA, it's (IMO) fair for the movie studios to use technology to determine who broke their NDA, and take corrective action afterwards.
Palladium, on the other hand, has the opposite goal -- it's goal is to prevent anyone from being able to do anything that the content creater doesn't want to have happen. So rather than treating people as honest and catching the exceptions, it treats everyone as a potential criminal.
"the academy said "Something's Gotta Give" marked the first time a so-called screener sent to an Oscar voter had been made available for illegal copying"
There have certainly been screeners circulateddigitally before, so perhaps there's some subtle distinction here. Perhaps they're differentiating between the "screeners" sent to Oscar voters and the "screeners" sent to reviewers, etc., to promote the movies?
I called Fossil last week, and they claimed that the Fossil Palm PDA would be shipping this month. I'm not sure that I believe it, since it's been "about to ship" for something like a year. Sales people at stores got trained last Summer, and are very excited about the product...
I agree, this rumor isn't true (IMO). Right now there are two significant (protected) formats for commercial music publishers -- WMA and AAC with Fairplay. Since the iPod is the market leading MP3 player (55% of MP3 player sales by dollars) and iTunes Music Store is the market leading digital download sales channel (80% of all downloads sold), Apple's in a great position, so publishers will support both formats.
If Apple added support for WMA to the iPod, it would allow music stores and publishers to ignore AAC and publish only WMA and cover all MP3 players. This would ultimately lead to AAC, and then iTMS and the iPod, being marginalized.
IMO, as long as Apple is a significant player they'll be supported, because the labels would rather do business with Apple than Microsoft, and because they prefer industry standards such as AAC over proprietary formats (that they don't control) like WMA. The last thing Apple would do is something that would promote the adoption of WMA...
"MacOS X is quite different from Rhapsody. I'm not saying they don't have ported it to x86. I heard they did, but I honestly don't know. But trying to use Rhapsody x86 version's existence as a proof of MacOS X x86 version is not that strong argument. It's like Microsoft has PPC version of Win XP somewhere, because they have Win NT for PPC while ago."
My guess is that both companies keep internal builds that run across various CPU's in order to make sure that they keep their code clean and portable. Running on both the PPC and x86 goes a long way towards flushing out issues that would cause problems on 64-bit CPU's, for example. So I think that we're pretty much in agreement...
"Darwin, yes. Any other part of the OS, no."
When I said that Rhapsody ran on x86, I was _not_ referring to Darwin; I was referring to the complete "Rhapsody" operating system, which I used to run on off-the-shelf PC's. Rhapsody was the code name for MacOS X before it shipped to end users. The whole thing ran, all the way up to the Display Postscript rendered UI, except for "yellow box". So you could (and I did) compile any Cocoa app as a "far binary" and it ran fine on either PPC or x86. What's what I'm saying Apple is still making sure runs on the x86, in order to keep their options open.
While I agree that it's unlikely that Apple will _ship_ MacOS X for x86's, I'm fairly certain that they've been making sure that it compiles and runs on the x86. I certainly can't identify my source (they have rules, you know) so let's keep it as a speculation -- if you had an OS that was extremely portable and ran across a wide range of processors, you'd probably make sure that it kept running on all of those processors, even if you only shipped on one, in order to make sure that you kept your options open, right?
that better?
Now it all makes sense...
"They already make microdrive CF cards in 1-2GB capacities.
Why do I still use CF cards? Because solid state devices are far more reliable than a HD"
Apparently moderators don't know that microdrive CF cards _are_ hard drives, not solid state. So this post makes no sense.
"AAC is about as open as WMA"
Well, I agree that they're both formats that anyone can license, but there's a difference between an "open standard" completely controlled by a single vendor and an "open standard" controlled by a consortium of vendors and content companies.
"It's long been speculated that Apple may some day bring OS X to the x86 platform."
Remember, Apple shipped "Rhapsody" for x86 to developers. And, um, it's been credibly "rumored" that Apple is maintaining the MacOS X code based on x86.
"Booo!!! HP is evil for shipping off jobs.
-- 2 hours later --
Yeah!!! HP is so great for joining forces with Apple."
Don't you mean:
Booo!!! HP is evil for shipping off jobs.
-- 2 hours later --
Yeah!!! HP is so great for joining forces with Jobs.
"Abolish minimum wage laws entirely and recalculate the minimum wage for a job daily, based on whatever the employer is willing to pay and the employee is willing to accept"
We don't do this because there's an unequal relationship between employers and employees. Without there being a law to restrain their behavior, employers would push salaries for "commodity" jobs down to as low as the most desparate person. I don't know about you, but I don't want to live in a society where people can work a hard, full-time job and starve. We also don't let employers (legally) lock their employees into buildings so that they burn to death if there's a fire, or (legally) remove safety elements on industrial equipment because it marginally improves prodictivity while risking employee dismemberment or death. Companies are motivated by maximizing profit -- it's the government's job to balance the scales back towards the citizens.
"I think charitable uses of CPU time give the most bang for the, er, buck."
That phrase ("bang for the buck") makes me wonder if there's some way to apply distributed computing to pr0n...
In theory, distributing computing is an amazing resource -- most computers are 99% unused (2.4 GHz CPU waiting for the user to hit the next keystroke...). But it's very, very hard to actually take advantage of it.
The problem isn't so much that the compute time isn't valuable as that there are relatively few problems that are amenable to this style of distibuted computing.
There are two axis that I believe need to work out: the value of solving the problem (and to whom), and how parallelizable it is.
In terms of value, if a problem is really valuable to me to solve, it's worth the expense of setting my your own compute farm, where you can guarantee results. If it's really not worth anything to solve, then nobody will bother actually solving it. So distributed computing only works for problems that are pretty important to solve, but not important enough to spend a lot of money on.
Even more of an issue, the problem has to be one that is amenable to loosely coupled parallel systems. That means that I have to be able to chop my problem up into chunks of extremely compute intensive work that can be performed with no communication between nodes (i.e. not like 99.9% of the code most people write), and I can accept all of the issues related to the nodes being completely unpredictable. So if a node never completes the work and submits the results, I have to re-assign the work to another node eventually. And if I don't trust the client nodes, I might have to have multiple nodes do the same job so that I can compare answers. And, of course, I can't even predict the number of available nodes. And security is out the window, since I'm shipping my data and code to random volunteers.
Among other things, this all means that I can't use distributed computing to solve problems where I need to know the answer in a predictable amount of time. So, for example, if I'm producing a movie and need to render tons of graphics (and problem which parallelized very nicely) I'm probably better off buying a rendering farm than trying to use a distributed network to solve it, because it's _very_ important to me to know when the movie will be rendered, and foolist of me to try to save $500K in hardware in a $50M movie budget in return for the risks.
And, of course, the vast majority of problems that people want to solve are hard to parallelize. Not that it couldn't be done with sufficient cleverness, perhaps, but very few engineers can design and implement distributed systems that work well. This makes it a wonderfully challenging field to work in, but a terrible one to sell -- most corporations' problems don't fit the distributed computing model.
That being said, I don't mean to be completely negative -- I'm a huge fan of parallel computing; I worked for Thinking Machines back in the day. There are certainly many cases where distributed computing works. SETI is a pretty obvious succes -- it parallelizes perfectly, is a very interesting problem to solve, but has no actual funding, so the only way to solve it is to use volunteered spare cycles. Or if I'm making a computer graphic movie but have no money -- you can get people to volunteer computer time in return for non-monetary rewards (the ego boost of seeing your name in a movie's credits, etc.). And distributed compilation is a wonderful thing.