Sunday, December 11, 2011

Diagnosis Without Doctors

I should be doing other things tonight, but this thought hit me and I feel compelled to write a short post on it. I have a number of other thoughts for longer blog posts, but they will have to wait until February after my textbook draft is in.

Earlier today I shared this article. It refers to "Race Against the Machine" and includes quotes from one of the authors. In many ways I think it is a great article. However, I was struck by how they list doctors as a relatively safe profession. Martin Ford points out how many specializations for MDs are at serious risk. However, I haven't seen anyone who is predicting the demise of the primary care physician. I'm going to predict that here. I had a previous post about the "Doc in the Box" idea of having scanners watching people in a clinic. I still think that works well. However, I'm going to take it a step further.

Let's start with WellPoint hiring Watson. This is basically an insurance company setting big-data analytics loose on a bunch of medical data. I want to up the ante a bit and make the data bigger. Imagine WellPoint distributing something like the JawBone UP to people on plans with them under the condition that they really use it. Go a bit further and set people up with some low cost devices or apps to monitor other things like this. Maybe a scale and something to measure blood pressure. How about giving them an easy way to indicate eating habits and other things that might impact their health. Feed all of that into the machine. Now we are talking some really big data. Within five years I have a feeling you completely change the shape of medicine.

Five years isn't enough time to really see what happens with any given person. However, you will make up for that quite a bit by having previous medical history (much less detailed data) combined with tracking huge numbers of people. Get some lab on a chip stuff going as well and it's over. You have a company that will be "watching" body changes in hundreds of thousands of people all the way down to activity levels and blood work. You won't go to your doctor when you get sick. They will start warning you 24 hours or more in advance that you are getting sick and tell you what to do about it.

Note that I put the word "watching" in quotes above. That's because no humans need be involved in this process at all. This only works because you can throw vast amounts of data at computers that can crank through more information in a day than a human could process in a lifetime.

What do you think? Would you sign up to have your health habits tracked closely by an insurance company so they could turn medical diagnosis from the current state of a flawed art to a true science?

Sunday, November 6, 2011

Flat Wages Results of Sociology, not Politics?

This first plot in this gallery of what OWS is really about was something that struck me. I have friends who argue they don't say enough about where they get their data from, but I don't buy that. My gut tells me that this is real and you don't have to play games with the data to see it. That leads to the interesting question of what caused it. The plot highlights 1980 as the tipping point. That would indicate that the problem was induced by policy changes brought in during the Reagan administration. However, the real peak is before 1980 and it looks like wages actually stopped growing as quickly around 1973. There might be some type of policy changes that led to this, but I was recently hit by an alternate explanation that is more sociological in nature. I wanted to throw it out there and see what people think. (Disclaimer: I am neither a sociologist nor an economist.)

This idea was born from an image in my head of the US in the 1950s in a "Beaver Cleaver" world where employers cared for their employees. I'm sure this image is a largely fictitious stereotype, but it started the ball rolling. There are a few factors that I see as having changed in the last six decades that could contribute to this. Cities have grown, people commute further to work, and fewer employers are really locally owned. What really matters here is that in the past you had a situation where employers were more likely to live in a fairly tight knit community with their employees and have regular interactions with them. The movement of people into cities (http://www.wsdot.wa.gov/planning/wtp/datalibrary/population/PopGrowthSMSA.htm) and the growth of large corporate chains have altered this landscape.

I that 1950s world you don't have to assume that employers were kinder and really wanted to look out for their employees. However, they did live closer to their employees and they interacted with them more often. Their wives might have played cards together or they went to the same churches. If you were a stereotypical Scrooge, people in the community would know about it and there could be a real cost to you socially and possibly economically. I picture a small town where everyone knows what everyone else is doing. If the local grocer isn't treating his employees well, that will get out. The owner will be shunned and might even lose sales if residents have other options. Basically, failure to treat employees well had real costs to you as an employer.

Over time, communities got bigger and the stores/shops around us increasingly became chains. The number of connections to co-workers outside of the work environment dropped. It became more common that the person setting a person's salary/wages lived in a different city/state. The social cost of paying employees poorly dropped away for more and more employers.

Of course, this is not all a tale of gloom. There were significant efficiencies of scale that came with this transition. This led to things being cheaper. However, that flows back around as well. If you are still locally owned and operated, you have to compete with the larger organizations that aren't. You will wind up dropping your wages to continue to compete. With communities being more spread out and less personal, the social costs of doing this was on the decline anyway.

From a pure economics view, employers always strive to pay their employees only what the market can support. My argument here is that social costs helped to keep the labor market moving upward until the 1970s. At that point, social changes removed those costs and let the labor market operate as a more pure market. In addition, increased specialization reduced the fluidity of the labor market. You have a lot of jobs where you can't just move over to a different company and maintain the same productivity you had with the old employer. That forms a barrier to movement and allows employers to keep wages lower as they don't have to worry about employees leaving as readily for higher wages.

Of course, in this blog I have to pull this back into my main topics so what role does automation play in all of this? It is all over the place. The same social forced that make it easier to keep employee wages lower also make it easier to introduce automation. As automation takes more and more routine jobs, what is left are more specialized tasks that are less transferable from one employer to another. Looking forward, a globalized market has basically no social costs for replacing human workers with automata. The neighbors and friends of the owner of a large corporation aren't going to treat him/her worse when he/she fires all the people working in the parts of the business related to shipping and stocking of goods. The way we can compartmentalize our lives, all the people he/she interacts with are probably do the same thing in their own firms.

Friday, September 23, 2011

Two Types of People: Busy and Not Busy

For a while now I have used expressions like "Busy, but it is better than the alternative." when asked the ubiquitous "How are you?" With unemployment the way it is I think that many people can identify with that. I have also mentioned to people that I view being overly busy as the plague of modern life. Of course, not everyone is overly busy. There are plenty of people who have nothing to do but wish that they did.

This morning I had a thought which took me back to this article at Forbes.
The article is remarkably brutal in its honesty. It describes that people aren't being hired for jobs because they aren't needed. They aren't needed, because there are other options, many of which are based on technology. It goes on to say that you will get hired if you can demonstrate an advantage over those alternatives. To get hired, you have to be able to do something the software/automation/offshoring can't.

How do these things link together? I see two links. Being better than the competition, in many fields, requires a lot of effort. One of the big advantages of computers is that they can work constantly. They don't need to sleep or eat. They don't get sick. They also don't get bored or distracted. Even if you can do something that the computer hasn't mastered, they have changed the work environment so that now you can, and are expected to, be working virtually all the time. If you do something the computer can compete in, you definitely can't give it the advantage of working longer hours.

The second link is that computers and automation are capable of taking over many different tasks. When they do, they make the skills for that task nearly obsolete for humans. Humans that have those skills need to try to retrain to something else. That's a problem because retraining humans is a fairly slow process. This can put the skills that aren't yet automated in very high demand, and increase the odds of shortages in those areas. Lack of people with competitive skills means the few have to do everything. Hence, they work more time than they might otherwise want to.

Of course, if the only skills you have become automatable and you don't push down the retraining path, for one reason or another, you fall into a group that has virtually nothing to do. At least not anything productive. There are things that can keep you from being completely bored. You can play games and the machines can take on the role of entertaining you, but each day you become less and less likely to find yourself needed for productive work as the bar of automation moves steadily upward.

Hence, we move toward a world where there are only two types of people. There are the employed who are incredibly busy and who can barely stay on top of their tasks, and the unemployed who lack much of anything to do and are likely to be unable to change that.

Sunday, September 18, 2011

Doc in a Box

