Outnumbered by Robots

I heard a piece on the radio the other day about robots. One reporter told the story of how he’d driven across the United States almost without speaking to another human being the whole time. Food via self-checkout at the grocery store, hotels via robots check-in systems, etc. This was all very amusing at first. Then the discussion turned to jobs.

It turns out that more and more people are being put out of a job by robots. Not just repetitive factory work, mind. Pathologists. Sports reporters. Soon, drivers.  There are, as we all know, lots of things computers do better than we do. That list is growing all the time, and it’s growing faster. Moore’s law says that computing power doubles every eighteen months, and if that continues to hold true, we’re going to start seeing almost unimaginable science fiction-type robots and computers, very, very soon.

People seem not to be paying attention to this issue. I don’t want to call it a problem, because it’s just reality. However, for many (most? all?) of us, it will feel like a problem. It’s not just a matter of losing your current job, of suffering economic loss until you can retrain and find your balance in this new world. It’s a matter of being completely outmoded.

There’s really nothing special about humans. Unusual, perhaps, but not unique. People routinely claim that this or that trait is “uniquely human,” without the faintest justification. My cats have most of these “uniquely human” characteristics, too.  There are others that the cats don’t have, but they’re not uniquely human, either. Laughter was the one I heard last. Turns out rats laugh too. Tool use is an old one. Chimps. Ravens. Lots of things use tools. Not unique.

There’s also nothing about carbon that makes it uniquely better for supporting life than silicon. True, there are things that we’re better at than computers are, today. We have emotions, better vision, better language processing, a few other advantages. This will change. Computers are getting better, smarter, faster, every single day, and we’re staying basically the same. Evolution is obsolete. Robots will be better than us in every conceivable way, sometime soon. Maybe within my lifetime. My kids, if I ever have any, might well be the last human generation, unless we figure out some kind of way to live in a world where robots are better than us at everything.

We have to figure this out. Nobody’s going to stop improving robots or computers. To keep this from happening, we’d have to have everyone agree to stop. At the same time. Sort of like how we collectively decided to restrain the development of nuclear weapons. The important difference, though, is that the atom bomb looks like the end of the world. Better robots just look like a pile of cash for the people who make them. There’s no stopping piles of cash.

What we need to do is come up with a plan for how to deal with this transition. Can we come up with some way to improve ourselves as quickly as we improve technology? Can we somehow remain as we are, yet stay in control and actually have our lives improved? There are many unknowns. This could be a coming golden age, or it could easily be crisis in the making, as big a problem as clean drinking water or global climate change. Take some time to think about it. How can we prepare for the day when robots do everything better than we do?


powershell: Upgrade All Your .Net Projects

Here’s a quick PowerShell script you can use to update all your projects to a new version of .Net. Lots faster than opening the properties window for each project in Visual Studio and then reloading.   function set-frameworkversion($version) { #scan current directory and below for project files #Add project types as desired $projects = dir


BookSleeve

I’ve been working with BookSleeve lately. It’s a .Net API for interacting with Redis, a fast key-value store / distributed cache / data structure server. Redis is very nice and very easy to work with, and the API that BookSleeve provides is both as simple as it could possibly be, and deeply performant – all


Using MySQL with Linq to Entities

If you’re thinking about using MySQL with Linq to Entities, just don’t. The provider from mysql.com can’t handle subqueries, outer joins, or anything else I’ve tried with it beyond simple, one entity selects. Please let me know if there’s a killer EF provider for MySQL that I’ve missed somewhere.


ASP.Net MVC Metadata and Validation

Daniel Chambers posted a nice overview of the ASP.Net MVC metadata and validation classes, with diagrams and analysis. If you want or need to know how these work, this article will save you at least an hour or two of reading the MVC source.


Consolidated Dependencies

Dependency injection (DI) is a very useful technique, especially when it is used consistently throughout a system, but it’s beyond the scope of this post to discuss its virtues – Martin Fowler’s article is a good introduction. DI comes in several flavors, but two of the most common should be mentioned. Constructor injection, in which


AfterMix

I had the pleasure of attending the Microsoft MIX conference this year. It was my first MIX, and I have to say it was very, very useful. When you’re working with the MS technology stack, it’s extremely helpful to get a sense of what MS wants to focus on, what they think is the important


Real World Haskell

When I learned Haskell, there were hardly any books on the subject at all, and those that did exist weren’t really targeting professional software developers. So I wound up learning primarily from academic papers, which was a struggle, as you might imagine. I am happy to report that the need for that sort of thing


Why Isn’t Cabal Installed with GHC?

Given that installing Haskell packages is painless with Cabal and often exasperating without it, why isn’t it just included by default in a GHC install? Seems like an easy step to take that would make a huge difference to the user community, especially new users. Are we supposed to use the new (beta) Haskell Platform


A Beginner’s Guide to R

I’ve been looking for tools for data analysis lately, and remembered R, a language primarily geared toward statistics and graphing. R is a little bit unusual in how it works compared to other languages, so a quick skim of the manual wasn’t giving me a good understanding. A book was called for. Most of the