I was at the Lupa Zoo last weekend, which was a lot of fun. It's always a pleasure to see and feed exotic animals. Stationed throughout the zoo were boxes with bags of peanuts and crackers. There was a little sign asking for $2 or $5 (depending on size), and informing us "Don't Steal." The honor system was at work.
What's interesting to me is that the food was ultimately destined for the animal's bellies, whether via my hand or some employee's. In a sense, we weren't buying the physical food, we were buying the experience of feeding the animals. The gift shop wasn't based on the honor system: there would be an actual, real expense to stealing a stuffed animal. The profit from the feed bags certainly helps keep the zoo going, but if an individual stole a bag who wouldn't have purchased one otherwise, the zoo doesn't really lose anything.
These economics are the same as noncommercial copyright violations (AKA piracy). And seeing the parallels has really convinced me that the honor system is best in both situations. The new Intellectual Property Czar had a request for comments recently, and the media industries weighed in with their hopes for our future: censorship of the Internet, spyware on our computers to detect any unethical behavior, federal cops enforcing these edicts. Free wifi spots will be a thing of the past. Youtube may be as well. For one thing, this opens us up for abuses (will the ability to freely spy on everything any American does with his computer be limited to downloading music? Australian censorship is already being used to prevent access to any information about euthanasia). But even if you trust our government, it legitimizes the actions of nations like Iran and China, who use this sort of information to capture and torture human rights activists.
Groups like the RIAA and MPAA like to present our options as either accepting censorship and surveillance, or just letting our entertainment industries die. But the idea that laws are the only way to influence behavior is a scary one. If I hadn't paid for the bag of feed, I wouldn't have been fined $2 million. I've just been taught stealing is wrong, absent laws. Cigarette's are a bad choice, but we let people make that choice. Plenty feel premarital sex, or at the very least adultery, are wrong, but we don't punish either of those with fines or jail time. Adultery in particular seems far more hurtful to another human being then downloading music, but we don't legislate against it. Why?
Because we previously understood that it isn't the courts role to dish out vengeance for every little wrong. Especially when an action occurs between two consenting adults (as piracy does), the violations to our freedoms necessary to enforce the law are far too burdensome to be worthwhile. Instead, we have another tactic: we teach children the difference between right and wrong. How about instead of spying, censorship and lawsuits, we just teach our children how buying things lets the producers keep producing? And if the occasional free loader declines, or if a family struggling to feed themselves takes a movie they couldn't afford, or we download a movie because our original dvd has broken, who cares? Of the ten commandments, I only count three we legislate. Do business models deserve a place above the ten commandments?
I recommend we all acknowledge piracy is bad, and then give up on the hunt to eradicate it from the earth.
Sunday, April 18, 2010
Sunday, April 11, 2010
The iPhone: A Programmer's View
Apple has been in the news a lot lately with the release of the iPad, details of the next iteration of the iPhone OS, a patent lawsuit against HTC, and some notable changes to their developer agreements. Right now, they dominate the tablet and computer-like smart-phone market, and it looks like they're trying to get away with the same sort of behavior Microsoft pulled against them. Unfortunately I think they've learned the wrong lessons. The OS industry in the 1980's didn't have the depth of competition the smart-phone market has today. The line between phones, tablets and computers is blurring, which will make it harder to monopolize any one domain. And Microsoft succeeded in its bullying because it had buy-in from two crucial groups: the consumer, and the developer. Apple is doing well with the former, but antagonizing the latter.
Windows has over 90% market-share and has done even better in the past. Why? A large part of it is applications. Almost any piece of software you can find will run on Windows. If you like video games, or need a particular piece of business software, Windows will run it. Cross platform development has improved recently, but even today you'll find many more windows exclusives then any other system.
So the consumers go where the software is, and that in turn drives the programmers to support Windows. With 90% of the market, your software doesn't stand much chance if it won't run on Windows. You end up with a feedback loop: consumers go where the apps are, the apps are written for the OS the consumer uses. If you cut either side, you're in danger. For all its failings, Microsoft did well enough keeping the consumer content, and did an excellent job of giving developers what they wanted.
Microsoft packaged QBasic with Windows until recently, which was my first exposure to programming. They've developed one of the best development environments out there, and give out a fully-functional free version. You can write software for windows without spending a penny, and Microsoft demands no licensing fees for you to sell it.
Contrast this with Apple. To release an iPhone application you need to pay $99 up front, then give Apple a cut of your profits. After a great deal of effort producing the application, Apple needs to approve it, and there are many tales on the internet of benign apps getting rejected. If Apple doesn't like it for any reason, your development effort is sunk. While you can program in literally hundreds of languages for Windows (or even write your own), Apple now restricts you to 3.
When Apple rejected Flash on the iPhone/iPad, I was surprised. But the action was understandable: Flash would be a hole in the App Store model: another way of distributing content without Apple's approval or (more cynically) without Apple getting its cut. Adobe responded as many other programming languages have: by writing a compiler that turns flash code into iPhone code. You program in a human-readable, high level language. A compiler turns this into 1's and 0's the computer can read. Each operating system has its own dialect of 1's and 0's, but there's no reason you can't compile into any of them. This seemed like a reasonable solution: the apps would now be indistinguishable from any other app. They would go through Apple's store, through its approval process, and Apple would get its cut. Because the 1's and 0's are essentially the same no matter what the original language they were written in, there would no longer be any obvious difference between a flash app and a c app.
Apple has said no. The latest iteration of the agreement developers need to sign to write for the iPhone or iPad has been updated: you must write your programs in c, c++ or objective-c. Objective-c, born in 1986, is used extensively in Macs and iPhones, but nowhere else. C, born in 1972, was once all the rage but is rather out of date now. It's still used, but not frequently. C++, born 1979 is a very popular (but complicated) language. The youngest is as old as me, and these represent just a small spectrum of the language paradigms that exist. Most programmers have some language they like best, and its usually not any of these anymore. These are all slow languages to develop in: newer ones let you produce working code much faster. And given all the existing software already in existence in another language, there are lots of programs that could have easily been ported to the iPad, but now won't be.
The idea is to force developers to commit exclusively to the Apple universe. With a modern language you could easily develop for every major smartphone and every major tablet at once. Apple seems to hope that by taking away these cross platform choices, developers will give up on the Android, or Windows, and build iPhone exclusives. But I highly doubt that'll happen, at least not with the sort of developers you want to attract. By taking away languages programmers want to write in, by taking away the ability to easily port something you wrote for Windows to the iPad, and by all the other anti-developer actions Apple has taken, I suspect most will just write for something else. Apple has gotten consumer buy-in, but if the developers leave, the consumers will too. Will you still want an iPhone if nobody's writing apps for it? Apple's throwing its weight around because it has an early lead, which worked well for Microsoft. But Microsoft never used its development community as fodder for its corporate battles.
Perhaps times have changed. Perhaps there are enough developers out there that you can push away most of the community and still have all the software you need. As programs continue migrating into web-apps, maybe the battle over natively running apps will stop mattering so much. But I've got a feeling pundits will be pointing at this action in the years to come as the moment the iPhone jumped the shark.
Windows has over 90% market-share and has done even better in the past. Why? A large part of it is applications. Almost any piece of software you can find will run on Windows. If you like video games, or need a particular piece of business software, Windows will run it. Cross platform development has improved recently, but even today you'll find many more windows exclusives then any other system.
So the consumers go where the software is, and that in turn drives the programmers to support Windows. With 90% of the market, your software doesn't stand much chance if it won't run on Windows. You end up with a feedback loop: consumers go where the apps are, the apps are written for the OS the consumer uses. If you cut either side, you're in danger. For all its failings, Microsoft did well enough keeping the consumer content, and did an excellent job of giving developers what they wanted.
Microsoft packaged QBasic with Windows until recently, which was my first exposure to programming. They've developed one of the best development environments out there, and give out a fully-functional free version. You can write software for windows without spending a penny, and Microsoft demands no licensing fees for you to sell it.
Contrast this with Apple. To release an iPhone application you need to pay $99 up front, then give Apple a cut of your profits. After a great deal of effort producing the application, Apple needs to approve it, and there are many tales on the internet of benign apps getting rejected. If Apple doesn't like it for any reason, your development effort is sunk. While you can program in literally hundreds of languages for Windows (or even write your own), Apple now restricts you to 3.
When Apple rejected Flash on the iPhone/iPad, I was surprised. But the action was understandable: Flash would be a hole in the App Store model: another way of distributing content without Apple's approval or (more cynically) without Apple getting its cut. Adobe responded as many other programming languages have: by writing a compiler that turns flash code into iPhone code. You program in a human-readable, high level language. A compiler turns this into 1's and 0's the computer can read. Each operating system has its own dialect of 1's and 0's, but there's no reason you can't compile into any of them. This seemed like a reasonable solution: the apps would now be indistinguishable from any other app. They would go through Apple's store, through its approval process, and Apple would get its cut. Because the 1's and 0's are essentially the same no matter what the original language they were written in, there would no longer be any obvious difference between a flash app and a c app.
Apple has said no. The latest iteration of the agreement developers need to sign to write for the iPhone or iPad has been updated: you must write your programs in c, c++ or objective-c. Objective-c, born in 1986, is used extensively in Macs and iPhones, but nowhere else. C, born in 1972, was once all the rage but is rather out of date now. It's still used, but not frequently. C++, born 1979 is a very popular (but complicated) language. The youngest is as old as me, and these represent just a small spectrum of the language paradigms that exist. Most programmers have some language they like best, and its usually not any of these anymore. These are all slow languages to develop in: newer ones let you produce working code much faster. And given all the existing software already in existence in another language, there are lots of programs that could have easily been ported to the iPad, but now won't be.
The idea is to force developers to commit exclusively to the Apple universe. With a modern language you could easily develop for every major smartphone and every major tablet at once. Apple seems to hope that by taking away these cross platform choices, developers will give up on the Android, or Windows, and build iPhone exclusives. But I highly doubt that'll happen, at least not with the sort of developers you want to attract. By taking away languages programmers want to write in, by taking away the ability to easily port something you wrote for Windows to the iPad, and by all the other anti-developer actions Apple has taken, I suspect most will just write for something else. Apple has gotten consumer buy-in, but if the developers leave, the consumers will too. Will you still want an iPhone if nobody's writing apps for it? Apple's throwing its weight around because it has an early lead, which worked well for Microsoft. But Microsoft never used its development community as fodder for its corporate battles.
Perhaps times have changed. Perhaps there are enough developers out there that you can push away most of the community and still have all the software you need. As programs continue migrating into web-apps, maybe the battle over natively running apps will stop mattering so much. But I've got a feeling pundits will be pointing at this action in the years to come as the moment the iPhone jumped the shark.
Saturday, April 3, 2010
That's no space station...it's a moon!
I posted previously about a future energy source: solar panels in space. Without an atmosphere to get in the way, and without that whole "day and night" thing, solar panels can absorb easily 300% of the energy they would on Earth. Because the energy would be constant, we could avoid having to build wasteful methods of preserving energy for night or cloudy days. Overall, its a very promising technology.
But there are downsides: specifically, cost. Shooting things into space is not cheap. The best figure I could find puts bringing a US ton of matter into space at just under $10m. That would decline if we sent more things into space: it's far more expensive to build individual shuttles then to mass produce the launching mechanisms. But even at a quarter the cost, the economics of these space panels is questionable. You might not get as much sunlight on Earth, but space travel is a pricey proposition. Thus while these space panels may someday form a viable energy source, we're probably not ready yet.
But there's a better option, I've realized. Space solar panels work so well because of the lack of an atmosphere: well, the moon lacks one as well. Solar panels are usually constructed of silicon, which turns out to be the second most prevalent element in the moon's crust. Instead of building solar panels here on Earth and tossing them out of our gravity well, we could just construct the solar panels on the moon. This turns it from a question of cheap space travel to a question of extraterrestrial construction. Any complicated machinery would be constructed here on Earth, then rocketed to the moon. There, cousins of the Mars Rover would shovel moon dust into little self contained factories. Solar Panels would come out, be laid in grids across the lunar surface, and hooked up to a microwave generator that would beam plentiful energy back to Earth. We'd have to keep sending new robots and factories as they break (at least in the short term), but besides that the solar panel fields could grow and grow and grow. Plentiful energy for all!
And it would, I suspect, have to be for all. Space is one thing, but moon-based construction is going to be a thorny political issue. Who owns the land on the moon? The first person to start using it? And would it be rational for America (if we're the ones building the Lunar Solar Fields) to switch to a pure solar energy society while China continues burning coal? No, I suspect it makes far more sense to get everybody over to to this climate friendly energy source as soon as possible. It would require an unprecedented degree of global cooperation, which worries me. But if we could find an agreeable way to distribute the energy we could move over to a vastly more environmentally friendly energy source in the very near future. It's a tricky engineering problem: constructing factories in an inhospitable environment with minimal direct human interaction, but its not something that strikes me as beyond our current means. It shouldn't require terribly advanced robotics, or major advances in solar panel construction. Someday you may look up at the moon and see a little splotch of black, and in the following decades that black would grow until our great grandchildren look up at the sky and can dimly make out a great spherical solar panel, orbiting the planet, providing energy more plentiful then anything we've ever known.
But there are downsides: specifically, cost. Shooting things into space is not cheap. The best figure I could find puts bringing a US ton of matter into space at just under $10m. That would decline if we sent more things into space: it's far more expensive to build individual shuttles then to mass produce the launching mechanisms. But even at a quarter the cost, the economics of these space panels is questionable. You might not get as much sunlight on Earth, but space travel is a pricey proposition. Thus while these space panels may someday form a viable energy source, we're probably not ready yet.
But there's a better option, I've realized. Space solar panels work so well because of the lack of an atmosphere: well, the moon lacks one as well. Solar panels are usually constructed of silicon, which turns out to be the second most prevalent element in the moon's crust. Instead of building solar panels here on Earth and tossing them out of our gravity well, we could just construct the solar panels on the moon. This turns it from a question of cheap space travel to a question of extraterrestrial construction. Any complicated machinery would be constructed here on Earth, then rocketed to the moon. There, cousins of the Mars Rover would shovel moon dust into little self contained factories. Solar Panels would come out, be laid in grids across the lunar surface, and hooked up to a microwave generator that would beam plentiful energy back to Earth. We'd have to keep sending new robots and factories as they break (at least in the short term), but besides that the solar panel fields could grow and grow and grow. Plentiful energy for all!
And it would, I suspect, have to be for all. Space is one thing, but moon-based construction is going to be a thorny political issue. Who owns the land on the moon? The first person to start using it? And would it be rational for America (if we're the ones building the Lunar Solar Fields) to switch to a pure solar energy society while China continues burning coal? No, I suspect it makes far more sense to get everybody over to to this climate friendly energy source as soon as possible. It would require an unprecedented degree of global cooperation, which worries me. But if we could find an agreeable way to distribute the energy we could move over to a vastly more environmentally friendly energy source in the very near future. It's a tricky engineering problem: constructing factories in an inhospitable environment with minimal direct human interaction, but its not something that strikes me as beyond our current means. It shouldn't require terribly advanced robotics, or major advances in solar panel construction. Someday you may look up at the moon and see a little splotch of black, and in the following decades that black would grow until our great grandchildren look up at the sky and can dimly make out a great spherical solar panel, orbiting the planet, providing energy more plentiful then anything we've ever known.
Monday, March 15, 2010
Bangs, Bounces, Freezes, Crunches
The fabric of space-time is expanding in every direction. All the stars in the night sky are receding from our view: the more distant the star, the faster the retreat. Someday the night sky will be black, as even the closest star (if any still burn on) is racing away faster than the light that brings us its news. This is not a violation of Einstein's prohibition against moving faster than light: that rule only applies to matter and energy, not to space-time itself.
What's going on? Empty space is growing around us. I've written about this before, using the analogy of a universe on a ripple spreading out across a pond. Physicists aren't sure what's causing the expansion of the universe, so they give it the mysterious moniker "dark energy". If there really are mysterious bearers of this force, dark-trons you might call them, they account for 74% of the energy/mass in the universe.
Physicists used to believe in a Big Crunch (some still do, I'm sure) where the Universe gets pulled back together into a point, a reverse Big Bang. This lead naturally to the Big Bounce theory, where immediately after the Big Crunch you've got a new Big Bang. The universe would cycle endlessly (although possibly slowly winding down...), life would begin again and again and again.
I recall wondering about this as a child, and what it meant for humanity's future. It seemed to mark a fixed end to our days. No matter how successful our civilization is, no matter how many star systems we colonize, it would face extinction in the Big Crunch. Sure, a new universe might spring to life, but how could we get there? You can't outrun space shrinking, as there's nowhere else to run to. There could be hope, retreating out of space time for a few million years, but such a task would require entirely unknown laws of physics. From a relativistic standpoint we're doomed in the Big Crunch model.
But then physicists observed that not only is the universe expanding, it's expanding at an ever accelerating rate. It shows no sign of pulling back in for a Big Crunch. So another theory for the end of days took center stage: The Big Freeze. In an expanding Universe, there is increasingly less and less energy per unit volume. Someday a single photon zipping across an empty expanse that once housed our solar system would be an usually warm region of the Universe. Again, not much hope for mankind: this story doesn't end with perpetual rebirths of the Universe we could hitch a ride onto: it ends with order decaying into a vast expanse of nothingness.
So humanity must die. If it comforts you, we're probably talking billions of years of time. And anyways, worrying about humanity's end in terms of the universe's death is a bit like declining desert on the Titanic...but then, there's another theory worth considering...
String Theory has given rise to mathematical models that suggest our universe may not be all there is. In these physical theories, we live on a brane (derived from membrane), a self contained universe floating in a larger reality. Reusing the metaphor from an earlier post, we would be analogous to a civilization living on a ripple in a lake. There are other ripples, there may even be other lakes. Spacetime would be a material we live on, but the energy for the Big Bang would have come from a collision with another sheet of reality.
And suddenly, there's hope again. If space is large enough, it may contain many separate universes, different realities created by different big bangs. These would be unimaginably far away, but if you sit in your spaceship for sufficient aeons you could visit. And even if there's just one, given enough time a new collision will occur: Really, this could happen at any moment. You never know when the space around you is suddenly going to erupt with the energy of trillions of suns. It's amazing how successful physics is at introducing new things for us to worry about (quantum vacuum collapse is a fun one for its combination of utter devastation and quantum weirdness).
So what's this all mean for us? If we can survive sufficiently long in the big freeze, and then survive a universe being born around us, we can keep going as a civilization indefinitely. It seems like a harsh journey for our bodies, but if we programmed the patterns of our DNA into stronger matter it could recreate us once the new universe is born and grown up into a more hospitable place. Ideally nanobots would survive a high energy wave as the new universe passes over them, but if that won't work we could leave patterns of energy to get swept up in the new universe. These would interact at a quantum level with the new matter, so it evolves in a pattern we wished, eventually recreating some simple robot tasked with rebuilding humanity.
As our understanding of physics improves I'll keep you up to date, but the current prognosis is that an eternal civilization is possible (however catastrophically unlikely).
What's going on? Empty space is growing around us. I've written about this before, using the analogy of a universe on a ripple spreading out across a pond. Physicists aren't sure what's causing the expansion of the universe, so they give it the mysterious moniker "dark energy". If there really are mysterious bearers of this force, dark-trons you might call them, they account for 74% of the energy/mass in the universe.
Physicists used to believe in a Big Crunch (some still do, I'm sure) where the Universe gets pulled back together into a point, a reverse Big Bang. This lead naturally to the Big Bounce theory, where immediately after the Big Crunch you've got a new Big Bang. The universe would cycle endlessly (although possibly slowly winding down...), life would begin again and again and again.
I recall wondering about this as a child, and what it meant for humanity's future. It seemed to mark a fixed end to our days. No matter how successful our civilization is, no matter how many star systems we colonize, it would face extinction in the Big Crunch. Sure, a new universe might spring to life, but how could we get there? You can't outrun space shrinking, as there's nowhere else to run to. There could be hope, retreating out of space time for a few million years, but such a task would require entirely unknown laws of physics. From a relativistic standpoint we're doomed in the Big Crunch model.
But then physicists observed that not only is the universe expanding, it's expanding at an ever accelerating rate. It shows no sign of pulling back in for a Big Crunch. So another theory for the end of days took center stage: The Big Freeze. In an expanding Universe, there is increasingly less and less energy per unit volume. Someday a single photon zipping across an empty expanse that once housed our solar system would be an usually warm region of the Universe. Again, not much hope for mankind: this story doesn't end with perpetual rebirths of the Universe we could hitch a ride onto: it ends with order decaying into a vast expanse of nothingness.
So humanity must die. If it comforts you, we're probably talking billions of years of time. And anyways, worrying about humanity's end in terms of the universe's death is a bit like declining desert on the Titanic...but then, there's another theory worth considering...
String Theory has given rise to mathematical models that suggest our universe may not be all there is. In these physical theories, we live on a brane (derived from membrane), a self contained universe floating in a larger reality. Reusing the metaphor from an earlier post, we would be analogous to a civilization living on a ripple in a lake. There are other ripples, there may even be other lakes. Spacetime would be a material we live on, but the energy for the Big Bang would have come from a collision with another sheet of reality.
And suddenly, there's hope again. If space is large enough, it may contain many separate universes, different realities created by different big bangs. These would be unimaginably far away, but if you sit in your spaceship for sufficient aeons you could visit. And even if there's just one, given enough time a new collision will occur: Really, this could happen at any moment. You never know when the space around you is suddenly going to erupt with the energy of trillions of suns. It's amazing how successful physics is at introducing new things for us to worry about (quantum vacuum collapse is a fun one for its combination of utter devastation and quantum weirdness).
So what's this all mean for us? If we can survive sufficiently long in the big freeze, and then survive a universe being born around us, we can keep going as a civilization indefinitely. It seems like a harsh journey for our bodies, but if we programmed the patterns of our DNA into stronger matter it could recreate us once the new universe is born and grown up into a more hospitable place. Ideally nanobots would survive a high energy wave as the new universe passes over them, but if that won't work we could leave patterns of energy to get swept up in the new universe. These would interact at a quantum level with the new matter, so it evolves in a pattern we wished, eventually recreating some simple robot tasked with rebuilding humanity.
As our understanding of physics improves I'll keep you up to date, but the current prognosis is that an eternal civilization is possible (however catastrophically unlikely).
Wednesday, March 10, 2010
Stone, Bronze, Iron, Steel...
I find it interesting that we use materials to name the earlier reaches of time: The iron age, the bronze age... Plenty of other variables could be used to divide history, but the materials used to build technology are a very significant, and in particular visible, choice. What would you call the current age? We once went by the Nuclear Age, but that was far from a revolutionary change. Nuclear energy is just another power source, anonymous through our electric grid. Perhaps fission will deserve an age, driving us across the galaxy, but that's all the future.
Nuclear points the way to electricity, and the selection of the Electronic Age feels appropriate. That ephemeral bolt of energy, so recently understood, is a nice nod to the unprecedented growth in scientific knowledge we've seen. Plentiful power, shipped all across the landscape, revolutionized life as fully as anything since agriculture. It's been transforming us since the later acts of the Industrial Revolution, now getting a second run at revolution with the advent of computers and the Internet.
If this is the Electronic Age, what comes next? I suspect an appropriate name will be the Carbon Age, when that plentiful element bends to our whim. After as fundamental a character as the electron, it does feel like a step backwards to move up in size to element, but what can be done? The quark, the gluon, the photon: they're such wispy, enigmatic things. No, Carbon is my candidate, bridging the gap between the macro and the micro-scale.
For one thing, there's this structure, the carbon nanotube:
Unroll it and you've got graphene; these materials have pretty unbelievable properties. If you want to build an elevator to outer-space, the carbon nanotube is just about your only option for the tether. And it now looks like it's going to have a role powering nanotechnology. Researches coated carbon nanotubes in explosives, then ignited one end. While an explosion normally radiates energy in all directions, the nanotube caught the heat and channeled it down its length. The first cool thing that happened was the heat, moving uni-directionally, traversed the nanotube 10,000 times faster than in a regular explosion. From our old friend F=MA, a faster explosion is a more powerful explosion.
On it's own, this would be pretty cool and useful. But something else happened: This wave of heat managed to catch hold of the electrons in the nanotube. You could visualize the electrons as buoys floating in the ocean: waves pass them by and they bob up and down in place. But if a large enough wave (a tidal wave, perhaps) were to flow past, the buoys would get caught up in the motion and wash away. It turns out this heat wave did just that, driving the electrons out the other end of the nanotube. This was something scientists didn't expect could happen. The explosive coated nanotube generated about 100 times the electricity of a battery, by weight. Additionally, while a battery slowly loses energy as it sits unused, there's no obvious reason the nanotube couldn't hold on to its electrical potential for decades if not millenia.
The downside is that the nanotube is not easily reusable like a battery: to generate more energy a new coating of explosives would need to be applied (or potentially pumped into the nanotube as a gas). It's also not clear whether you could scale this up to say, power your house. But we've already got solutions for powering the macroscopic world: this breakthrough is revolutionary for what it could allow in the microscopic realm. Traditional engines do not scale well downwards. Being able to generate electricity at the atomic scale is the first step to being able to construct things on the atomic scale: another small step towards nanobots. Being able to instruct agents to work on the atomic scale could be the key to revolutionizing manufacture, scanning and understanding our brain, stopping cancer and heart attacks, and even colonizing space. Carbon is a great building block, easy to structure into all different shapes, and will likely play a major role in future miniaturization.
Which is half of why I believe the next age will be the Carbon Age. The other reason is a nod to our status as carbon-based lifeforms. Our understanding of DNA continues to grow, and the technology to read and manipulate genes is plummeting in price. Scientists are already starting to custom build bacteria, you may fill your car with gasoline derived from oil that a custom build bacteria produced. If we can bend life itself to our whim, creating never before seen creations to serve our needs, we'll have entered a new phase of futurism in human evolution. This is a topic I'll revisit in more depth later.
Goodbye Electronic Age, hello Carbon Age.
Nuclear points the way to electricity, and the selection of the Electronic Age feels appropriate. That ephemeral bolt of energy, so recently understood, is a nice nod to the unprecedented growth in scientific knowledge we've seen. Plentiful power, shipped all across the landscape, revolutionized life as fully as anything since agriculture. It's been transforming us since the later acts of the Industrial Revolution, now getting a second run at revolution with the advent of computers and the Internet.
If this is the Electronic Age, what comes next? I suspect an appropriate name will be the Carbon Age, when that plentiful element bends to our whim. After as fundamental a character as the electron, it does feel like a step backwards to move up in size to element, but what can be done? The quark, the gluon, the photon: they're such wispy, enigmatic things. No, Carbon is my candidate, bridging the gap between the macro and the micro-scale.
For one thing, there's this structure, the carbon nanotube:
Unroll it and you've got graphene; these materials have pretty unbelievable properties. If you want to build an elevator to outer-space, the carbon nanotube is just about your only option for the tether. And it now looks like it's going to have a role powering nanotechnology. Researches coated carbon nanotubes in explosives, then ignited one end. While an explosion normally radiates energy in all directions, the nanotube caught the heat and channeled it down its length. The first cool thing that happened was the heat, moving uni-directionally, traversed the nanotube 10,000 times faster than in a regular explosion. From our old friend F=MA, a faster explosion is a more powerful explosion.
On it's own, this would be pretty cool and useful. But something else happened: This wave of heat managed to catch hold of the electrons in the nanotube. You could visualize the electrons as buoys floating in the ocean: waves pass them by and they bob up and down in place. But if a large enough wave (a tidal wave, perhaps) were to flow past, the buoys would get caught up in the motion and wash away. It turns out this heat wave did just that, driving the electrons out the other end of the nanotube. This was something scientists didn't expect could happen. The explosive coated nanotube generated about 100 times the electricity of a battery, by weight. Additionally, while a battery slowly loses energy as it sits unused, there's no obvious reason the nanotube couldn't hold on to its electrical potential for decades if not millenia.
The downside is that the nanotube is not easily reusable like a battery: to generate more energy a new coating of explosives would need to be applied (or potentially pumped into the nanotube as a gas). It's also not clear whether you could scale this up to say, power your house. But we've already got solutions for powering the macroscopic world: this breakthrough is revolutionary for what it could allow in the microscopic realm. Traditional engines do not scale well downwards. Being able to generate electricity at the atomic scale is the first step to being able to construct things on the atomic scale: another small step towards nanobots. Being able to instruct agents to work on the atomic scale could be the key to revolutionizing manufacture, scanning and understanding our brain, stopping cancer and heart attacks, and even colonizing space. Carbon is a great building block, easy to structure into all different shapes, and will likely play a major role in future miniaturization.
Which is half of why I believe the next age will be the Carbon Age. The other reason is a nod to our status as carbon-based lifeforms. Our understanding of DNA continues to grow, and the technology to read and manipulate genes is plummeting in price. Scientists are already starting to custom build bacteria, you may fill your car with gasoline derived from oil that a custom build bacteria produced. If we can bend life itself to our whim, creating never before seen creations to serve our needs, we'll have entered a new phase of futurism in human evolution. This is a topic I'll revisit in more depth later.
Goodbye Electronic Age, hello Carbon Age.
Monday, March 8, 2010
The Limits of Knowledge, Part IV
Continued from
(Part I - Introduction)
(Part II - Paradoxes in Math)
(Part III - Turns out you can't do anything about the paradoxes)
Alan Turing (1912 - 1954)
Last time I blogged on this topic, I discussed Kurt Gödel's proof no consistent mathematical system of more than trivial complexity can be complete, or more concisely: Math is filled with an infinity of paradoxes. This turns out to have some important implications for Computer Science. Although we usually think about computers in term of real life engineered machinery, they're also creatures of mathematics. Just like integers, or particular sets of numbers, you can write proofs about computers. One of the most important minds in formalizing and reasoning about computers in the abstract was Alan Turing: inventor of the Turing Machine, Turing test, and important contributor to the cracking of the Enigma Code.(Part I - Introduction)
(Part II - Paradoxes in Math)
(Part III - Turns out you can't do anything about the paradoxes)
Alan Turing (1912 - 1954)Turing reasoned about a computer that's come to be known as a Turing Machine. It's a rather impractical device, consisting of a machine that reads and writes symbols to a long strip of paper. You program the machine by telling it what action to take when it sees a symbol; for example: if you read the letter 'a', replace it with a 'b' and slide the tape one symbol backwards. Interestingly, anything you can program the computer you're reading this blog post on to do you could program with a Turing machine. Google or Windows 7 could be run on a Turing machine. It may take decades to get a result out, but that's not important in theory. The computational power, the programs you could write, are the same.
Turing equivalent machines are the most powerful ones we know of, likely the most powerful possible. Computers built to take advantage of weird quantum rules could be simulated in a Turing machine. Our brains can probably be simulated in a Turing machine. In fact, it's hypothesized that the whole universe could be simulated in a Turing machine, a hypothesis I'd give lots of credence. None of this is practical: our universe might die and get reborn trillions of times while you wait for the program to complete, but the interesting point is it would eventually complete.
Which brings us to again to the limits of knowledge. If there are questions the Turing machine could not possibly answer, then that's it for the question. There's no reason to believe humans could figure out the answer, or that even the universe acting as one giant brain could solve. And there are such questions. And they aren't even that complicated.
consider the following program:
while(x > 3) x = x+1
print(x);
that says that for any input x, keep adding 1 to x until it's less than 3, then print the number. So if you enter 2 it would print out 2. What if you run it on 4? Well, 4 > 3, so we go again with 5. Then 6. Then 7. The number keeps getting larger: it'll never be smaller than 3. Your computer will think and think and think and never return an answer. This is often what's happened when a program you're running freezes up. It's easy to see that making a number bigger and bigger when really you need it to be smaller just isn't going to work. This program doesn't "halt".
Given an arbitrary program and its input, can we figure out if it's going to halt? Imagine if we had a program that does this: Then we could build another program that does the opposite of its input. You give it a halting program and it runs forever. You give it a program that runs forever and it halts. What would it do if you passed in its own source code? It would run forever if it halts...but if it halts, that means it must run forever...but wait, it halted...No matter how it acts, it's by definition doing the wrong thing. Thus a program that figures out if any other program halts on some input cannot logically exist (see here for a fuller explanation of the proof). As you can see, this is a very similiar problem to Russel's paradox that was the seed for understanding that math is incomplete. Computer Science is part of math, and follows the same rules as the rest of it.
Alan Turing was a hugely influential man in Computer Science. Besides that, in playing an important role in breaking Germany's secret codes, he was among the most important men in winning World War II. How did the U.K. thank him for his contributions to science and national security? In 1952 he fell afoul of 'gross indecency' laws that outlawed homosexuality and was given the choice of imprisonment or probation conditional on taking chemicals to reduce his libido (they also caused him to grow breasts). His security clearances were revoked and he was barred from continuing his cryptographic work. In 1954 he took his own life, eating a cyanide laced apple. In 2009 Gordan Brown apologized for his nation's treatment of Turing.
Turing Photo distributed under Creative Commons
Wednesday, March 3, 2010
Patently Silly
If you follow tech news you already know this, but if not: Apple is suing HTC (maker of various Google Android phones) for patent infringement. Twenty Patents are named in the lawsuit (Engadget has a discussion of what each means). Naturally, the blogosphere is abuzz with discussions of what this means for HTC, Apple, and Google.
In short, while HTC is the defendant, conventional wisdom states the suit is more about Google then anything else. The iPhone is the current dominant smartphone, but Google's efforts are gaining steam and may eventually unseat Apple's reigning champ. The patents cover a lot of ground, but the basic point of contention is touch based control of a phone (specifically, multitouch). Why HTC? It's a major producer of Google's Android phones, and it probably doesn't own enough patents of its own to launch a counterattack. It may be the first in a series of lawsuits, or this might be it.
In older news, Apple is also the defendant in patent lawsuits: Nokia has filed suit that the iPhone violates 10 of its own patents. Apple counter-sued in that case with its own patents, and the case has yet to be resolved.
Which brings us to the interesting use of patents in the tech industry. HTC, by failing to patent sufficient quantities of ideas, has left itself vulnerable in a bizarre game being played by major companies. Many seemingly obvious ideas have been patented (one of the patents being brought by Apple is for using gestures to unlock a phone. Another is for having a screen scroll when you wave your finger and 'bounce' when it hits the bottom. A famous software patent is Amazon's 'one click' method for being able to purchase a product from a webpage without re-entering shipping and billing information). The major technology companies have accrued impressive quantities of patents.
Some software patents are used by 'patent trolls' who aren't trying to defend any product, just extort money from other companies. The big companies tend to use there patent portfolio's not for lawsuits but as a deterrent. When Nokia sued Apple for violating its patents on crucial cellphone technology, Apple counter-sued with its own basic patents Nokia was likely to be violating. If two major companies got in a serious patent war (IBM vs. GE, or Apple vs. Microsoft), the results could be catastrophic. Huge swathes of products could be expelled from the market. It's probably impossible to have any cell phones without some cross licensing: a 'world war' of patents would eliminate entire product classes, some as fundamental as the operating system. It's generally believed that companies are too self-interested to actually let such a ominous situation arise, but to be fair a similar sentiment existed before World War I.
While patents were designed to promote innovation, they seem to be having the opposite effect in software. Hence some major efforts to reform or eliminate software patents (see in particular 'in re Bilski'). Understanding a piece of software can require expertise in the field and days of time, neither of which the average patent examiner has. Additionally, software is much closer to the realm of ideas: it's much easier to describe an idea for a program than a way of, say, fighting AIDs. Which is not to say that there isn't important research that needs to be funded in software: there is. Microsoft, to pick a specific example, has an extremely well regarded research department they pump lots of money in to. But the problems I mentioned earlier, along with the rapid pace of change inherent in technology, has created an environment of weaponized patents. Besides creating costs in fighting off patent trolls and removing useful products from the market, the threat of a patent war that takes out how product categories exists.
The problem is ultimately the one-size-fits-all nature of patents. I'm by no means opposed to patents, but the dynamics of software is totally different from the dynamics of pharmaceuticals. Whereas drugs can take hundreds of millions of dollars to develop, a software patent can be thought up in an afternoon. Whereas drugs are patented individually, software is made up of tens of thousands of algorithms working together, any one of which is subject to patent. And none of that takes in to account the speed of advance in software. If search had been patented, 2010 could be the first year we'd be able to use anything but good old Archie (sorry Google).
The problem with these articles on complex topics like patent law is that they're hard to conclude. What to say? The software industry would probably be stronger without any patents, but that's by no means a certainty. And more nuanced solutions would require additional pages to discuss. The one positive is that 20 years isn't a terribly long time (compare with copyright, which if congress continues to lengthen at the rate is has goes on forever). Yes many software patents are questionable, not to mention the patents on your genes (that's right, someone owns a couple of those), but at least in 20 years they expire and no-one can copyright them anymore. At least we'll have a free market eventually.
In short, while HTC is the defendant, conventional wisdom states the suit is more about Google then anything else. The iPhone is the current dominant smartphone, but Google's efforts are gaining steam and may eventually unseat Apple's reigning champ. The patents cover a lot of ground, but the basic point of contention is touch based control of a phone (specifically, multitouch). Why HTC? It's a major producer of Google's Android phones, and it probably doesn't own enough patents of its own to launch a counterattack. It may be the first in a series of lawsuits, or this might be it.
In older news, Apple is also the defendant in patent lawsuits: Nokia has filed suit that the iPhone violates 10 of its own patents. Apple counter-sued in that case with its own patents, and the case has yet to be resolved.
Which brings us to the interesting use of patents in the tech industry. HTC, by failing to patent sufficient quantities of ideas, has left itself vulnerable in a bizarre game being played by major companies. Many seemingly obvious ideas have been patented (one of the patents being brought by Apple is for using gestures to unlock a phone. Another is for having a screen scroll when you wave your finger and 'bounce' when it hits the bottom. A famous software patent is Amazon's 'one click' method for being able to purchase a product from a webpage without re-entering shipping and billing information). The major technology companies have accrued impressive quantities of patents.
Some software patents are used by 'patent trolls' who aren't trying to defend any product, just extort money from other companies. The big companies tend to use there patent portfolio's not for lawsuits but as a deterrent. When Nokia sued Apple for violating its patents on crucial cellphone technology, Apple counter-sued with its own basic patents Nokia was likely to be violating. If two major companies got in a serious patent war (IBM vs. GE, or Apple vs. Microsoft), the results could be catastrophic. Huge swathes of products could be expelled from the market. It's probably impossible to have any cell phones without some cross licensing: a 'world war' of patents would eliminate entire product classes, some as fundamental as the operating system. It's generally believed that companies are too self-interested to actually let such a ominous situation arise, but to be fair a similar sentiment existed before World War I.
While patents were designed to promote innovation, they seem to be having the opposite effect in software. Hence some major efforts to reform or eliminate software patents (see in particular 'in re Bilski'). Understanding a piece of software can require expertise in the field and days of time, neither of which the average patent examiner has. Additionally, software is much closer to the realm of ideas: it's much easier to describe an idea for a program than a way of, say, fighting AIDs. Which is not to say that there isn't important research that needs to be funded in software: there is. Microsoft, to pick a specific example, has an extremely well regarded research department they pump lots of money in to. But the problems I mentioned earlier, along with the rapid pace of change inherent in technology, has created an environment of weaponized patents. Besides creating costs in fighting off patent trolls and removing useful products from the market, the threat of a patent war that takes out how product categories exists.
The problem is ultimately the one-size-fits-all nature of patents. I'm by no means opposed to patents, but the dynamics of software is totally different from the dynamics of pharmaceuticals. Whereas drugs can take hundreds of millions of dollars to develop, a software patent can be thought up in an afternoon. Whereas drugs are patented individually, software is made up of tens of thousands of algorithms working together, any one of which is subject to patent. And none of that takes in to account the speed of advance in software. If search had been patented, 2010 could be the first year we'd be able to use anything but good old Archie (sorry Google).
The problem with these articles on complex topics like patent law is that they're hard to conclude. What to say? The software industry would probably be stronger without any patents, but that's by no means a certainty. And more nuanced solutions would require additional pages to discuss. The one positive is that 20 years isn't a terribly long time (compare with copyright, which if congress continues to lengthen at the rate is has goes on forever). Yes many software patents are questionable, not to mention the patents on your genes (that's right, someone owns a couple of those), but at least in 20 years they expire and no-one can copyright them anymore. At least we'll have a free market eventually.
Subscribe to:
Posts (Atom)