This is something I have been thinking about for a while, but recent events have turned now into the time to put my thoughts together. In case you hadn't heard, Watson, the computer that beat the top humans at Jeopardy!, now has a job. (http://gizmodo.com/5839257/ibms-watson-gets-its-first-real-job and http://www.hpcwire.com/hpcwire/2011-09-15/can_supercomputing_help_cure_health_care_.html) IBM had said that they wanted to aim the DeepQA technology that made Watson what it was at the medical field for diagnosis and now they have done it. The second article above describes how this could help out with problems we have in healthcare. Martin Ford, the author of The Lights in the Tunnel, has an op-ed in the Washington Post where he goes through some implications of this (http://www.washingtonpost.com/opinions/dr-watson-how-ibms-supercomputer-could-improve-health-care/2011/09/14/gIQAOZQzXK_story.html). The insight on the recent Supreme Court decision is really significant, but I don't think Martin goes far enough when he is looks at how this could play out in the future. (Probably because if he said what I'm going to say here people would laugh at him and the piece would not have been published.) He mentions a situation where you have people with lower levels of training who can talk patients through things and then input information to Watson for diagnosis. I think the humans just get in the way here, especially given what I have heard about the caliber of most medical assistants.

What I see happening instead is the creation of a "Doc in a Box" chain of diagnostic clinics. These would be similar to the diagnostic clinics that are popping up around the US today with the one exception that they don't have humans in them. To make this happen, I'm going to call on three things: Watson's DeepQA, Microsoft's Situated Interaction, and remote sensing.

The first demonstration of Situated Interaction was the virtual receptionist. This technology greets you and runs the small waiting room associated with each office. As "exam rooms" become available, patients are directed toward them. The situated interaction requires video so I expect every inch of this place is being monitored all the time. In fact, the monitoring in the waiting room could be part of the input for diagnosis as well because it extends the baseline for observation.

In the exam room you have a virtual doctor. This is a combination of Situated Interaction with DeepQA. You sit in a chair that has the ability to take blood pressure, temperature, pulse, weight, and other basic vitals. The patient and the machine talk through everything a medical assistant, nurse, and final provider would normally do. That could include medical history, but honestly, this system works best if medical history has been put into a generalized database already. That generalized database can also make Dr. Watson extremely effective as it will have petabytes of previous diagnosis and outcomes to mine.

In addition to the normal vitals, I see this room having a whole array of more complex sensing capabilities. Samples or breath, blood, saliva, skin swabs, and whatever else could be taken. It should also be equipped with cameras that go beyond the visible. IR is easy and inevitably has diagnostic benefits, especially after it has been used with a few million patients. Other basic scanning technologies could be included as well. X-ray seems pretty easy though you have to be careful about exposure. You could probably do some other interesting things similar to MRIs. If they sit there for a while there might even be something useful you could get from detecting background radiation interacting with their bodies. Of course, cameras with high resolution could look at regions of the skin as well as in eyes, ears, nose, and mouth and they could do it with a lot more sensitivity than the human eye and easily go beyond the basic visible part of the spectrum to include near IR and UV.

I expect this system would be able to do a good job on day one. By the end of a year or two, it will put human doctors to shame when it comes to basic diagnosis, because it will have statistics based on this advanced sensing of every single customer that has visited. To really complete the circle, outcomes should be linked in as well. If the treatment is pharmaceutical, the Doc in the Box dispenses drugs, payment is done electronically and the patient is off.

Non-pharmaceutical treatment will take longer to get into this format. Robots aren't going to put in stitches for a while. They won't set bones for a while either, even if they can see what needs to be done. That will come, but it adds 5-10 years. In the mean time, I can easily see a setup where most primary care is done in a way where the only human involved is the patient. Of course, a patient might want to see a human practitioner and they certainly should be allowed to. However, that should become a luxury and have a price associated with that fact. This type of system could make basic healthcare have a very low marginal cost. So low that you could probably provide it to everyone in the country without causing the nation to go bankrupt.

Thursday, September 8, 2011

Jobs and Exports

Today I heard two interesting facts about our economy for the July/August 2011 time frame. First, unemployment was flat. We aren't seeing new jobs. Second, exports were at an all time high. Here are some links with evidence, plots, and further analysis.

http://www.economicpopulist.org/content/big-fat-zero-jobs-august-2011-and-unemployment-still-91

http://seekingalpha.com/article/292427-exports-surge-to-new-all-time-high-in-july

To me this just called out that automation is making it so that companies don't have to hire humans to do things. After all, companies and making and even exporting more goods than even, but they aren't employing additional humans to do it.

That was just based on the brief sound bite of these two statistics. Looking at the plots though you can see this isn't just for right now. Look at what has happened with exports since the end of the recession in mid-2009. They have climbed from just over $120 trillion to just under $180 trillion. That's 50% growth in about 2-years. No wonder corporate profits are doing well.

Now look at the jobs numbers for that same period of time. Both unemployment and job counts are basically flat. Exports rose 50% with virtually no new hires.

I've heard people describe that some of the fact that employment hasn't gone up with efficiency is because of globalization and free trade. Those inevitably were significant factors in and around 2000. That doesn't explain this though. That's a rise in exports. That isn't stuff produced in other countries, that is stuff produced here and sold abroad. That is that part of free trade that really comes back to benefit us.  There definitely are people benefiting. The problem is that those benefiting represent a very small fraction of the population and no matter how hard an average person works, it will be virtually impossible to break into that group. Unless you have the capital to buy robots to make stuff for you, humans simply can't compete for large scale manufacturing today. There are likely other areas they can't compete in today either and there will be more in the future.

Tuesday, August 30, 2011

Review/Analysis of "The Lights in the Tunnel"

I recently bought and read "The Lights in the Tunnel: Automation, Accelerating Technology and the Economy of the Future". You can get a copy here: http://www.thelightsinthetunnel.com/. That includes the option of a PDF that you pay what you want for. The book isn't that long. I thought it was well written and an easy read so neither time nor cost are real excuses for not reading it.

Review

The short review is that I thought this was a great book and I think everyone should read it. When I read the introduction I literally felt like I was reading my own thoughts. The main premise of the book is that exponential improvements in technology are going to lead to automation taking over a lot of jobs and creating a situation where the average person in the US can't find jobs. If you go through this blog you'll see I've been saying similar things. The author, Martin Ford, said it before I was really thinking about it though. This book was published in 2009, probably around the time I really started considering the topic.

While I tend to focus on technology and society, this book brings in a lot more economics. What happens when a large fraction of people are out of work? They have no income and stop buying things. That leads to a downward spiral. The author is a big supporter of the free market. However, he makes it clear that our economy is driven by the mass market and that for the mass market to work, you have to have money in the hands of the masses. The success of our economy isn't driven so much by supply as it is by demand. Robots and computer programs don't buy things. If automation makes enough industries capital intensive instead of labor intensive, you don't have enough people with money to spend and things go downhill.

One of the big differences between this book and what I have written about on this blog is that Mr. Ford isn't even pushing things hard on the technology side. He isn't looking at strong AI. He isn't going into the things that sound more Sci-Fi. I think that is a great strength of the book because even people who don't believe in strong AI or who question things like the Singularity can't deny that robotics can do things like Soap.com (http://www.youtube.com/watch?v=6zXOW6v0c8s) or many other examples of places where automation is making industries that had been labor intensive much less so.

This book also presents some solutions. However, I'm not going to repeat all of his arguments or his solutions. The reason is that I think Mr. Ford has done a great job of doing that in a very crisp and succinct manner. Attempting to paraphrase would only screw things up. Instead I simply suggest you read his words for yourself.

Corrections/Modifications

Of course, this doesn't mean I agree with everything in the book. So here are a few things I disagree with. You might consider coming back to this after reading it. I would argue that these are details. They don't impact the main conclusions of the book. However, I think they could impact people's choices and perhaps policy decisions so it is worth bringing them up. The book shows that without changes we will go from point A to point B. Nothing I say here will change that. All that changes in my view is a few wiggles in the road. I also present one other suggestion for how to make things work better on his suggestions to help us get to point C (which is a much better place than point B).

My only significant disagreement with Mr. Ford is that I disagree with his analysis of which jobs will be automated early and which ones will stick around. He expresses repeatedly that anything that is easily outsourced will be automated and that things that don't outsource are "safer". It seems to me that he is basically saying that software AI is a lot easier than robotic AI.  I agree that robotic AI is hard, but I think he is too broad in his conclusion that software AI can take over all knowledge jobs. This leads him to a number of other conclusions that I disagree with, but I think it is worth explaining why I disagree.

In the book, an example of a "safe" job that he gives in a truck driver. In 2008-2009 I can see how some people might have thought that. In late 2011 no one should believe that. The Google car should have made that clear. That is only a normal car, but there is work happening in the EU that is specifically aimed at long-haul trucks. Truck driving seems to me to be one of the most unsafe jobs you could train for today. Other examples in the book are house keeper, car mechanic, and plumber. I don't see house keeper as safe either. I think that object recognition systems are getting too good as are systems that have mobility without rolling around. Car mechanic might work, but only for "older" cars. As he mentions in the book, newer cars will probably be built such that robots can do repairs. I expect that to be especially true of electric cars. Plumber might be the best option for a safe job in this list. It combines the need to go into a normal house, work in areas that are often highly cluttered, and other factors that I see being really hard to automate. Granted, I think automation will get there, but if someone is looking for a job to train into that won't be automated too soon, plumber might be a fairly safe one.

On the other side, Mr. Ford assumes that all knowledge jobs and anything that can be outsourced is easy to automate. His main example is a radiologist. I agree 100% on that job. I expect computers will do that better than humans very soon if they can't today. However, he paints with too broad a stroke here. To see why, consider other jobs that can be outsourced: creative writer and graphic design artist. There are people working on getting software to do those things. However, I think most people would agree those are really challenging to automate, even if they are software only, no robotics involved. He doesn't mention those, but he does mention programming. I point out creative writer first to make it clear I'm not just "defending my turf". This isn't a knee jerk defensive reaction to telling people they shouldn't major in CS. I strongly believe that writing software has more in common with writing fiction and painting than it does with building bridges. What is more, unlike creative writing, software construction has been proven to be non-computable in the general case. The Halting Problem demonstrated that as one of the earliest results in CS. That doesn't mean computers will never be good programmers. At some point I expect they will get as good and better than non-augmented humans. After all, humans put bugs in code too. However, it isn't at all straightforward and I would argue it will be very hard to do. It will certainly take longer than automating truck drivers and house keepers.

So my main complaint is that I think Mr. Ford draws the wrong line in saying what jobs are "safe" in the near future. It isn't about whether it is a knowledge worker or not, it is about algorithmic describability. It is about "art" vs. "science". This also means that it isn't about college vs. non-college type jobs either. The real line has a lot more nuance to it. Still, Mr. Ford's conclusions stand. Over time that line will move and more jobs will rely more heavily on automation because they can. Thanks to the natural optimization of the market system, they will. The result will be that companies put a lot less money into the general public through employee wages or that the money is much more concentrated in a few individuals with specialized skills.

In his solutions, Mr. Ford mentions a number of changes to policy that will help to preserve jobs. They basically remove government forces that go against job creation. Things like payroll taxes and job based health insurance are policies that put an extra burden on companies that hire humans. To preserve jobs we want the cost of employing a human to be that person's wages, nothing more. Adding additional costs just gives employers a reason to try to do the job without a human. (Or in the case of outsourcing, an American. Employers don't pay FICA on non-US workers.)

