A Wii Motion Plus effectively costs $10. That's how much extra you pay for various games (Wii Sports Resort, Tiger Woods PGA Tour, etc.) to get the version with a bundled Motion Plus. So add 2-4 players and no, the price doesn't come anywhere close to $149. At this point, I think we can relegate Natal to a footnote in gaming history. Nintendo did things right: the Wiimote comes standard with the console so everyone has it, and Motion Plus is cheap enough to bundle with games at minimal extra cost. That allows developers to rely on them and not be limiting their market. Microsoft is doing things wrong: not many games will rely on Natal because not many people will have it, and not many people will buy it because its too expensive and there won't be many games that need it.
Reading comments like this one on Slashdot probably consumes that many hours every day. At least the time spent on Google was accomplishing something useful by teaching people how to play PacMan!
This is so true. It would be "fragmentation" if those different versions were all incompatible with each other. But they aren't. Each version of the OS maintains complete backward compatibility with all previous versions. If you want to make your app run on all versions, just write it for 1.5, and it will work perfectly on all later versions as well. If you really need a feature introduced in a later version, target that one and you'll know exactly what fraction of the potential market you're excluding. Either way, you never need to write multiple versions of the app for different OS versions. That is not what I call fragmentation.
If you want to know what fragmentation is, look at Linux. I have to distribute separate 32 bit and 64 bit versions of my software, then discover it mysteriously segfaults when run under Ubuntu due to some subtle incompatibility between that and Fedora, which is what I compiled under. Very frustrating. If Linux managed its diversity half as well as Android does, that would be revolutionary progress.
A very important feature in Android 2.2 that hardly any articles mention is that it supports OpenGL ES 2.0. That means you can use OpenGL Shading Language to write procedural shaders for 3D graphics. This is a major step for Android as a gaming platform.
The summary is incorrect. The majority opinion was written by Breyer, not Kennedy. Kennedy is one of the two (not three like it says) who concurred but thought the majority opinion was too broad. See http://www.nytimes.com/2010/05/18/us/politics/18offenders.html
I have a Nexus One, and also found it nearly unusable in sunlight. So I got an anti-glare screen protector (from http://www.clarivue.com/ and that made a huge improvement.
The onscreen keyboard is also easily fixed, since there are lots of alternatives available. I use SlideIT.
Ten minutes a day, three times a day, for six weeks? So basically they're saying that three hours of playing the game, spread out over a month and a half, wasn't enough to produce a measurable improvement in overall brain function? I'm shocked I tell you, shocked!
I'm not saying these games really do work, but I'd hardly call this sufficient evidence to conclude they don't work either.
Agreed about the Eclipse UI. If you're going to do Android development, use Intellij IDEA, which has quite good Android support and is a vastly superior IDE.
Yes they will know the syntax of the language but the libraries will be totally different.
Actually, they're mostly the same. They took the standard libraries from Apache Harmony. It's missing a few packages that aren't appropriate (like Swing), but most of what a Java programmer expects to be there, is there.
He actually discusses this fairly well in the interview. Here is where it's put most succinctly:
Wired.com: In this multiverse theory, you have a static universe in the middle. From that, smaller universes pop off and travel in different directions, or arrows of time. So does that mean that the universe at the center has no time?
Carroll: So that’s a distinction that is worth drawing. There’s different moments in the history of the universe and time tells you which moment you’re talking about. And then there’s the arrow of time, which give us the feeling of progress, the feeling of flowing or moving through time. So that static universe in the middle has time as a coordinate but there’s no arrow of time. There’s no future versus past, everything is equal to each other.
The essential point is that the 2nd law of thermodynamics is really a backward way of looking at the question. It isn't that entropy increases with time. It's that we define "forward in time" to mean, "the direction of increasing entropy". Our local region of the multiverse happens to have an entropy gradient in one direction, so that's the direction we perceive time to increase in. But other regions of the multiverse might have different directions of increasing entropy, and hence different "arrows of time". And still other regions of the multiverse are completely flat with regard to entropy. In those regions, it isn't meaningful to define any arrow of time at all.
We feel like we're "moving through time" because we can only remember the past, not the future. If we could remember past and future equally well, we wouldn't have that sensation. Every moment would feel static, equally connected to past and feature. We wouldn't have a sense of moving in one particular direction.
So the question is, why can't we remember the future? And the answer is, because increasing entropy is needed to form memories. Just after the big bang, the universe was in a state of very low entropy. All the energy in the universe was concentrated in a tiny region of space. Since then, that energy has steadily spread out and become more diffuse (that is, entropy has increased), but the process still has a long way to go. We still have enormous amounts of energy concentrated into small areas known as stars. But energy is continuously flowing out from our sun and getting transferred from one form to another. Nuclear reactions produce high energy photons, which are used by plants to produce sugars, which our bodies use to produce ATP, which we use to manufacture proteins and form synapses and do all the other things needed to form a memory. At each stage, energy is converted from one form to another, and the entropy of the universe increases a little bit. Forming a memory is one of those transitions. On one side of the transition, the energy is still stored in ATP and the memory doesn't exist yet. On the other side of the transition, ATP has been used to form a memory, so the memory exists and the ATP has been split. Forming a memory requires using energy (and hence producing entropy), so the memory can only exist on the high entropy side of the transition.
My experience is that the best predictor of programming ability (among professional programmers) is whether someone learned to program before college. The best programmers are the people who were introduced to programming when they were 10 and fell in love with it, not the people who got to college, decided CS seemed like a good career path, and so took an intro programming class. If you love doing something, you'll learn to do it well, and if you just see it as a job, you likely won't. In fact, the biggest problem with many CS majors is that they think they know how to program well, not realizing that computer science and software engineering are actually very different subjects.
That said, self taught programmers definitely have holes they need to fill. Lots of other people have said this already but I'll add yet another vote for it: algorithms and data structures. Get a good book on them. Learn them. This is bread and butter stuff that a professional programmer really needs to understand, and if you haven't studied it, you probably don't realize just how much you don't know.
Why on earth does anyone even think that lots of snow contradicts global warming? snow != cold. Anyone who claims otherwise has clearly never spent much time in a cold climate. Snow only falls in a narrow range of temperatures. You don't get snow when it's either too warm or too cold. If you increase the temperature, you simply shift that window: some places that would previously have had snow become too warm, and some places that were previously too cold to get snow become warm enough. And certainly the midwest is frequently too cold to get snow during the winter, so it's very reasonable that increased temperatures would lead to more snow there, not less.
That's in reference to the standard, desktop JVMs which are indeed very very fast. But the Dalvik JVM used by Android devices is completely unrelated to them and, importantly, does not yet have a just-in-time compiler. That makes it much slower than native code.
That's not due to any fundamental limitation. In fact, they are hard at work on creating a JIT for Dalvik. It just hasn't been released yet. Once it is, Android applications should become several times faster.
This is hugely worrying when you realise that just one error -- just one -- will usually invalidate a computer program.
If you believe that, you are forced to concluded that most likely no valid program has ever been written in the history of the human race. All programs have bugs in them (yes, I truly mean all), and in most cases those bugs do not invalidate all their results.
Don't misunderstand me. I definitely support releasing the source code for scientific programs, and I believe that finding bugs in them will ultimately lead to better science. But nothing useful is achieved by absurd hyperbole like the quote above.
We really don't know what range of conditions life could exist under. We tend to be very biased based on the conditions we are adapted to. We define the "habitable zone" to cover planets where life similar to us could exist. But we don't know what other sorts of life could exist under very different conditions.
As an example, it's easy to engineer proteins that are either much more stable or much less stable than the ones typically found in Earth organisms. Our proteins have evolved to be exactly as stable as they need to be in order to work well under physiological conditions. Heat them up a bit and they denature. Cool them down and they stop working. But if Earth were much warmer or much colder, our proteins would just have evolved to be much more (or less) stable, and then they would work nicely under those conditions.
And then there's the question of very different chemistries. Could life exist at 2000 Celsius? Certainly not life as we know it, since our biological molecules would all be vaporized. But there are other materials that are solid on Earth, but would become soft and reactive at those temperatures. Could life be formed from them? We just don't know.
Did I read that correctly? A Republican just argued against privatizing a huge government program??? Beware the coming plague of locusts! The apocalypse is near!
Yep, there's a big difference between "science" (what scientists do, a process for studying the universe) and "Science(TM)" (a religion based on believing a large body of doctrine without having a clear understanding of what evidence that doctrine is based on). It doesn't help that many of the "science reporters" for the news media don't have a clear understanding of the difference.
Exactly. Evolution is a fundamental mathematical process that applies to information, not organisms. To get evolution, you only need two elements:
1. An information storage medium.
2. A mechanism for reproducing that information such that certain pieces of information are more likely to get reproduced than others.
Once you have those, everything else follows, and it doesn't matter what the precise storage mechanism or copying mechanism is. Horizontal gene transfer is just another way for genetic information to reproduce.
Actually, the numbers quoted in the story match up very well with my own experience. At least in the Silicon Valley area, $60,000 would be an absurdly low salary for any programmer but someone straight out of college (and would probably be on the low side even for them). I've never been asked to pay for my own tools, and what on earth is this "hyperspecialization" he's talking about? The most valued programmers are those with a broad range of experience who will be able to handle whatever problems are thrown at them.
Everyone's experiences are different, and maybe his description is accurate for some people. But it's certainly not the only one, and I'm not convinced it's even a common one.
How in the world did you deduce that 1.7x performance improvement while comparing it only to itself translates into Dalvik being significantly faster than other non-JIT JVMs?
The same post stated that the JIT version was about 1.7 times faster than the non-JIT version. In my experience, most JVMs are 50-100 times faster with the JIT than without it. Applying those factors suggests Dalvik is significantly *faster* than most JVMs without JITs.
Again, if you can supply a specific reference to benchmarks that support your claim, please post it.
I just did a search for "dalvik benchmark" on on the Android Developer group. The only result I found was this one:
http://groups.google.com/group/android-developers/browse_thread/thread/1fc0d84e6f8ec080/80b9df7a8cd2584a/
It claims that the experimental, in development JIT for Dalvik is about 20x slower than modern, JIT enabled VMs. That's hardly surprising, given that the developers have explicitly said that it's still under development and doesn't do much optimization yet. And that's completely different from your claim that interpreted Dalvik is "20x slower than most other non-JIT'd java VMs." That claim is not supported by any information I could find, and in fact seemed to be widely contradicted.
A Wii Motion Plus effectively costs $10. That's how much extra you pay for various games (Wii Sports Resort, Tiger Woods PGA Tour, etc.) to get the version with a bundled Motion Plus. So add 2-4 players and no, the price doesn't come anywhere close to $149. At this point, I think we can relegate Natal to a footnote in gaming history. Nintendo did things right: the Wiimote comes standard with the console so everyone has it, and Motion Plus is cheap enough to bundle with games at minimal extra cost. That allows developers to rely on them and not be limiting their market. Microsoft is doing things wrong: not many games will rely on Natal because not many people will have it, and not many people will buy it because its too expensive and there won't be many games that need it.
Reading comments like this one on Slashdot probably consumes that many hours every day. At least the time spent on Google was accomplishing something useful by teaching people how to play PacMan!
This is so true. It would be "fragmentation" if those different versions were all incompatible with each other. But they aren't. Each version of the OS maintains complete backward compatibility with all previous versions. If you want to make your app run on all versions, just write it for 1.5, and it will work perfectly on all later versions as well. If you really need a feature introduced in a later version, target that one and you'll know exactly what fraction of the potential market you're excluding. Either way, you never need to write multiple versions of the app for different OS versions. That is not what I call fragmentation.
If you want to know what fragmentation is, look at Linux. I have to distribute separate 32 bit and 64 bit versions of my software, then discover it mysteriously segfaults when run under Ubuntu due to some subtle incompatibility between that and Fedora, which is what I compiled under. Very frustrating. If Linux managed its diversity half as well as Android does, that would be revolutionary progress.
A very important feature in Android 2.2 that hardly any articles mention is that it supports OpenGL ES 2.0. That means you can use OpenGL Shading Language to write procedural shaders for 3D graphics. This is a major step for Android as a gaming platform.
The summary is incorrect. The majority opinion was written by Breyer, not Kennedy. Kennedy is one of the two (not three like it says) who concurred but thought the majority opinion was too broad. See http://www.nytimes.com/2010/05/18/us/politics/18offenders.html
The onscreen keyboard is also easily fixed, since there are lots of alternatives available. I use SlideIT.
three times a day
Sorry, typo! That's three times per week, not per day. Yes, it makes a big difference.
Ten minutes a day, three times a day, for six weeks? So basically they're saying that three hours of playing the game, spread out over a month and a half, wasn't enough to produce a measurable improvement in overall brain function? I'm shocked I tell you, shocked!
I'm not saying these games really do work, but I'd hardly call this sufficient evidence to conclude they don't work either.
(2) They run free() asynchronously, and batch up blocks of ~200 frees for bulk processing.
That's essentially identical to what a concurrent garbage collector does, which Java has had for how many years now?
Agreed about the Eclipse UI. If you're going to do Android development, use Intellij IDEA, which has quite good Android support and is a vastly superior IDE.
Yes they will know the syntax of the language but the libraries will be totally different.
Actually, they're mostly the same. They took the standard libraries from Apache Harmony. It's missing a few packages that aren't appropriate (like Swing), but most of what a Java programmer expects to be there, is there.
Here is the index to the API docs: http://developer.android.com/reference/packages.html. As you can see, a large fraction of the java.* and javax.* packages are there.
Wired.com: In this multiverse theory, you have a static universe in the middle. From that, smaller universes pop off and travel in different directions, or arrows of time. So does that mean that the universe at the center has no time?
Carroll: So that’s a distinction that is worth drawing. There’s different moments in the history of the universe and time tells you which moment you’re talking about. And then there’s the arrow of time, which give us the feeling of progress, the feeling of flowing or moving through time. So that static universe in the middle has time as a coordinate but there’s no arrow of time. There’s no future versus past, everything is equal to each other.
The essential point is that the 2nd law of thermodynamics is really a backward way of looking at the question. It isn't that entropy increases with time. It's that we define "forward in time" to mean, "the direction of increasing entropy". Our local region of the multiverse happens to have an entropy gradient in one direction, so that's the direction we perceive time to increase in. But other regions of the multiverse might have different directions of increasing entropy, and hence different "arrows of time". And still other regions of the multiverse are completely flat with regard to entropy. In those regions, it isn't meaningful to define any arrow of time at all.
We feel like we're "moving through time" because we can only remember the past, not the future. If we could remember past and future equally well, we wouldn't have that sensation. Every moment would feel static, equally connected to past and feature. We wouldn't have a sense of moving in one particular direction.
So the question is, why can't we remember the future? And the answer is, because increasing entropy is needed to form memories. Just after the big bang, the universe was in a state of very low entropy. All the energy in the universe was concentrated in a tiny region of space. Since then, that energy has steadily spread out and become more diffuse (that is, entropy has increased), but the process still has a long way to go. We still have enormous amounts of energy concentrated into small areas known as stars. But energy is continuously flowing out from our sun and getting transferred from one form to another. Nuclear reactions produce high energy photons, which are used by plants to produce sugars, which our bodies use to produce ATP, which we use to manufacture proteins and form synapses and do all the other things needed to form a memory. At each stage, energy is converted from one form to another, and the entropy of the universe increases a little bit. Forming a memory is one of those transitions. On one side of the transition, the energy is still stored in ATP and the memory doesn't exist yet. On the other side of the transition, ATP has been used to form a memory, so the memory exists and the ATP has been split. Forming a memory requires using energy (and hence producing entropy), so the memory can only exist on the high entropy side of the transition.
My experience is that the best predictor of programming ability (among professional programmers) is whether someone learned to program before college. The best programmers are the people who were introduced to programming when they were 10 and fell in love with it, not the people who got to college, decided CS seemed like a good career path, and so took an intro programming class. If you love doing something, you'll learn to do it well, and if you just see it as a job, you likely won't. In fact, the biggest problem with many CS majors is that they think they know how to program well, not realizing that computer science and software engineering are actually very different subjects.
That said, self taught programmers definitely have holes they need to fill. Lots of other people have said this already but I'll add yet another vote for it: algorithms and data structures. Get a good book on them. Learn them. This is bread and butter stuff that a professional programmer really needs to understand, and if you haven't studied it, you probably don't realize just how much you don't know.
Why on earth does anyone even think that lots of snow contradicts global warming? snow != cold. Anyone who claims otherwise has clearly never spent much time in a cold climate. Snow only falls in a narrow range of temperatures. You don't get snow when it's either too warm or too cold. If you increase the temperature, you simply shift that window: some places that would previously have had snow become too warm, and some places that were previously too cold to get snow become warm enough. And certainly the midwest is frequently too cold to get snow during the winter, so it's very reasonable that increased temperatures would lead to more snow there, not less.
That's in reference to the standard, desktop JVMs which are indeed very very fast. But the Dalvik JVM used by Android devices is completely unrelated to them and, importantly, does not yet have a just-in-time compiler. That makes it much slower than native code.
That's not due to any fundamental limitation. In fact, they are hard at work on creating a JIT for Dalvik. It just hasn't been released yet. Once it is, Android applications should become several times faster.
This is hugely worrying when you realise that just one error -- just one -- will usually invalidate a computer program.
If you believe that, you are forced to concluded that most likely no valid program has ever been written in the history of the human race. All programs have bugs in them (yes, I truly mean all), and in most cases those bugs do not invalidate all their results.
Don't misunderstand me. I definitely support releasing the source code for scientific programs, and I believe that finding bugs in them will ultimately lead to better science. But nothing useful is achieved by absurd hyperbole like the quote above.
We really don't know what range of conditions life could exist under. We tend to be very biased based on the conditions we are adapted to. We define the "habitable zone" to cover planets where life similar to us could exist. But we don't know what other sorts of life could exist under very different conditions.
As an example, it's easy to engineer proteins that are either much more stable or much less stable than the ones typically found in Earth organisms. Our proteins have evolved to be exactly as stable as they need to be in order to work well under physiological conditions. Heat them up a bit and they denature. Cool them down and they stop working. But if Earth were much warmer or much colder, our proteins would just have evolved to be much more (or less) stable, and then they would work nicely under those conditions.
And then there's the question of very different chemistries. Could life exist at 2000 Celsius? Certainly not life as we know it, since our biological molecules would all be vaporized. But there are other materials that are solid on Earth, but would become soft and reactive at those temperatures. Could life be formed from them? We just don't know.
Did I read that correctly? A Republican just argued against privatizing a huge government program??? Beware the coming plague of locusts! The apocalypse is near!
Yep, there's a big difference between "science" (what scientists do, a process for studying the universe) and "Science(TM)" (a religion based on believing a large body of doctrine without having a clear understanding of what evidence that doctrine is based on). It doesn't help that many of the "science reporters" for the news media don't have a clear understanding of the difference.
Exactly. Evolution is a fundamental mathematical process that applies to information, not organisms. To get evolution, you only need two elements:
1. An information storage medium.
2. A mechanism for reproducing that information such that certain pieces of information are more likely to get reproduced than others.
Once you have those, everything else follows, and it doesn't matter what the precise storage mechanism or copying mechanism is. Horizontal gene transfer is just another way for genetic information to reproduce.
Actually, the numbers quoted in the story match up very well with my own experience. At least in the Silicon Valley area, $60,000 would be an absurdly low salary for any programmer but someone straight out of college (and would probably be on the low side even for them). I've never been asked to pay for my own tools, and what on earth is this "hyperspecialization" he's talking about? The most valued programmers are those with a broad range of experience who will be able to handle whatever problems are thrown at them.
Everyone's experiences are different, and maybe his description is accurate for some people. But it's certainly not the only one, and I'm not convinced it's even a common one.
How in the world did you deduce that 1.7x performance improvement while comparing it only to itself translates into Dalvik being significantly faster than other non-JIT JVMs?
Dalvik JIT speed = 1.7*Dalvik non-JIT speed
JVM JIT speed = 20*Dalvik JIT speed
JVM JIT speed = 100*JVM non-JIT speed
Trivial algebra yields
Dalvik non-JIT speed = 2.94*JVM non-JIT speed
The same post stated that the JIT version was about 1.7 times faster than the non-JIT version. In my experience, most JVMs are 50-100 times faster with the JIT than without it. Applying those factors suggests Dalvik is significantly *faster* than most JVMs without JITs.
Again, if you can supply a specific reference to benchmarks that support your claim, please post it.
I just did a search for "dalvik benchmark" on on the Android Developer group. The only result I found was this one: http://groups.google.com/group/android-developers/browse_thread/thread/1fc0d84e6f8ec080/80b9df7a8cd2584a/ It claims that the experimental, in development JIT for Dalvik is about 20x slower than modern, JIT enabled VMs. That's hardly surprising, given that the developers have explicitly said that it's still under development and doesn't do much optimization yet. And that's completely different from your claim that interpreted Dalvik is "20x slower than most other non-JIT'd java VMs." That claim is not supported by any information I could find, and in fact seemed to be widely contradicted.
Android's dalvik engine is widely known to be roughly 20x slower than most other non-JIT'd java VMs.
Could you give a reference for that claim? I've certainly never heard it before, so I'd like to know what it's based on.