Money is a classic example of a fungible resource. That means you don't particularly care which twenty dollar bill is yours, or even if you've got two tens instead. Houses are not fungible: you can't just arbitrarily trade two houses and expect both participants to be happy. If I lend someone five dollars, I don't expect them to retrieve that particular bill when they pay me back. If I lend them "Catcher in the Rye", though, I don't expect to be returned "Alice in Wonderland" or even another, heavily highlighted copy.
This is all nice, and helps the economy run smoothly. But the fungible nature of money can make thinking about money deceptive. Five dollars is five dollars, but five dollars spent in one place is not equivalent to five dollars spent elsewhere. The money is fungible, the act of spending money is not.
Think about a decision to send a spacecraft to the moon, at a cost of perhaps a billion dollars. At that price, we could probably buy every human in the world a serving of rice for a week. But does that mean the spacecraft took 50 billion meals of rice away from the world? No, of course not. Rice production and spacecraft production are such disparate worlds that money spent in one shouldn't really affect the other very significantly.
What did spending the billion dollars on the spacecraft cause? Well, oil, steel and electronic elements were probably the biggest physical expenditures. Thus a little less steel might exist for sale on the market. That in turn may have inched its price up just a fraction, and perhaps a few people in the long run ended up holding off buying a new car. Electricity was certainly used up heating and lighting factories and offices, powering computers where the design occurred. Because electricity is also fungible it's hard to point to one particular thing the spacecraft effort impacted. But perhaps higher energy costs ultimately caused a handful of families to keep the thermostat a little lower that winter. Resources like electricity and steel have limited availability, so in one sense choosing to use them for one task removes their availability for another task. But you can't convert rice into steel to meet one need with another.
Which is all a simplification, of course. Oil use could increase demand for alternative fuel sources like ethanol which could use up corn, which could increase demand for rice. Or the electricity used by the offices might just come out of excess capacity they had just in case, increasing efficiency in the system and thus being 'free'.
When you've got a billion dollar project, the priciest part is usually the humans. Thus the investment in a spacecraft is less significant in terms of allocation of steel then it is in allocation of minds. The money goes to scientists to design and build this craft. Perhaps it'll improve employment rates a tiny bit, but it seems likely most of the people involved in building a spacecraft could find other work. So the projects biggest impact might be taking minds away from other tasks.
One line of thinking holds that even though none of the scientists would have been rice farmers, they might have been, say, a manager at an industrial factory. So now a line worker becomes the manager, opening up a position a farmer's son fills instead of working the farm. But even if there is some truth to this, every subsequent link lessens the impact.
People are the ultimate in non-fungible resources. We're all different. Perhaps one of the scientists involved in the spacecraft effort would have worked designing cars instead, pushing fuel efficiency up a tiny notch. Or maybe another would have been a manager, and done a poor job at it, causing rippling effects in stock prices and resource usage. The existence of a billion dollars worth of work for aerospace engineers might influence the next generation in college, producing more in that field and less in, say, astronomy. That might influence very gently our understanding of the cosmos. It might be an inefficient allocation if fewer spaceships are build in the next generation.
And we could do the same thing for buying a fifty billion servings worth of rice. How does land usage change? Nitrogen usage? Transportation of the rice? Who do you need to farm and distribute the rice, and what would they have done otherwise? Although each project costs $1 billion dollars, they aren't fungible in how they impact the world.
It's easy to just visualize the economy as a ledger. A dollar is spent here, fifty dollars of oil are burnt there. Because dollars are such an easy abstraction to think about, it becomes tempting to equate things with the same cost. A second car or a vacation can be equivalent decisions in terms of cost, but they can ripple through the economy in very different ways.
You'll never predict all the ways an individual economic action will ripple through time. But it is important to keep in mind when thinking about money. People often complain about spending money on NASA when people are hungry in the world. But they're aren't trivially connected. Cutting NASA doesn't end world hunger. Similarly, the recent financial crisis has revealed that a company's bottom line isn't necessarily proportional to it's positive impact on the world. Money is an invaluable abstraction, but it's good to sometimes take a step back and think about the millions of moving parts involved when you buy a pack of gum from the store.
Sunday, June 13, 2010
Wednesday, May 12, 2010
How To Teach Machines Creativity
Kasparov said of Deep Blue, after losing to it at chess, that he sometimes "saw deep intelligence and creativity in the machine's moves." Partially, this was an accusation that the IBM programmers weren't playing fairly, but it was fundamentally a testament to the quality of play Deep Blue could bring to chess.
Of course, it wasn't really exhibiting creativity. The biggest advantage a chess playing computer has is simply the depth it can think ahead. It chose its moves because it knew they'd prevent Kasparov from checkmating it in the foreseeable future, not from any deep insight into the strategies of the board.
I heard another anecdote from a professor, once, about an experiment in robotic movement. A (computer) mouse was tied to the back of a small, roomba like robot. The goal was to train it to avoid walls. Whenever the mouse rolled forward, the robot would get a 'reward'. Whenever it rolled backwards, it would be 'penalized'. These were just numbers being plugged into an algorithm, but they acted analogously to the dopamine in your brain. The robot was supposed to learn to navigate in such a way that it wouldn't have to back up, something like traveling in a circle through the room. The researchers left the robot running overnight to learn.
When they returned the next morning they were surprised to find the robot in a corner, rocking back and forth. Not the expected result. Some investigation revealed that the robot had found its way onto a rug. Whenever it moved backwards, the rug's bristles would jam up the mouse wheel. It had freedom to roll in the other direction, however. The rug let it avoid the negative feedback, circumventing the expected rules and giving it a constant euphoria as it rocked back and forth in place.
The solution seems creative. Really, though, it was just dumb luck. The robot didn't reason out that the rug might help, it blindly ended up on the rug, where it happened to take a couple simple steps that seemed positive. It tried a few repetitions, decided this was the best it was going to find, and went with it.
So how could we incorporate a more 'real' form of creativity into AI? I believe it's all about explicitly measuring creativity. Big Blue was 'rewarded' based on victories and losses. The robot was rewarded for moving forward. To create a creative machine, you have to reward creativity.
Let's use music as an example. What if we wanted to train a computer to compose music? First: a quick machine learning lesson:
Genetic Algorithms evolve a solution to a problem. For the music example, you'd take thousands of completely random musical scores, and listen to them (or ideally, evaluate them mathematically to start). They'd all sound bad, but hopefully a couple have some redeeming feature: a rhythm, or some short snippet that sounded good. After ordering them by quality, you take the best and create a new generation, just like life does. There's a few mutations thrown in (changing notes), but mostly you use genetic crossover: take two of the musical scores, cut them up and interleave them.
If you repeat this, generation after generation, the quality of the music will increase. Short snippets of good music greatly increase the odds an individual song will pass its genetic (musical?) material to the next generation, so those good snippets grow in number. Eventually music evolves.
But of course, this isn't creative. You end up with a population of songs at the end that all sound alike, as they all share most of their genetic material now. The process is creative like evolution is creative (are animals art?) but you don't have an artificial mind that can create arbitrary songs.
So we turn our attention to genetic programming. This still uses the same life-based mechanisms to evolve a population, but now you're evolving a population of computer programs. You write random computer programs, in this case programs that take some input and output a song. At first none of the computer programs do what you want (or anything, usually. Random code isn't terribly useful), but evolution still kicks in. With a large enough population, enough generations, and somebody listening to the god-awful racket this would produce, you'd eventually end up with a computer composer. Would it be creative?
Probably not. My prediction is that while the eventual eComposer would produce passable music, it would be very self-derivative. Once it finds a formula that works, why deviate? Deviating from your best stuff is only likely to get you a lower evaluation, and then you don't get any children. Best to play it safe, keep pumping out the same bass line, and keep your bytes replicating.
So what do you do? You evaluate each composer not just on quality, but on their creativity. You don't just ask for their best piece, you ask for 10 pieces, and make sure they're all good enough and different enough from each other. We usually only care about the best answer from our machine buddies, but I think that's wrong. To be right consistently, to be right when things change dramatically, you need to be able to come up with lots of different candidate solutions. It seems obvious in terms of music, but I expect this would help in lots of different machine learning domains.
Were I at grad-school, I'd write a paper about this. I'd throw together some simple problems, and see how penalizing for lack of depth in suggested solutions changes the long term performance of GP-produced programs. I'd draw some graphs, write up a conclusion suggesting further research, and find some journal to print it. But instead, not being a grad student, I've decided to publish the idea (sans research) via blog. When/If I do end up back in school, I can look back at my blog and start pumping out the papers. Or alternatively, Internet, you're welcome to do the work and take the credit if you find this first. Especially if you're a robot reading this as you consume all of humanity's written word (I'm looking at you, Google)...
Of course, it wasn't really exhibiting creativity. The biggest advantage a chess playing computer has is simply the depth it can think ahead. It chose its moves because it knew they'd prevent Kasparov from checkmating it in the foreseeable future, not from any deep insight into the strategies of the board.
I heard another anecdote from a professor, once, about an experiment in robotic movement. A (computer) mouse was tied to the back of a small, roomba like robot. The goal was to train it to avoid walls. Whenever the mouse rolled forward, the robot would get a 'reward'. Whenever it rolled backwards, it would be 'penalized'. These were just numbers being plugged into an algorithm, but they acted analogously to the dopamine in your brain. The robot was supposed to learn to navigate in such a way that it wouldn't have to back up, something like traveling in a circle through the room. The researchers left the robot running overnight to learn.
When they returned the next morning they were surprised to find the robot in a corner, rocking back and forth. Not the expected result. Some investigation revealed that the robot had found its way onto a rug. Whenever it moved backwards, the rug's bristles would jam up the mouse wheel. It had freedom to roll in the other direction, however. The rug let it avoid the negative feedback, circumventing the expected rules and giving it a constant euphoria as it rocked back and forth in place.
The solution seems creative. Really, though, it was just dumb luck. The robot didn't reason out that the rug might help, it blindly ended up on the rug, where it happened to take a couple simple steps that seemed positive. It tried a few repetitions, decided this was the best it was going to find, and went with it.
So how could we incorporate a more 'real' form of creativity into AI? I believe it's all about explicitly measuring creativity. Big Blue was 'rewarded' based on victories and losses. The robot was rewarded for moving forward. To create a creative machine, you have to reward creativity.
Let's use music as an example. What if we wanted to train a computer to compose music? First: a quick machine learning lesson:
Genetic Algorithms evolve a solution to a problem. For the music example, you'd take thousands of completely random musical scores, and listen to them (or ideally, evaluate them mathematically to start). They'd all sound bad, but hopefully a couple have some redeeming feature: a rhythm, or some short snippet that sounded good. After ordering them by quality, you take the best and create a new generation, just like life does. There's a few mutations thrown in (changing notes), but mostly you use genetic crossover: take two of the musical scores, cut them up and interleave them.
If you repeat this, generation after generation, the quality of the music will increase. Short snippets of good music greatly increase the odds an individual song will pass its genetic (musical?) material to the next generation, so those good snippets grow in number. Eventually music evolves.
But of course, this isn't creative. You end up with a population of songs at the end that all sound alike, as they all share most of their genetic material now. The process is creative like evolution is creative (are animals art?) but you don't have an artificial mind that can create arbitrary songs.
So we turn our attention to genetic programming. This still uses the same life-based mechanisms to evolve a population, but now you're evolving a population of computer programs. You write random computer programs, in this case programs that take some input and output a song. At first none of the computer programs do what you want (or anything, usually. Random code isn't terribly useful), but evolution still kicks in. With a large enough population, enough generations, and somebody listening to the god-awful racket this would produce, you'd eventually end up with a computer composer. Would it be creative?
Probably not. My prediction is that while the eventual eComposer would produce passable music, it would be very self-derivative. Once it finds a formula that works, why deviate? Deviating from your best stuff is only likely to get you a lower evaluation, and then you don't get any children. Best to play it safe, keep pumping out the same bass line, and keep your bytes replicating.
So what do you do? You evaluate each composer not just on quality, but on their creativity. You don't just ask for their best piece, you ask for 10 pieces, and make sure they're all good enough and different enough from each other. We usually only care about the best answer from our machine buddies, but I think that's wrong. To be right consistently, to be right when things change dramatically, you need to be able to come up with lots of different candidate solutions. It seems obvious in terms of music, but I expect this would help in lots of different machine learning domains.
Were I at grad-school, I'd write a paper about this. I'd throw together some simple problems, and see how penalizing for lack of depth in suggested solutions changes the long term performance of GP-produced programs. I'd draw some graphs, write up a conclusion suggesting further research, and find some journal to print it. But instead, not being a grad student, I've decided to publish the idea (sans research) via blog. When/If I do end up back in school, I can look back at my blog and start pumping out the papers. Or alternatively, Internet, you're welcome to do the work and take the credit if you find this first. Especially if you're a robot reading this as you consume all of humanity's written word (I'm looking at you, Google)...
Thursday, May 6, 2010
Am I You?
A very early memory of mine is staring, head back, up at a tree. I remember, in a fuzzy way, the dichotomy between the details in each minutely detailed leaf, and the whole, indivisible mass of green. I was being babysat by an aunt; my cousin was in his room for some transgression. I think it was summer: I remembered being impressed by the warmth and beauty around me.
It's not a remarkable memory for the vista, I've seen that tree hundreds of times. Rather, it stayed with me because it was the first time my mind stumbled across a mystery that's been with me ever since. I was outside, observing manicured nature. My cousin was in his room, probably fuming at his mother. But why was my experience of the world the one looking at the tree? My cousin must certainly have this same first-person experience, feeling one individual's pain, beholding one individual's sight. I knew I was me, it's basically a tautology. I didn't doubt I was the individual named Paul Barba, but it felt so arbitrary that I shouldn't be my cousin, or my neighbor, or any of 6 billion other individuals.
It's a hard question to ask, because there's a simple question obscuring a deeper one. I am me, because I have to be somebody. That's just how the world works: each person is an individual. There's no explanation necessary, and any perceived asymmetry is just a lack of perspective on my part. But at the same time, the huge divide between Paul's experiences and everyone else's, from my point of view, was troubling as a child.
Ultimately, I think the question is one of consciousness. That was the asymmetry in the world I was detecting, but too young to really understand. Everything else is physical. My cousin, the tree: they were all physical objects describable with reference to atomic patterns. But what about this perception of the world I had? This self-understanding mind, conscious of the passage of time around it? We still don't know how to understand it, really, in terms of electrons and photons. Maybe it's the work of a soul. Maybe solipism is truth, and there is a fundamental divide between me and everyone else. But I'm inclined to believe it's ultimately a matter of matter and energy.
I was Paul at age 7. I'm Paul now, and if it's meant to be I'll be Paul 50 years hence. There's this continuous stream of awareness that links the experiences of that child staring at a tree with the young adult typing on a laptop. I don't doubt that I was experiencing that tree.
But so much has changed: my brain has grown and reformed its patterns since then. Neuroplasticity tells us that the patterns in our brain are constantly changing. Most of my cells have died since then, being replaced by new generations. With twins, you could have argued that twin brothers at 7 are more similar than the 7 year old version and the 40 year old version of the same person. But the 40 year old and the 7 year old share a linked experience of being one person...
Which leads me to believe that it's just the uninterrupted existence of Paul that leads me to connect my current experiences with that child's experiences. I've got memories, but those aren't the same as a real experience. 7 Year old Paul experienced consciousness, 24 year old Paul is experiencing consciousness: everybody is. Memories, opinions, the chemicals rushing past our neurons are just incidentals. My perception of me, my intelligence and opinions, is less fundamental then this experiencing of looking out of two eyes: that's what I relate to as me, more deeply then the realities of a single moment.
Which all, ultimately, leads me to believe that what I would most deeply connect to as myself, the core of being, that thing experiencing emotions and visions and the pinch of the cheeks during a smile and the wind blowing through your hair: that wasn't limited to the boy looking at a tree. Whatever natural phenomenon leads me to perceive the world instead of blindly reacting to physical laws is at work in everybody. Thus while at one level I am Paul, I also believe I'm everyone else, everyone who will exist, at least until humanity dies off or evolves past my experiences. It doesn't feel true, at a level. I still feel, and am, closed off from every other experience. But that division of the world into individual pockets of consciousness doesn't mean they aren't all, in an important way, the same. When I die, these thoughts will be gone, these experiences forgotten, but experiencing and thinking will persist. What I thought was my own first-person experience will continue peering out some billions of pairs of eyes.
It's not a remarkable memory for the vista, I've seen that tree hundreds of times. Rather, it stayed with me because it was the first time my mind stumbled across a mystery that's been with me ever since. I was outside, observing manicured nature. My cousin was in his room, probably fuming at his mother. But why was my experience of the world the one looking at the tree? My cousin must certainly have this same first-person experience, feeling one individual's pain, beholding one individual's sight. I knew I was me, it's basically a tautology. I didn't doubt I was the individual named Paul Barba, but it felt so arbitrary that I shouldn't be my cousin, or my neighbor, or any of 6 billion other individuals.
It's a hard question to ask, because there's a simple question obscuring a deeper one. I am me, because I have to be somebody. That's just how the world works: each person is an individual. There's no explanation necessary, and any perceived asymmetry is just a lack of perspective on my part. But at the same time, the huge divide between Paul's experiences and everyone else's, from my point of view, was troubling as a child.
Ultimately, I think the question is one of consciousness. That was the asymmetry in the world I was detecting, but too young to really understand. Everything else is physical. My cousin, the tree: they were all physical objects describable with reference to atomic patterns. But what about this perception of the world I had? This self-understanding mind, conscious of the passage of time around it? We still don't know how to understand it, really, in terms of electrons and photons. Maybe it's the work of a soul. Maybe solipism is truth, and there is a fundamental divide between me and everyone else. But I'm inclined to believe it's ultimately a matter of matter and energy.
I was Paul at age 7. I'm Paul now, and if it's meant to be I'll be Paul 50 years hence. There's this continuous stream of awareness that links the experiences of that child staring at a tree with the young adult typing on a laptop. I don't doubt that I was experiencing that tree.
But so much has changed: my brain has grown and reformed its patterns since then. Neuroplasticity tells us that the patterns in our brain are constantly changing. Most of my cells have died since then, being replaced by new generations. With twins, you could have argued that twin brothers at 7 are more similar than the 7 year old version and the 40 year old version of the same person. But the 40 year old and the 7 year old share a linked experience of being one person...
Which leads me to believe that it's just the uninterrupted existence of Paul that leads me to connect my current experiences with that child's experiences. I've got memories, but those aren't the same as a real experience. 7 Year old Paul experienced consciousness, 24 year old Paul is experiencing consciousness: everybody is. Memories, opinions, the chemicals rushing past our neurons are just incidentals. My perception of me, my intelligence and opinions, is less fundamental then this experiencing of looking out of two eyes: that's what I relate to as me, more deeply then the realities of a single moment.
Which all, ultimately, leads me to believe that what I would most deeply connect to as myself, the core of being, that thing experiencing emotions and visions and the pinch of the cheeks during a smile and the wind blowing through your hair: that wasn't limited to the boy looking at a tree. Whatever natural phenomenon leads me to perceive the world instead of blindly reacting to physical laws is at work in everybody. Thus while at one level I am Paul, I also believe I'm everyone else, everyone who will exist, at least until humanity dies off or evolves past my experiences. It doesn't feel true, at a level. I still feel, and am, closed off from every other experience. But that division of the world into individual pockets of consciousness doesn't mean they aren't all, in an important way, the same. When I die, these thoughts will be gone, these experiences forgotten, but experiencing and thinking will persist. What I thought was my own first-person experience will continue peering out some billions of pairs of eyes.
Sunday, May 2, 2010
A Few Thoughts on Creating
I find it much easier to start a project than to see it through. I don't think anybody maintains enthusiasm through the whole of a large undertaking, but it seems to be my shortcoming more than many. It's got to have something to do with my preference for ideas: I like the new. I like working out the interactions in a complex system. I like mapping a story arc, or drawing a mock-up. Once that part is done, though, and it's time to turn ideas into realities, I start losing focus. The siren songs of new ideas beckon.
Hence two weeks without a new post.
It's easy to be productive when you've got the enthusiasm for it. Some blog posts stream effortlessly through my fingers and into the electronic aether. But sometimes it has to be forced out. It's a phenomena I don't really understand. It's easy to run out of creative juices in any activity. Sometimes you just stare at a blank sheet of paper, or type away at code despite your brain pleading for television or a walk. Getting away from it, playing a video game or reading a book can help. But consuming media just as often leaves me more lethargic and uninterested than ever.
I feel obligated to create things in a way I don't exactly understand. Having a talent feels like an injunction to use it. The ephemeral nature of life pushes and pulls in this: in the brief time I have on Earth, shouldn't I do something impressive with it? But at the same time another voice asks: with the brief time I have, shouldn't I be enjoying life?
Which is perhaps the core of it: creative activities should be enjoyable. The brain is a massively parallel machine that makes countless evaluations in the process of creating. What topics to move on to? Which to cut? What's the most effective placement of the object in a sentence? Are there too many adverbs? But without enthusiasm, threads of the brain get distracted or quiet. Less brain mass is focused on the creation, and the creation suffers for it. And it seems that maintaining this divided attention, the conscious realm pushing out sentences but the unconscious dallying on other topics, drains us.
My brain is grasping for a concluding idea, something to wrap this all up, some larger context these thoughts have fit into. But there isn't anything obvious coming to mind. Creating is hard. Motivation is hard. Thinking about either too deeply gets into weird existential questions that haven't ever been very helpful to me in creating the motivation. But perhaps the key is that while the creative tides ebb, they rise as well. My motivation for blogging, for writing, for programming have all been weak lately, but that's just one phase in a larger creative cycle. I'm blogging again, after all.
Hence two weeks without a new post.
It's easy to be productive when you've got the enthusiasm for it. Some blog posts stream effortlessly through my fingers and into the electronic aether. But sometimes it has to be forced out. It's a phenomena I don't really understand. It's easy to run out of creative juices in any activity. Sometimes you just stare at a blank sheet of paper, or type away at code despite your brain pleading for television or a walk. Getting away from it, playing a video game or reading a book can help. But consuming media just as often leaves me more lethargic and uninterested than ever.
I feel obligated to create things in a way I don't exactly understand. Having a talent feels like an injunction to use it. The ephemeral nature of life pushes and pulls in this: in the brief time I have on Earth, shouldn't I do something impressive with it? But at the same time another voice asks: with the brief time I have, shouldn't I be enjoying life?
Which is perhaps the core of it: creative activities should be enjoyable. The brain is a massively parallel machine that makes countless evaluations in the process of creating. What topics to move on to? Which to cut? What's the most effective placement of the object in a sentence? Are there too many adverbs? But without enthusiasm, threads of the brain get distracted or quiet. Less brain mass is focused on the creation, and the creation suffers for it. And it seems that maintaining this divided attention, the conscious realm pushing out sentences but the unconscious dallying on other topics, drains us.
My brain is grasping for a concluding idea, something to wrap this all up, some larger context these thoughts have fit into. But there isn't anything obvious coming to mind. Creating is hard. Motivation is hard. Thinking about either too deeply gets into weird existential questions that haven't ever been very helpful to me in creating the motivation. But perhaps the key is that while the creative tides ebb, they rise as well. My motivation for blogging, for writing, for programming have all been weak lately, but that's just one phase in a larger creative cycle. I'm blogging again, after all.
Sunday, April 18, 2010
Thou Shalt Not Infringe Intellectual Properties
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.
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 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.
Subscribe to:
Posts (Atom)