I think there is one other big policy change that Mr. Ford misses. We need to remove the minimum wage. In fact, I think this might remove some of the hurdles he goes through talking about job sharing. The minimum wage sets a bar where, when the cost of automation goes below that bar, industry will flip 100% from humans to automation. If automation really does bring prices down the way it should, some money is better than no money, and having a job making that money is better than sitting at home while a robot does it. For those worried that people will be squeezed to the point where they can't live, I'll just say that Mr. Ford introduces other ways of getting money into consumer's pockets. They aren't handouts, but they help to keep our system running.

There are inevitably other tweaks that would have to be made to Mr. Ford's proposals to make things work, but on the whole I found this book to be very valuable and I honestly wish we could get everyone in the country to read it. Life moves pretty fast and technology is making the pace even faster (in an exponential way). I agree with Mr. Ford that we are going to have to make some changes in how our society works to keep up with it.

Saturday, August 27, 2011

A Radical Idea for Education Reform?

Background

The question mark in the title is because it is possible this won't be seen as such a radical idea. I think it would represent a major shift at the very least, and I expect most people to see it as pretty radical. Let me know what you think.

I believe most people would agree that we have problems with educating our society. The problems are the result of systemic issues in society. They can't be laid at the feet of teachers or schools. Parents, media, and many other factors play an equally significant role, to the point that just working on schools and changing up teaching isn't going to fix it. There is only so much a teacher can do with an unmotivated student whose parents really don't care.

I've generally been against the proposals I've seen to "fix education". I think accountability for teachers is a good thing, but I hate the "teach to the test" mentality that current standardized testing produces. I don't blame the teachers and schools though. If I were told that my salary and job security were to be based on my student's results on one of today's tests, I would teach to that test too. I'd be stupid not to.

I also have generally rejected voucher proposals because I fear that they will lead to a number of different problems, especially in areas of lower population density that can't support lots of schools using the standard model. I like the idea of market forces and competition, but I see problems with vouchers that outweigh the benefits.

Modified Testing


The solution I present here was really born from something that my friend, Jason Hughes, said in a discussion about education. The comment was that you want to pay people when students pass the tests, not before then. Home schooling was part of the conversation as well.  This happened about the same time that IBM's Watson was beating humans at Jeopardy!. That combination was significant for me because I don't think I could support that idea if the tests were the standardized tests of today. However, I think Watson like technology gives us the ability to make much better tests that we could literally reconfigure the entire education system around, with the idea that people get paid when the tests are passed.

I don't give multiple choice tests. I know they can be built fairly well, but I insist on short answer with the possibility of partial credit. I just think this is better. It isn't the best though. The ideal test format is an oral exam. It gives the tester the ability to really probe into the student's brain to see what they do and don't know. The tester can help occasionally with little steps and take that into account for the grading. If the student can get 90% of the problem, it generally shouldn't matter too much what the 10% they miss is. However, with other testing techniques, if that is near the beginning they miss pretty much the full problem because they can't get started.

Oral exams aren't used in many places though. They are simply too labor intensive. Even at a small school like Trinity they are often prohibitively expensive. On a larger scale you would also run into problems of uniformity in the testing if a single person can't give all the tests. This is where a Watson-like computer could really help. The computer could have expert level knowledge of concepts and ask questions that start with the basics and work up, going through a web of knowledge associated with the topic and probing how far the student knows things. The computer results could be very uniform across huge populations and really tell what the student does and doesn't know.

This is different from normal tests because the computer could explore a huge range of topics. If the student doesn't know things, it stops asking questions in that direction. A normal test covering the same material would require thousands of questions. This means you could have detailed reports on what the student has mastered and what needs to be worked on. You can also give credit or pay out for fractional mastery of a subject and track improvement over time in a far more detailed way.

The Proposal


Combine this type of testing with "pay people for the tests" and you can fundamentally change the economics of education. The main idea is that "people" becomes parents/students, not schools. Schools will still exist and parents can pay schools to teach their kids, but the money comes to the parents first. If you are poor and can't get a job that pays well, home schooling might be your best source of income. In that situation the parents will support their kid's learning because that is how they pay the rent and buy the food.

The market will create schools and professional tutoring locations because many parents won't have an economic incentive or the knowledge to teach everything their kid needs to know. The difference between this and vouchers is that it will scale to any size. In regions of low population density, you might not be able to support schools with diverse values, but smaller tutoring services would work well and could easily pop up to fill in voids without being 50+ miles from a kid's house. What is more, because this lets parents get paid for teaching their kids, rural locations, where jobs are often hard to come by, will probably see a lot of home schooling and you get a system where the economic ideal for many parents will be for them to learn new material so they can teach it.

