I'm not sure what you mean by "header profile", but would you also consider Wine to not be allowed? I'm not sure you understand what clean room means -- simply that a specification is built by one person examining an existing system, and passed to another for implementation. You certainly can produce an API this way, and Apache has documentation that they claim supports the notion that Harmony (the API implementation Google used) was produced this way.
It's not clear to me you understand what a clean room implementation is. It is perfectly possible to make a clean-room implementation of an SDK, or a chip, that implements the behavior accurately, without looking at the original code. There is no reason to believe Google did this (except for the sketchy testimony by their CEO).
And the fact that a very large majority of the non-trivial portions of the code clearly do what they do in different ways to Oracle's implementation. And the fact that the developers of the code (in this case Apache, not Google) have stated several times that it is clean room. And that it was an open source project where the practice was to obtain a signed statement from developers providing complete details of exposure to Sun's IP prior to accepting patches from them (see http://harmony.apache.org/auth_cont_quest.html ), so it seems to be pretty clear that either it was clean room, or there is a developer who lied to them in a written warranty and therefore *that developer should be liable*, not Google.
We're talking about an intermediate representation. Both Google and Oracle's virtual machines take their respective bytecode formats and convert them to a register-based machine language prior to execution. The only difference is that Google does this by translating from a different register-based language while Oracle translates from a stack-based language. This isn't about calling conventions, but compiler technology.
An affidavit from a developer about that developer's practices, or even the practices that that developer observed other developers using, is not hearsay.
Google were going to use a completely different API anyway (the android application framework, rather than J2ME which Sunacle would have preferred). By "worried about fragmentation" what they really mean is "worried that people won't pay to license the patented parts of Java".
Except that it won't be able to run the same games (Call of Duty: Black ops comes to mind).
A benchmark of a similar system suggests this game will run in low detail mode with around 23fps, which admittedly is nowhere near as good as consoles (I understand the PS3 averages about 50fps for this game, not sure about Xbox360), but is also not "won't run".
Only those intimately familiar with the Speccy would understand and appreciate:
INC H LD A,7 AND A,H RET NZ LD A, 32 ADD A,L LD L,A RET C LD A,-8 ADD A,H LD H,A RET
Takes a pointer to screen memory in HL and adjusts it to point one pixel further down? I know the *start* is right for that, but it's been long enough that I'm not sure about the rest...
So, I wonder if she ever makes coffee at home. Or drinks homemade coffee when visiting a friend etc. All coffee or tea is more than 88C just after making, probably around 95C. This is why I think the lawsuit was stupid.
In the interests of science, I just attempted to verify your assertion. I made two coffees:
- The first was made with instant coffee using freshly-boiled water. It was made in a standard ceramic-type mug that was warm to begin with (a previous coffee had only been finished a couple of minutes previously). I inserted the thermometer (a standard lab-style 76mm immersible -25-250C spirit thermometer) immediately after the water, and by the time it had settled to a reading the temperature was 84C. After carrying the coffee the short walk to my desk, it had dropped to 78C.
- The second was made with a typical home espresso machine (a Krups machine whose model number is not immediately evident). The machine was preheated by running hot water through it for several seconds before making the coffee. The cup used was hot rather than warm this time (initial temperature somewhere around 50C). The temperature of the resulting coffee immediately after the cup had finished filling was 72C.
I'll agree that 60C is too low. But 88C is still way too high.
190F is not nearly double 140F, it is just over 33% hotter.
No, it's less than 10% hotter. (Try converting to Kelvin)
Or: you're arguing about a meaningless comparison. To specify heat as a ratio, you need to agree on a base temperature. It happens that 190F is "nearly double" 140F for base temperatures of about 70-90F, a temperature range that includes the commonly-used "standard ambient temperature" of 77F. As this is approximately the temperature the coffee will cool down to if left a long period of time, it makes a degree of sense to use it as the basis for comparison.
unless you're heating the grounds, your coffee mug and the parts of your French press before you use it, running boiling water (which usually averages around 190-200 degrees Fahrenheit, not 212 like you'd think) through the grounds/machine can lose fifty or more degrees easily
This is true. Which is probably why the instructions for use of such machines typically tell you to preheat the machines and cups, and are frequently provided with a cup-warming plate to make this easier. That said, even after doing this, the resulting coffee is still typically much cooler than the coffee in this case.
if you want to serve coffee or tea that stays hot, fill the cups with hot water ahead of time, and then dump the hot water just before you pour in the coffee/tea.
Or serve it in expanded polystyrene or paper cups, preferably with lids. These cups have a much lower thermal mass than the ceramic ones you're used to.
Actually, you'd be surprised at just how much business is handled on a handshake (particularly in farming).
And once you realise this, you'll no longer be quite so surprised when you realise just how much of contract law is defined by precedents set over farmers arguing about sheep.
So if a writer types 'How does someone publish there book?', Microsoft will send them to a spelling and grammar site instead of HarperCollins?
As long as it isn't PublishAmerica, we can all be happy. Perhaps they should be reserved for idiots with automatic weapons who are really pissed off with life.
I have only ever met one person with one game (Sims 2) who had any problems installing it.
Depends on the game and shear random luck. I had serious issues installing Links 2003 on my parents' PC, which turns out to be because its DVD-ROM drive is not compatible with the DRM on the Links disc (there's a list of about 10 models of drive that won't work buried in a README file on the disc). But I'll grant that that is an unusual experience.
In order to have console-style multiplayer games, you need a monitor big enough for two to four people to fit around. I'm told the only kind of monitor like that is a living room HDTV.
Meh. Sure, the HDTV provides a better experience, but I've quite happily had 3 people playing games on a 17" monitor before now, and as larger monitors (e.g. 21.5" widescreen) are becoming mainstream now, this really isn't that big an issue.
How much would you have to spend today on a PC that's equivalent to, say, an XBox 360? How much does the XBox cost? There's probably more to it than cost, but last time I checked PCs weren't sold as loss-leaders.
That's an interesting question, bcause the XBox's processor is not directly equivalent to a PC processor. Because it's an in-order execution system, it doesn't really compare well to PC processors jusrt by looking at its specs. It may be a 3-core 2-instruction capable processor, but in reality most code likely only fills one of the instruction slots at a time (similarly to the original Pentium). Whereas modern PC processors tend to be able to handle 2 or even 3 instructions per cycle a lot of the time. So it may be best to think of it as being similar to a modern CPU with about half the clock speed. Although there are still significant differences. A quick review of old documents on it suggests a 21-stage pipeline, which is longer than current-generation PC processors, and means mispredicted branches are going to be slower comparitivlely. It also has a much smaller cache than modern PC processors, and it's 21.6GB/s memory bandwidth is comparable to the very low end of current desktop processors. All-in-all, thererfore, I'd expect any modern dual-core budget processor (e.g. a Celeron G530) to outperrform it in most tasks.
The onboard graphics on a Celeron G530 processor is considered comparable in capability to ATI cards from 3 generations later than the ones that are most similar architecturally to the XBox 360's graphics chip, so this basic PC should substantially outperform the XBox 360 in graphics performance.
So, processor: £36.24 (dabs.com). Add to that processor a budget microATX motherboard (£34.99), 2GB RAM (4 times as much as is in the XBox 360, but the smallest amount available these days) (£11.97), case & PSU (£19.99), hard disk (£34.99) and optical drive (£11.99), and the total is *very* similar to the cost of an Xbox 360 (about £1 more expensive than the cheapest deal I see for a new 360 on google shopping). For a machine that outclasses the 360 in most respects (perhaps even all respects... it is very hard to compare the CPU performance).
I haven't seen the method you're talking about, but calling private methods in Java is quite common to work around certain inadequacies of the standard class library (for instance, I've used code that gets the process handle out of a java.lang.Process object via direct access to its private members in order to then pass this to OS-dependent code, because Java's process management sucks).
A team including Larry Page, Ram Shriram and Eric Schmidt of Google, director James Cameron, Charles Simonyi (Microsoft executive and astronaut), Ross Perot Jr. (son of Ross Perot), Chris Lewicki (NASA Mars mission manager), and Peter Diamandis (X-Prize)
Where's Richard Garriott? Or has he spent his entire fortune on old soviet space program junk already?
Not true. The Dalvik compiler was used to compile the GPL-released Java library/package source.
The Java library source in Android is based on Apache Harmony, and is Apache-licensed, not GPL. Here's an example file from it, with complete copyright notices.
Read the context. Licensing Java would have given them advantages... they would have been able to use the Java virtual machine's native instruction format (meaning applications didn't need to go through a translation phase to run), they would have been able to include J2ME support (thus run preexisting applications and games) and would have been able to use the Java trademark in their advertising (familiar to mobile phone buyers, so would have boosted early sales). Java licensing was desirable, and they evaluated alternatives to Java in order to scare Sun into thinking they actually would switch.
If it isn't going to happen, please let Android die so it can be replaced by something cleaner.
If Android dies at this point, it gets replaced by iOS (walled garden) or Windows Mobile (MSIL, which isn't exactly a lot better than Java). I don't consider either of those a good outcome.
Due to the way reflection works in Java, private methods are in fact publically accessible. Doing so is not advisable, but you can do something like this:
Method m = Whatever.class.getDeclaredMethod(name, types); m.setAccessible(true); m.invoke(object, parameters);
If you have a security manager in place it will probably throw a fit when you try to do this, but a lot of java code runs without security managers, including (I believe) android applications. So private-method compatibility is desirable, and can be produced with a clean-room process.
Do that and you lose support from Samsung and HTC, who differentiate their products by using heavily customised runtimes that they do not release source code for.
I'm not sure what you mean by "header profile", but would you also consider Wine to not be allowed? I'm not sure you understand what clean room means -- simply that a specification is built by one person examining an existing system, and passed to another for implementation. You certainly can produce an API this way, and Apache has documentation that they claim supports the notion that Harmony (the API implementation Google used) was produced this way.
It's not clear to me you understand what a clean room implementation is. It is perfectly possible to make a clean-room implementation of an SDK, or a chip, that implements the behavior accurately, without looking at the original code. There is no reason to believe Google did this (except for the sketchy testimony by their CEO).
And the fact that a very large majority of the non-trivial portions of the code clearly do what they do in different ways to Oracle's implementation. And the fact that the developers of the code (in this case Apache, not Google) have stated several times that it is clean room. And that it was an open source project where the practice was to obtain a signed statement from developers providing complete details of exposure to Sun's IP prior to accepting patches from them (see http://harmony.apache.org/auth_cont_quest.html ), so it seems to be pretty clear that either it was clean room, or there is a developer who lied to them in a written warranty and therefore *that developer should be liable*, not Google.
We're talking about an intermediate representation. Both Google and Oracle's virtual machines take their respective bytecode formats and convert them to a register-based machine language prior to execution. The only difference is that Google does this by translating from a different register-based language while Oracle translates from a stack-based language. This isn't about calling conventions, but compiler technology.
An affidavit from a developer about that developer's practices, or even the practices that that developer observed other developers using, is not hearsay.
Google were going to use a completely different API anyway (the android application framework, rather than J2ME which Sunacle would have preferred). By "worried about fragmentation" what they really mean is "worried that people won't pay to license the patented parts of Java".
Except that it won't be able to run the same games (Call of Duty: Black ops comes to mind).
A benchmark of a similar system suggests this game will run in low detail mode with around 23fps, which admittedly is nowhere near as good as consoles (I understand the PS3 averages about 50fps for this game, not sure about Xbox360), but is also not "won't run".
Only those intimately familiar with the Speccy would understand and appreciate:
INC H
LD A,7
AND A,H
RET NZ
LD A, 32
ADD A,L
LD L,A
RET C
LD A,-8
ADD A,H
LD H,A
RET
Takes a pointer to screen memory in HL and adjusts it to point one pixel further down? I know the *start* is right for that, but it's been long enough that I'm not sure about the rest...
So, I wonder if she ever makes coffee at home. Or drinks homemade coffee when visiting a friend etc. All coffee or tea is more than 88C just after making, probably around 95C. This is why I think the lawsuit was stupid.
In the interests of science, I just attempted to verify your assertion. I made two coffees:
- The first was made with instant coffee using freshly-boiled water. It was made in a standard ceramic-type mug that was warm to begin with (a previous coffee had only been finished a couple of minutes previously). I inserted the thermometer (a standard lab-style 76mm immersible -25-250C spirit thermometer) immediately after the water, and by the time it had settled to a reading the temperature was 84C. After carrying the coffee the short walk to my desk, it had dropped to 78C.
- The second was made with a typical home espresso machine (a Krups machine whose model number is not immediately evident). The machine was preheated by running hot water through it for several seconds before making the coffee. The cup used was hot rather than warm this time (initial temperature somewhere around 50C). The temperature of the resulting coffee immediately after the cup had finished filling was 72C.
I'll agree that 60C is too low. But 88C is still way too high.
190F is not nearly double 140F, it is just over 33% hotter.
No, it's less than 10% hotter. (Try converting to Kelvin)
Or: you're arguing about a meaningless comparison. To specify heat as a ratio, you need to agree on a base temperature. It happens that 190F is "nearly double" 140F for base temperatures of about 70-90F, a temperature range that includes the commonly-used "standard ambient temperature" of 77F. As this is approximately the temperature the coffee will cool down to if left a long period of time, it makes a degree of sense to use it as the basis for comparison.
unless you're heating the grounds, your coffee mug and the parts of your French press before you use it, running boiling water (which usually averages around 190-200 degrees Fahrenheit, not 212 like you'd think) through the grounds/machine can lose fifty or more degrees easily
This is true. Which is probably why the instructions for use of such machines typically tell you to preheat the machines and cups, and are frequently provided with a cup-warming plate to make this easier. That said, even after doing this, the resulting coffee is still typically much cooler than the coffee in this case.
if you want to serve coffee or tea that stays hot, fill the cups with hot water ahead of time, and then dump the hot water just before you pour in the coffee/tea.
Or serve it in expanded polystyrene or paper cups, preferably with lids. These cups have a much lower thermal mass than the ceramic ones you're used to.
Actually, you'd be surprised at just how much business is handled on a handshake (particularly in farming).
And once you realise this, you'll no longer be quite so surprised when you realise just how much of contract law is defined by precedents set over farmers arguing about sheep.
So if a writer types 'How does someone publish there book?', Microsoft will send them to a spelling and grammar site instead of HarperCollins?
As long as it isn't PublishAmerica, we can all be happy. Perhaps they should be reserved for idiots with automatic weapons who are really pissed off with life.
No, but it's easier to do so with a civic than a more advanced car, which I think was the point.
There are also many console games that never make it to PCs--or, if they do, they are often riddled with invasive DRM.
There are also many PC games that never make it to consoles -- or, if they do,they have features stripped out to fit the console model better.
I have only ever met one person with one game (Sims 2) who had any problems installing it.
Depends on the game and shear random luck. I had serious issues installing Links 2003 on my parents' PC, which turns out to be because its DVD-ROM drive is not compatible with the DRM on the Links disc (there's a list of about 10 models of drive that won't work buried in a README file on the disc). But I'll grant that that is an unusual experience.
In order to have console-style multiplayer games, you need a monitor big enough for two to four people to fit around. I'm told the only kind of monitor like that is a living room HDTV.
Meh. Sure, the HDTV provides a better experience, but I've quite happily had 3 people playing games on a 17" monitor before now, and as larger monitors (e.g. 21.5" widescreen) are becoming mainstream now, this really isn't that big an issue.
How much would you have to spend today on a PC that's equivalent to, say, an XBox 360? How much does the XBox cost?
There's probably more to it than cost, but last time I checked PCs weren't sold as loss-leaders.
That's an interesting question, bcause the XBox's processor is not directly equivalent to a PC processor. Because it's an in-order execution system, it doesn't really compare well to PC processors jusrt by looking at its specs. It may be a 3-core 2-instruction capable processor, but in reality most code likely only fills one of the instruction slots at a time (similarly to the original Pentium). Whereas modern PC processors tend to be able to handle 2 or even 3 instructions per cycle a lot of the time. So it may be best to think of it as being similar to a modern CPU with about half the clock speed. Although there are still significant differences. A quick review of old documents on it suggests a 21-stage pipeline, which is longer than current-generation PC processors, and means mispredicted branches are going to be slower comparitivlely. It also has a much smaller cache than modern PC processors, and it's 21.6GB/s memory bandwidth is comparable to the very low end of current desktop processors. All-in-all, thererfore, I'd expect any modern dual-core budget processor (e.g. a Celeron G530) to outperrform it in most tasks.
The onboard graphics on a Celeron G530 processor is considered comparable in capability to ATI cards from 3 generations later than the ones that are most similar architecturally to the XBox 360's graphics chip, so this basic PC should substantially outperform the XBox 360 in graphics performance.
So, processor: £36.24 (dabs.com). Add to that processor a budget microATX motherboard (£34.99), 2GB RAM (4 times as much as is in the XBox 360, but the smallest amount available these days) (£11.97), case & PSU (£19.99), hard disk (£34.99) and optical drive (£11.99), and the total is *very* similar to the cost of an Xbox 360 (about £1 more expensive than the cheapest deal I see for a new 360 on google shopping). For a machine that outclasses the 360 in most respects (perhaps even all respects... it is very hard to compare the CPU performance).
I haven't seen the method you're talking about, but calling private methods in Java is quite common to work around certain inadequacies of the standard class library (for instance, I've used code that gets the process handle out of a java.lang.Process object via direct access to its private members in order to then pass this to OS-dependent code, because Java's process management sucks).
A team including Larry Page, Ram Shriram and Eric Schmidt of Google, director James Cameron, Charles Simonyi (Microsoft executive and astronaut), Ross Perot Jr. (son of Ross Perot), Chris Lewicki (NASA Mars mission manager), and Peter Diamandis (X-Prize)
Where's Richard Garriott? Or has he spent his entire fortune on old soviet space program junk already?
Not true. The Dalvik compiler was used to compile the GPL-released Java library/package source.
The Java library source in Android is based on Apache Harmony, and is Apache-licensed, not GPL. Here's an example file from it, with complete copyright notices.
Read the context. Licensing Java would have given them advantages... they would have been able to use the Java virtual machine's native instruction format (meaning applications didn't need to go through a translation phase to run), they would have been able to include J2ME support (thus run preexisting applications and games) and would have been able to use the Java trademark in their advertising (familiar to mobile phone buyers, so would have boosted early sales). Java licensing was desirable, and they evaluated alternatives to Java in order to scare Sun into thinking they actually would switch.
If it isn't going to happen, please let Android die so it can be replaced by something cleaner.
If Android dies at this point, it gets replaced by iOS (walled garden) or Windows Mobile (MSIL, which isn't exactly a lot better than Java). I don't consider either of those a good outcome.
Due to the way reflection works in Java, private methods are in fact publically accessible. Doing so is not advisable, but you can do something like this:
Method m = Whatever.class.getDeclaredMethod(name, types);
m.setAccessible(true);
m.invoke(object, parameters);
If you have a security manager in place it will probably throw a fit when you try to do this, but a lot of java code runs without security managers, including (I believe) android applications. So private-method compatibility is desirable, and can be produced with a clean-room process.
All their IP would belong to somebody else.
You mean all their IP are belong to us?
Move all lawsuit! For great justice!
Do that and you lose support from Samsung and HTC, who differentiate their products by using heavily customised runtimes that they do not release source code for.