The Details


Of course, the devil is in the details and I certainly won't claim to have worked them all out. However, I think one of the wonderful things about this system is that there aren't many details. It basically comes down to, what do you test on and how much do you pay for it? IMO this is a decision to be made at the state or local level. However, you can get a general idea pretty quickly. Start with topics that are the current education requirements in the state. Consider building from there. As for how much to pay, figure out how much you pay in education right now, subtract off the cost of running the testing centers (which shouldn't be all that high) and then divide by how many kids are in the state and how many topics you expect kids to master each year. It is also possible to pay out differently for different topics. I'm sure that there could be ways of doing that intelligently, but I am not convinced it should be attempted on the first cut.

Another detail that will have to be dealt with is whether to scale payments based on number of children in a family. I don't know if this would really be needed, but I could see situations where people have more kids just to keep getting those education checks. For some reason I don't think this is a real problem. First, you don't start paying until they are several years old. That removes a lot of the possible incentive right there. Second, teaching little kids and older kids at the same time will be hard and potentially inefficient. You probably make more getting your kids up to calculus and advanced composition than you would if you stop early with the older ones and try to get new younger ones. Indeed, having payouts increase for higher level topics would make sense and would help to prevent people from having kids just to get checks.

Other Benefits


One of the potential problems with schools today is that they become daycare centers with teachers spending lots of time just watching over the "children". That is a waste of time and effort in a number of different ways. If you get paid for passing test for material mastery, you want to use the time teaching, not baby sitting.

Another potential advantage, though one that people might find controversial, is that kids stop when they are done. If a student reaches his/her limit, and simply can't master any other skills, it is time to move on to something other than education. Hopefully something that uses what they have learned productively. What I think might really happen though is that students max out in some areas, but keep improving in others. The result is maximum utilization. They take things as far as they are capable, and because they have real economic incentive (as do their parents) they really will try to keep going as long as they can. Current school systems don't work this way.

Adult Education

While the details of how it would work and how far it can be pushed are less clear in my mind, I really do think that this idea could be extended past normal school age. We already have government programs to help re-educate people who have lots their jobs to give them new skills so they can find new jobs. These programs pay for the school, not the results. Pay out when mastery has been demonstrated, and those programs would probably work a heck of a lot better.

I'm sure this also applies to college curricula, but I'm not certain how much or how well. It likely does very well in some areas, but I'm not sure if it really works for all. Still it is something worth thinking about.

Saturday, August 13, 2011

Government of Infrastructure

I'm not really a very politically minded person. Like everyone, I have opinions about politics, but it isn't my day job and I don't strive to stay informed about what is happening in politics. The reality though is that politics impacts all of our lives, whether we want it to or not.

As a general rule, I don't fit into either party. I'm pretty centrist in many ways. On fiscal things I'm a bit more conservative. On social things I'm a bit more liberal. It seems odd, but in many ways the platform I often agree the most with is Libertarian. I only want government involved in the things it really needs to be involved in and even then it should be involved using the lowest level of government that works. So the federal government should get out of most of the things it does, IMO, and let state and local governments deal with those things. What is more, I think that the capitalist market can be very efficient for many, many things and where it is efficient, I think government should stay out completely and let the market do the work.

However, if I have a discussion with a "true" Libertarian, we'd argue about things like NASA and NSF which I consider to be part of the essential things that the national government needs to fund. This leads to the question of what I think is essential and why. From the above we can glean two criteria:

  1. The market won't do it well/efficiently.
  2. It has a scale/scope that needs to be national and won't be as efficient if done more locally.

So what do I think qualifies for #1? The title of this post gives away the answer. In a general sense, I consider the market short sighted. Investors want their profits today. It is hard to invest in things that won't pay off for an extended period. I have come to the conclusion that the best term for these long-term aspects of society is "essential infrastructure". What is more, I think the authors of the constitution had a similar opinion.

Why do I think the founding fathers felt this way? The Constitution is a fairly bare bones document. They really gave the majority of the power to the states. The US had just come out from under an oppressive government and they didn't want to set up a replacement for that here. Despite the minimalism of the federal government they set up, they included a federal postal system. It does stand out as a bit odd. However, I'd argue that they viewed it as the one essential piece of infrastructure for the time that couldn't be done on a smaller scale than national and couldn't be trusted to private industry.

For a nation to work, you have to be able to communicate. 200 years ago that meant a postal service. You had to be able to trust that communication and make sure it worked across state lines as well. Today the postal service isn't as essential. There are other options and, quite honestly, the free market can do it better. Things change over time. There are still essential infrastructure elements, they just look different. The interstate highway system is probably one of the best examples of a parallel to the postal service. It was a huge cost and it really needed federal government involvement to pull off. However, the ROI has been remarkable.

What about today? What are the things that the national government needs to be funding today using this selection rule? It is things that significantly add to national competitiveness in 20 years, but that don't work as well if implemented on smaller scales. It is possible to debate what should go into that, but here are my inclusions with some rational.

  • Fundamental Science Research - If you are reading this, your entire life is based on Quantum Mechanics. However, the time between the development of the theory and when there were products that could use it was measured in decades. The market doesn't do well supporting things with those turn around times. They are vital to the future progress of our society in 20-50 years though. Just like interstate highways, they are also something that works best at the national level. This is where things like NASA, NSF, and NIH (along with DARPA) come into play.
  • Science Research Education - Local governments can handle most of education. This bullet is actually tied to the one above it. The people who discover tomorrow's version of QM are being educated today. You can't know exactly what hypothesis of today will shape tomorrow. Nor can you know which students will wind up really making the big contributions. That's fine because industry needs a lot of trained researchers too and they can't afford to train them in house. This is NSF, NASA, NIH, and DARPA again. Science funding is a bit scatter shot because not everything will turn into a breakthrough. The things that don't are still beneficial to the knowledge base and hopefully they can be done in labs that are helping to train the next generation of researcher.
  • Energy/Network Infrastructure - Highways still matter, but this matters more. The market actually does a very good job with a lot of this, but this is an issue of national security and productivity. It needs some oversight and more help to give it a boost and diversify it. Our electric grid needs serious updating. Utility companies can't afford to do this. I have to admit this is something I really wish the "stimulus plan" had done something with. Giving a little boost to things like wind and solar isn't just green, it helps diversity our energy sources. Nuclear too. Fission might not be active today, but projects like NIF tie this in with the two bullets above it.
  • Air Flight Infrastructure - Here is another one I wish the stimulus plan had done. Air traffic control barely squeaks by. Most airlines barely squeak by too so you can't milk money out of them. This is still a very important part of our transportation infrastructure that crosses state borders.
Roads are still big, but I honestly think that can be left to the states in general. Don't filter the money through the federal government the way it happens now. Reduce the federal taxes and let states decide how much tax to put on things to keep their own roads up. I think this is a system that we have the technology to do much better these days, but it's a state issue.

General education is a state issue. I liked that the Obama administration put forward a national curriculum. I think such a thing is a very good idea given the high mobility of our population. That should only be a strong suggestion though and states or smaller governments should handle education issues in general. The ideas I have for this might well become my next post.

There is probably something to be said for enforcing costs of externalities, but that's not going to fit into this post.

What you'll notice is missing is entitlements. They are a huge chunk of the current federal budget and I honestly think they should be axed. I do believe some form of entitlements are required.  The future I see with automation making many people unemployable will require this.  However, that isn't an issue for the federal government and they should get out of that business.  Then we can have 50 states "playing" with possible ideas.  Actually running different experiments will go a long way to figuring out what works.  What is more, I'm guessing this isn't a problem with a single solution. Texas and North Dakota could very well need different solutions to this.

Abstracting Properties GUIs

I've had a lot of ideas running around in my head related to things like government and education. However, I figured that before I posted on those I should do one that is directly related to programming, so here it is.

A problem I run into fairly frequently is having an object that has properties that I want a user to be able to interact with through a GUI. In the past this was typically something I encountered in Java. This last week I hit it when writing code for my textbook using Scala. Some "standard" approaches would be to a JavaBeans approach using reflection to make the display code generic of apply an MVC pattern. These are big hammers for what is often a fairly small problem. Those are also solutions that aren't going to fly early in a second semester course

To give you a feel for what I'm talking about, consider this code for the situation I'm talking about.

class Fractal extends DrawLeaf {
  private var (xmin,xmax,ymin,ymax) = (-1.5,0.5,-1.0,1.0)
  private var (width,height) = (600,600)
  private var maxIters = 100
  private var propPanel:Component = null

  // code we don't care about that uses data

  def propertiesPanel() : Component = {
    if(propPanel==null) {
      propPanel = new BorderPanel {
        layout += new GridPanel(properties.length,1) {
          contents += new BorderPanel {
            layout += new Label("X min") -> BorderPanel.Position.West
            layout += new TextField(xmin.toString) {
              listenTo(this)
              reactions += { case e:EditDone => xmin=text.toDouble; changed = true }
            } -> BorderPanel.Position.Center
          }
          contents += new BorderPanel {
            layout += new Label("X max") -> BorderPanel.Position.West
            layout += new TextField(xmax.toString) {
              listenTo(this)
              reactions += { case e:EditDone => xmax=text.toDouble; changed = true }
            } -> BorderPanel.Position.Center
          }
          contents += new BorderPanel {
            layout += new Label("Y min") -> BorderPanel.Position.West
            layout += new TextField(ymin.toString) {
              listenTo(this)
              reactions += { case e:EditDone => ymin=text.toDouble; changed = true }
            } -> BorderPanel.Position.Center
          }
          contents += new BorderPanel {
            layout += new Label("Y max") -> BorderPanel.Position.West
            layout += new TextField(ymax.toString) {
              listenTo(this)
              reactions += { case e:EditDone => ymax=text.toDouble; changed = true }
            } -> BorderPanel.Position.Center
          }
          contents += new BorderPanel {
            layout += new Label("Width") -> BorderPanel.Position.West
            layout += new TextField(width.toString) {
              listenTo(this)
              reactions += { case e:EditDone => width=text.toInt; changed = true }
            } -> BorderPanel.Position.Center
          }
          contents += new BorderPanel {
            layout += new Label("Height") -> BorderPanel.Position.West
            layout += new TextField(height.toString) {
              listenTo(this)
              reactions += { case e:EditDone => height=text.toInt; changed = true }
            } -> BorderPanel.Position.Center
          }
          contents += new BorderPanel {
            layout += new Label("Max Count") -> BorderPanel.Position.West
            layout += new TextField(maxCount.toString) {
              listenTo(this)
              reactions += { case e:EditDone => maxCount=text.toInt; changed = true }
            } -> BorderPanel.Position.Center
          }
        } -> BorderPanel.Position.North
      }
    }
    propPanel
  }
}
I have 7 properties here and a whole bunch of redundant code to set up a GUI for setting those properties. This code is ugly. When I write it, it kind of makes me want to cry. There are basically 7 copies of the same thing here with only minor variations. In Java I never found a way to deal with this that I liked that I could present at this level. The standard rule of "abstract that which varies" led to huge code overhead or writing a separate library for fields that could be edited via code.

There are three things that vary. The first is just a String. The second is a value that is converted to a String. The third is setting a value. The third one is the challenge. In C/C++ you could use references/pointers to handle the setting code here, but you would have bigger challenges if what you were setting weren't "primitive" types. In Java you don't have references so you need to encapsulate setting functionality. That means making an interface with a single method and making a bunch of anonymous inner classes. Huge overhead. The code winds up being even longer than the original and as such it isn't really significantly easier to modify.

Scala provides a much nicer solution, mainly because function literals can be written so succinctly. Having tuples helps too. So I make an array of tuples. Each element in the tuples corresponds to one of the things that varies. A loop can run through and add them all.

  private val properties:Seq[(String,() => Any,String => Unit)] = Seq(
    ("Real Min", () => rmin, s => rmin = s.toDouble),
    ("Real Max", () => rmax, s => rmax = s.toDouble),
    ("Imaginary Min", () => imin, s => imin = s.toDouble),
    ("Imaginary Max", () => imax, s => imax = s.toDouble),
    ("Width", () => width, s => width = s.toInt),
    ("Height", () => height, s => height = s.toInt),
    ("Max Count", () => maxCount, s => maxCount = s.toInt)
  )

  def propertiesPanel() : Component = {
    if(propPanel==null) {
      propPanel = new BorderPanel {
        layout += new GridPanel(properties.length,1) {
          for((propName,value,setter) <- properties) {
            contents += new BorderPanel {
              layout += new Label(propName) -> BorderPanel.Position.West
              layout += new TextField(value().toString) {
                listenTo(this)
                reactions += { case e:EditDone => setter(text); changed = true }
              } -> BorderPanel.Position.Center
            }
          }
        } -> BorderPanel.Position.North
      }
    }
    propPanel
  }
This code isn't just shorter, it is less brittle and easier to maintain. Want to add a new property? No problem. Declare the variable and add one line of code to the sequence. Need a more complex set? That's not a problem either.

As written here, this code won't handle things that don't go into text fields, but it isn't hard to imagine an extension that does that. I need to play with it some more, but I think the "properties sequence" that includes getter and setter functionality might be a great way to write a general library for properties that is easy to work with and maintain. Pull the GUI building part out and the presentation becomes independent of the data as well.

Saturday, July 16, 2011

Efficiency of Automation

I normally think of the impact of the current wave of automation in terms of the level of skill/knowledge it takes to have a job that can't be automated. This article here pointed me toward a different approach.

http://techcrunch.com/2011/07/16/tale-of-two-countries-silicon-valley-unemployed/

Instead of simply thinking of the level of non-automated jobs, just think of the efficiency benefit you get from a skilled/trained person using a certain tool (including computers and robots) versus someone who isn't skilled or trained using older technology.  That ratio of efficiency basically sets pay scales.  So instead of looking at the capabilities of non-automated jobs, we simply look at the skills required to do jobs after they have been highly automated and whether it even makes sense to have anyone do anything the old way.

In one of the comments on the article someone argues that the same type of article could have been written about plows, sewing machines, or other historical advances. I think this comment is a little oversimplified.  One of the responses to it brings this out by asking how much more efficient is a person who has mastered the plow compared to someone who hasn't mastered it and uses it poorly. Compare that to how much a programming guru can accomplish relative to a complete novice. That ratio is very significant and we'll come back to it later.

I think we can dig deeper still into this analogy. (Pun intended.) How long does someone have to work with a plow to get within a certain fraction (say 25%) of a master? How much more efficient is the master with the plow compared to a person with just a spade? Now go to the modern equivalent. How long do you have to work with a computer to be able to be 25% as efficient as a master coder?  How efficient would a non-coder be using older technology (not a computer) for various tasks?

I have to admit I don't have much experience with plows, but I'm guessing I could get to 25% of the best in under a year.  Actually, my gut tells me a week, but it is quite possible that I'm missing something. As for the plow compared to the spade, it is probably at least a factor of 10 and probably closer to 100. But what about the modern equivalent?  Most people who have gone through 4 years of academic study and a few years of professional practice probably still won't get to 25% of a coding guru. As for the efficiency ratio of a skilled computer user on a modern computer compared to any previous technology (like paper pushing), the programmer and computer have to be at least several thousand times faster for the majority of tasks these companies work with.

How does this ratio impact employability and wages? Well, because it is a nice round numbers, let's assume that a skilled person makes $100/hour. An unskilled person is economically if their salary is reduced by the efficiency percentage. So once if they can get to 25% of the efficiency of the skilled person in a reasonably short period of time, they are probably a good bargain for an employer as long as they make under $25/hour.  (Ignoring all types of things like taxes, benefits, and cost of infrastructure/equipment to keep things simple.)  However, if the unskilled person has an efficiency that is more than 100x lower and it will take them a long time to improve that significantly, they are basically unemployable.  For it to be a bargain for the employer they would have to make pennies per hour and would be better of begging or resorting to petty crime.

The argument that previous advances in technology have increased overall productivity and led to new job creation are perfectly accurate and I guess in theory they apply today as well.  There is just one problem.  I'm pretty sure the efficiency ratio grows exponentially just like technological advancement.  It certainly has for decades, if not centuries, of recent time and I fully expect that to hold out another decade or two.  This exponential growth isn't slow either.  That means that once it starts to break away, it just soars off.  Taken to the extreme you can imagine a world where any particular job can be accomplished by a single, skilled person.  You don't hire a second one because there isn't a need to.  The first one can do it all.  That is the extreme, and that might not be realistic, but you don't have to go to that point before many things start to break down.

One of the links in the above article goes to this.

http://techcrunch.com/2010/06/03/soap-com/

Simply watch the movie and you see a company that has huge volume and very few employees.  It doesn't take much imagination to see how you could get rid of most of the people you see doing unskilled work and replace them with different types of robots that are managed by a much smaller number of people.  The way this scales you have a company that can handle a huge fraction of the non-perishable goods purchases in the country with very few employees.  Such, they buy a bunch of robots, but those robots were built in dark factories.  Only the designers and programmers are humans, not the builders.  Now introduce self-driving delivery vehicles and things get even more interesting.

Of course, the normal economic model is that this all creates new jobs.  Costs go down and people can buy more.  How much training/skill do you need for the jobs it created though?  How much stuff do we really need to buy?  There is a point of diminishing returns.  We might well have already passed it.  The normal model of growth has been fueled by growing populations and growing wealth.  I see that breaking down.  No exponential can go forever, even at low rates.  (To see this, simply calculate what happens with 1% growth per year for a few thousand years.)  So we have a race of exponential growths here.  Which one crashes out first and to what end?

Tuesday, July 12, 2011

Drugs, Crime, and Automation

I should be planning some stuff for a conference right now, but an idea hit me that I just had to write about. I have long been a supporter of the idea that drugs should be legalized. Prohibition failed once. Why are we trying so hard to make it work this time? It is more than that though. There are basic economic reasons why it would be a huge benefit to legalize and tax drugs. It would take a lot of financial pressure off states for things like prisons and instead give them an alternate source of revenue. I also expect ti would lower crime rates for things like theft because the legal drugs would be legal and cost less. What is more, instead of having the profits of drugs go into crime cartels, they would go to legitimate companies.

This is where the thought for this post comes in. My basic assertion is that criminals don't use automation. That had never occurred to me before, but it probably should have. Criminal activities stay human intensive. They don't set up giant corporate farms for growing drugs. They don't set up online sales or have computer controlled routing. These things don't work when your whole operation is based on flying under the radar and not getting busted by law enforcement.

Now, automation does allow things to be cheaper. So does not having to avoid cops. Passing federal regulations will make things more expensive, but I'm guessing the net impact on product cost is still a drop. However, the question I have to wonder about it what this does to employment rates. How many people are there who are generally non-employable in modern society who are currently employed in drugs? Maybe this isn't a large number of people. I haven't given it that much thought. However, I think what I'm coming to see here is that because of the automation it allows, legalizing drugs would change the employment profile of the industry. The total job count likely goes down (though initially a lot of the jobs lost could well be in other countries). However, it would produce a set of higher paying jobs for the people who oversee that automation. Basically, it would work just like everything else in this regard.

Wednesday, May 25, 2011

Computer Performance Future

The topics of automation, AI, and the impact these will have on society have been big on this blog. This is because they are things that I think about a fair bit. I'm not in AI, my interest are numerical work and programming languages, but I live in the world and I train the people who will be writing tomorrows computing software so these things interest me. I've been saying that things get interesting around 2020. I think the social changes become more visible around 2015 as automation begins to soak up more jobs and by 2025 we are in a very odd place where a lot of people simply aren't employable unless we find ways to augment humans in dramatic ways.

Cray just announced a new supercomputer line that they say will scale to 50 petaflops.  No one has bought one yet so there isn't one in existence, but they will be selling them by the end of the year and I'm guessing by next year someone builds one that goes over 10 petaflops.  That's on the high end for most estimates I've seen of the computing power of the human brain so this is significant.

Thinking of the Cray announcement it hit me that I can put my predicted dates to the test a bit to see how much I really believe them, and as a way to help others decide if they agree or not. We'll start with the following plot from top500.org. This shows computing power of the top 500 computers in the world since 1993.
What we see is a really nice exponential growth that grows by an order of magnitude every 4 years. I couldn't find exact numbers for the Flops of the Watson BlueGene computer, but what I found tells me it would probably come in between 100 and 800 TFlops though that might be too high.

The thing is, that the processing power of the top 500 machines in the world isn't really going to change the world.  MacDonald's isn't going to replace the human employees if it costs several million to buy the machine that can do the AI.  However, smaller machines are doing about the same thing as these big machines.  Right now if you can get a machine that does ~1 TFlops for about $1k assuming you put in a good graphics card and utilize it through OpenCL or CUDA based programs.  So workstation machines are less then 2 orders of magnitude behind the bottom of the Top500 list.  That means in 8 years a workstation class machine should have roughly the power of today's low end supercomputer.  To be specific, in 2021 for under $10000 you will probably be able to buy a machine that can pull 100 TFlops. So you can have roughly a Watson for a fraction of a humans annual salary, especially if you include employer contributions to taxes and such.  I'm guessing that running a McDonald's doesn't require a Watson worth of computer power.  So if the reliability is good, by 2021 fast food companies would be stupid to employ humans.  The same will be true of lots of other businesses that currently don't pay well.

Comparing to Watson might not be the ideal comparison though.  What about the Google self-driving car or the Microsoft virtual receptionist?  In the latter case I know that it was a 2P machine with 8 cores and something like 16GB of RAM.  That machine probably didn't do more than 100 GFlops max.  Google wasn't as forthcoming about their car, but it wasn't a supercomputer so I'm guessing it was probably a current workstation class machine.

What about the next step down in the processor/computer hierarchy?  The newest tablets and cell phones run dual core ARM processors that only run about 100 MFlops.  That's the bottom of the chart so they are 3.5-4 orders of magnitude down from the workstation class machines.  Keep in mind though that given the exponential growth rate, the low power machines that you carry around will hit 1 TFlops in 16 years, by 2027.  That means they can run their own virtual receptionist.

Networking and the cloud make this even more interesting because the small device can simply collect data and send it to bigger computers that crunch the data and send back information on what to do.  What is significant is that the chips required to do significant AI will extremely cheap within 8-16 years.  Cheap enough that as long as the robots side can make devices that are durable and dependable, it will be very inexpensive to have machines performing basic tasks all over the place.

So back to my timeline, a standard workstation type machine should be able to pull 10 TFlops by 2015, four years from today. I think thins like the virtual receptionist and the Google cars demonstrate that that will be sufficient power to take over a lot of easy tasks and as prices come down, the automation will move in.  By 2020 the cost of machines to perform basic tasks will be negligible (though I can't be as certain about the robots parts) and the machines you can put in a closet/office will be getting closer to 100 TFlops, enough to do Watson-like work, displacing quite a few jobs that require a fair knowledge base.  By 2025 You are looking at petaflop desktops and virtual assistants that have processing power similar to your own brain.

So I think the timeline is sound from the processing side.  I also have the feeling it will work on the software side.  The robots are less clear to me and they might depend on some developments in materials.  However, graphene really appears to have some potential as a game changer and if that pans out I don't see the material side being a problem at all.

Sunday, May 15, 2011

Scala 2.9 and Typesafe

It is remarkable how far Scala has come in the 18 months or so since I first started learning it. The final release of Scala 2.9 just came out and Odersky has started a company called Typesafe that is intended to get more companies on line with Scala. These things excite me because I see them being very beneficial for both my personal programming and what I do in the classroom.

Having Typesafe should make it easier for companies to use Scala more and right now that is one of the very valid points against Scala, it simply isn't used as much out in the market place as other options. I truly expect that to change with time and I see this being a step in that direction. It will also make it easier for our sys-admins to get everything set up nicely and that is a big plus.

The number of additions in Scala 2.9 is significant. You can read all about them on the Scala site, but I want to highlight the ones that I think will be good for my teaching. The first one is the additions to the REPL. The REPL is a great teaching tool. It truly allows the student to get started typing in single statements and then to keep playing around with things later on to see how they work. Through 2.8 the REPL in Scala had some rough spots. The list of fixes for 2.9 seems to cover most of the problems I've run into so I'm very hopeful that the students next semester will have a much better experience with it.

The key addition for most developers in 2.9 is parallel collections. These will impact the second semester and beyond because I introduce parallelism in the second semester. Early on, this makes it easier to to parallel loops in Scala than it would be with even OpenMP. Consider this code that calculates and prints Fibonacci numbers.

for(i <- 0 to 15 par) println(fib(30-i))

When you run this using the slower, recursive version of fib, you get the numbers back out of order with the biggest values near the end. Just adding the call to par is all it takes. Of course, the for loop and collections can do a whole lot more than this and they will also do their tasks with the simple addition of a call to the par method.

Not only did the collections get parallel, they got a new set of methods that come standard: collectFirst, maxBy, minBy, span, inits, tails, permutations, combinations, subsets. These just make the already rich set of methods on collections a bit richer. The last three, in particular, strike me as easily enabling some interesting problems.

The last addition I want to highlight is one that I really don't know all that much about and as such I'm not certain how much it will impact my teaching. However, I'm optimistic about it. This is the addition of the scala.sys and scala.sys.process packages. I use the scripting environment of Scala in the first semester. I love how this lets us write programs with a low overhead. Up to now though, Scala hasn't really been good for scripting in the sense of launching lots of processes and dealing with the OS. These packages look like they will help to bridge that so that I can use Scala for those types of things instead of having to move to the ugliness that is Perl.

Sunday, May 1, 2011

Real Implications of Automated Cars

In case anyone had forgotten, I really want a car that drives itself. I don't like to drive. I find it to be a waste of time. I liked buses in the Denver-Boulder area, but the system in SA, especially where I live, isn't up to the same level and my life here doesn't support that. Just the ability to read during commutes was great for me. I would get through a lot more of my intended readings if I could sit back and read during my morning and evening commutes.

The ability to do other things while the car drives is only a first-order effect though. It is using the car like we do now, but just more automated. Where things get interesting is when you look at the higher-order effects. The examples that come to my mind are uses of the car that occur without having a licensed driver present. It might take a while longer for these to take effect because people/society will have to truly trust the automated driving mechanism before it will be legal to have the cars really drive themselves without a person who is responsible for them being present. However, I think that point will be reached and that is when the full impact of this change will become apparent.

There are two main categories that jump out
  • No humans in the car at all.
  • Non-licensed drivers in the car.
The first thought I had related to the initial item was because I see automated cars as needing to have a high level of safety maintenance. Things like cleaning sensors and doing regular checks that they work will be required for legal reasons and for insurance. The work itself will be largely automated and it won't take long before people want to just send their car out to do it while they are at home or at work.

Ever had one of those late night cravings for some type of food that you don't have in the house? Maybe a fast-food pick-up. You don't really need to be there for that. You place the order online (possible on a phone or tablet) then send the car to pick it up. A little extra automation will be needed, but nothing too difficult.

Remember in the dotcom bubble there were companies that wanted to deliver groceries with online orders? It didn't scale well because of the cost of delivery. If people can simply send their car to pick it up that problem is solved.

This also leads to a new specialized product: mini-cars that don't carry humans, only other stuff. The vehicle that goes to get your combo meal doesn't need to be big enough to carry a human or have the nice seats. Same for all these other tasks. You can have a much smaller device that exists just to transport goods to end users.

The second bullet was normal cars driving without a licensed driver. Driving the kids to school in the morning? Why does a parent have to be there physically? I can see all types of bad social implications of this with parents sending their kids out all the time and never seeing them. Then again, how different is it to do that with your self-driving car versus their bike? Less exercise for the kid, but not less contact with the parent. In fact, with video call capabilities the parent could be interacting with the kid while they are being transported.

Of course, automation is going to alter all types of other things in the world in the coming years. This was just a few thoughts on some of the less obvious implications of cars that drive themselves.

Sunday, March 20, 2011

My Automated Greenhouse

In EPCOT we want on the “Living with the Land” ride. I love that ride. It brought to mind a dream that I have of putting a solar power, automated greenhouse in my backyard. More generally, it makes me think that structures like that should be commonplace in suburbia. On “Living with the Land” you get to go through sections where they are growing all types of plants in greenhouse structures using interesting techniques. Since the last time I went on that ride, students at MIT did a class project where they had robots growing and picking tomatoes. Given the strides in automation, I see no reason why all the things they are doing at EPCOT couldn't be automated as well.

What I'm not certain of is how much food one could produce in the area of a normal suburban yard, or a reasonable fraction of it. I'd be happy to give 50% or more of my yard over to an automated greenhouse. Whoever makes it can not only charge me for software upgrades and possible hardware upgrades, but also for seed packets that I would add every so often. Just hook up electricity and water and pour in seeds then every so often you get fresh fruits and vegetables. At EPCOT they also raise fish because the two can work well together. I'm not certain how viable that is for this application, but it could certainly be a consideration.

Combine this with serious solar panel coverage on every house and you have a situation that is probably fairly sustainable. It would turn the wasteful suburban lifestyle into something much better for the planet. Indeed, for the purposes of energy and food production the suburbs probably come a lot closer to being able to sustain themselves than dense cities can. The primary problem of the suburbs is transit and sprawl. These might not be such a big deal in a future world where more work is done remotely and energy requirements for transport are reduced thanks to lighter weight autonomous vehicles. Indeed, the possibility of growing more food close to where people live might go a fair way to offsetting other elements of transit. I'd have to do some calculations to get a decent estimate of how well this works on the whole. Perhaps that can remain as an exercise for a future blog post.

Automation and Jobs

This is following on my previous blog entry about automation and social impacts. The whole NY Times series on Smarter than you think is very relevant to the topic. The most recent article is about lawyers being displaced by e-Discovery systems. Those are truly high paying position being eaten up there. Another significant article is this one about automated cars. Note that they forecast a 10-year window for full automation. Don't go into truck driving at this point. I'd also expect loading equipment like forklifts to be automated on a slightly shorter timescale.

What I wanted to write this blog on is a thought that occurred to me while checking into the Disney cruise. In the last blog post I had a link to the Microsoft virtual receptionist. My thoughts combine that with this clip put out by Corning called “A Day Made of Glass”. There are a large number of jobs that I can think of that could easily be replaced by a reasonable quality virtual receptionist with large touch sensitive electronic displays. In fact, probably 90% or more of the Disney park employees and people at the cruise registration could be replaced that way. Airline counters too. Throw in a little robotics and the flight attendants either go away or get their numbers cut way down. With that little bit of robotics this hits a whole other set of jobs. Move more documents onto those touch surfaces and the paperless office might become more of a reality. That removes the need for a lot of people as well.

Apparently there are a number of restaurants that are working on the idea of using iPads for customers to order. Some are giving those iPads to waiters, but others put them right in the hands of customers. Corning would love tables that have Microsoft Surface capabilities for this purpose in the not too distant future. I have to admit though, I don't see Microsoft being the driving force behind this in the end. For food chains where the food is fairly routine, robots will quickly come into play for food preparation and even serving.

Watson beat the top Jeopardy! champs and while it certainly isn't infallible, it ranks above most all humans in that game. IBM is aiming it squarely at the medical field for diagnosis. Throw in this work with automatic processing of medical images and work various people are doing on having robots care for the elderly, and I'm not even certain that the medical field is all that safe an employment option. This is contrary to the predictions that the medical field will see huge job growth. There will be a surge in the amount of medical work done, but that actually provides a driving force to automate as much of it as possible.

This leads to a question that I find rather interesting. What fields are safe for young people to go into? As one would expect, I think that CS and software development are pretty good. However, even there it might only apply to higher end work. Law and medical practice could easily stagnate with automation. Engineering? That isn't a given either. The article that mentions Lawyers being replaced also mentions that Computer Engineering positions are stagnating because software is so good at helping make people more efficient at designing chips. What about other fields of Engineering? I expect that software is pretty good at bridges and mechanical work too. It doesn't have to do the job. It just has to make one human doing the job more efficient to prevent additional hires.

So what won't computers move into? If I only project until 2030 I see two areas. They are things that have a noticeably human touch, and those that require work that borders on non-computable. The former might not even be all that safe as people get more comfortable interacting with computers and the computers get more human. The latter is where the field of programming lies. Thanks to the non-computability of the halting problem, writing software is, in general, non-computable. Granted, humans make mistakes when programming so I see no reason to believe computers will never get as good or better than humans. I just see this being one of the later problems they get to. What else is provably non-computable? I don't know exactly. I don't know if people have really asked what tasks are and aren't computable. I have a theory that things which we consider to be “art” are non-computable while things we consider to be “science” are computable. Does that mean arts are safe and sciences aren't? Not really. It means fields where practitioners follow specific algorithms and there are known recipes for success are risky. Fields where people develop a sense for what is good through practice are safer. Since the value of a job is determined by demand regardless of automatability, artistic fields that no one wants to pay you for doing aren't going to make good career paths even if they can't be easily automated. For this reason, I'd add research scientists to my list of safe job paths. New science will always be needed to drive the next round of technology and research is much more of an art than a science. Creative jobs that involve some form of content creation can also work, but one has to be careful because they are only as valuable as their products are in demand. However, I also expect the wave of automation to open up whole new possibilities for creative jobs.

So how different is this from having a sewing machine make seamstresses more efficient? For me, the difference is that the jobs being replaced now are often the ones at the top end of the spectrum. It will also hit those at the very bottom end of the spectrum as well. The sewing machine made products cheaper and increased wealth so the people trained up into a whole new level of jobs. This round of automation will also improve efficiency and increase general wealth. It will make products cheaper and make it easier for everyone to enjoy a higher standard of living. Unfortunately, unless you can augment human capabilities with wetware it isn't at all clear to me that this round will make new jobs that humans can train into. Why not? First, the jobs you are eliminating here are at the top of the spectrum of what humans do. Where do you train up to when you already have a doctorate level degree in medicine, law, or engineering? Second, the timescale of training for jobs at that level is really long. If it takes a human 4 years to train for something that hasn't been automated when the start the training, what are the odds it won't be automated before they finish. Even if it isn't, how many years until it is? Train 4 years then work 2? That's not exactly a good approach to making a living.

So where does this leave us? Well, if wetware develops quickly and we start augmenting humans at or before 2020, then maybe we get Kurzweil's singularity. Barring that (and only looking forward to 2030 right now), we have a need for dramatic social change as total wealth grows dramatically, but the number of humans who are able to hold down jobs for extended periods of time drops dramatically.

Saturday, January 8, 2011

Selling My Soul To Google?

Yeah, another long breaks between posts. When I started this John told me that what I needed to do was write every day. The thing is, I do write every day. I write a lot every day. I just write it in different places. The textbooks I'm writing don't belong on a blog. They are often high priority as well and taking the time to write here takes away from that. With the semester approaching I definitely have other writing to be doing, but I have some thoughts bouncing around that definitely belong in this venue.

Just recently my wife and I got new phones. The effect this has had on my life and how I'm doing things has been so pronounced that it it nothing short of remarkable. It isn't just because of the phone though. Other factors certainly come into play as well and the total effect is that the value of certain technologies that had seemed a bit silly to me has really come into focus.

My wife got an iPhone. I kid her that she has sold her soul to Apple. It was a gradual process. It started with iTunes and then went to iPods for her and the kids. The iPhone has just cemented it. She truly belongs to Apple now in a way that she will have a hard time reversing. She doesn't mind it right now and perhaps never will. We will see.

I understand this because I was tethered to Microsoft for a while. I managed to break free piece by piece going to OpenOffice first. The move away from Exchange was the hardest, but Evolution was close enough and I got my files moved over so it worked out well. When I got a laptop with Vista on it I cut the link completely and wiped the drive and put Ubuntu in its place. I am a much happier person as a result.

For small form factors I have been an early adopter. I got the Compaq iPaq shortly after it came out. It was a thing of beauty. A little computer I could hold in my hand. It was Windows, but I could forgive that at the time. My next handheld was a Zaurus. With the slide out keyboard and Linux on board I loved that thing. Those devices weren't phones though and I didn't carry them with me everywhere because I didn't want to have to carry multiple devices. About three years ago I got a T-mobile Dash as my first smartphone. It was Windows and at the time I was still tethered to MS so it worked well with what I was doing. It had a little QWERTY that worked well for me, but no touch screen. That turned out to be a problem because so many of the programs for the platform needed to you be able to point. When I broke free of MS it wouldn't talk to my Linux boxes at all. So it because just a phone with a keyboard for texting.

My new phone is an Android Motorola Flipside. The advances in smartphone technology are staggering to me. The Dash seemed nice to me, but the reality was they were trying to put a little PC in my hand. In the three years since the OS developers have figured out how to do handheld devices. This phone has a slide out keyboard, but it isn't a handheld PC. It is a smartphone and the user interface is wonderful. I love the multiple workspaces.

In the last year Trinity moved from Exchange to T-mail which is hosted by Google and it really G-mail. That hadn't been a big issue for me when using Evolution. The switch was just a change in what machine I was pulling things down from to store on my laptop. However, this phone automatically synched to my T-mail account. Unfortunately, the way I was doing things it wasn't too helpful because my laptop would take things off the web and store them locally. I liked that because I liked to be able to work on e-mail when I wasn't connected to the internet. The phone is far more connected though and getting to see my e-mail from anywhere my phone was trumped has for the moment trumped the ability to work offline. So I have basically moved from Evolution to using G-mail. The calendar features and the way they work on my phone are also great.

What is really happening here is that I'm moving into the cloud. This does worry me a bit because I really don't have this data locally anymore. I might start having Evolution pull stuff down for that purpose, but we'll see.

In this move I'm also playing now with Google Docs. It had always seemed like a novelty before, but now I'm seeing some of the value. The ability to share documents is significant for many applications. I'm also starting to see the brilliance of Google in other areas as well. Chrome has tabs that can easily break off into new windows and each tab runs as a separate process. That is touted as good for stability and it made sense to me, but I didn't see it as groundbreaking. However, in my changes over the past week or two my tabs have now turned into my apps. One is my e-mail. Another is my calendar. Now some will be my documents. Chrome OS starts to make a lot more sense as well.

So the question is, am I selling my soul to Google as surely as my wife has sold hers to Apple? I'm afraid the answer is yes. I haven't sold out completely though. I couldn't replace my laptop with an Android tablet for example (though the ones from Asus with keyboards are very tempting). That is only because I do some things that aren't in the Google toolbox yet. They have no equivalent for Eclipse. Similarly, their text documents aren't a replacement for LaTeX/LyX in editing large documents. However, I can see a world now where those things would be run either in the browser or in something that spawns off the browser.

Many of you reading this probably moved in directions like this a while ago. What are your thoughts? How has the transition been? Where are the rough spots? What can't you do in the cloud? What things do you see never moving into the cloud?