Monthly Archives: January 2013

I for one, can’t wait for our robot drivers

Robotic quad copters notwithstanding, the most important area of robotics is that of self-driving cars.  I predict that self-driving cars will become common within a decade.  The changes will be significant:

  • Fewer people will bother to own cars.  Most of us use our cars for less than an hour a day.  That’s just poor use of capital.  When cars can come to you on their own then you just reserve one on demand.
  • The differences in car ownership between urban and rural areas will extend into suburban areas.
  • Taxi drivers will cease to exist.  Professional drivers will become very rare and specialized.
  • Parking facilities will shrink.
  • Transit systems will become integrated with car networks.
  • Traffic management will become a real time management problem and opportunity.  A central authority may not control your car but it will certainly be able to virtually close some roads.
  • Access to cars becomes more like airline travel.  Unlike most airline travel however, individuals have very predictable patterns of normal usage.  Daily commutes will become an auction process optimizing for finite resources.
  • Staggered working hours will become even more common.  What works for school buses will certainly work for everyone else. 
  • Cars will become more utilitarian.  Today’s cars are a major personal style and status symbol.  Some people will be willing to pay more for a luxury on-demand car but most will stop caring so long as the car has internet.
  • Fuel efficiency will finally improve.  Most cars today are over-powered.  Their engines are optimized for user satisfaction rather than efficient travel.  Take the driver away and give her a book and driving 5 to 10 mph slower won’t matter much.
  • Law enforcement will start pre-emptively gathering travel data and investigating exciting correlations.

I can’t wait.

Robot quad copters

I’ve been fooling around with and thinking about various forms of robotics lately.

It started with an Arduino and some basic electronics parts.  As a kid I was always fooling around with electrical relays, making alarm systems for my room and other fun stuff but I never quite made the transition to electronics.  Now I dabble.  I recently got a motor shield for my Arduino and built a small autonomous tank.

Then I got an ArDrone quadcopter.  It’s lots of fun to fly but I really wanted to hack it.  When my friend Tim dropped by from Paris we set aside a day and had some fun.  OpenCV, node.js and before you know it we have copter than can identify and follow faces.  The experimenting inside quickly resulted in some new policies involving a Flight Safety Officer.  I haven’t returned to the scene of the crime since but I can’t wait to do more with this.  More quadcopters are coming.  How long before we have quadcopters that can autonomously take off, patrol, return and recharge?


Coding again

I’ve rolled up my sleeves and started coding again.

My development team on Crisply really doesn’t like front-end work.  We’re solving some very interesting problems on the back-end and those problems are truly the make or break for the product.  This made it easy to ignore the UI or at least to spend as little time as possible.

The current app is a split between traditional rails views and a Backbone front-end. The Backbone front-end is itself a hybrid with ERB generated templates and javascript.  It’s generally no fun to maintain.

So I decided to roll up my sleeves and make a fool of myself.  I’ve been playing around with Javascript since 1995 when I first started working on Internet Explorer.  Many things have changed but Javascript is still both great and awful.  It’s like assembly language Scheme.  No macros and a messy syntax.

After looking at many frameworks I concluded that the good ones had a bad case of language envy.  Like Java beans things like properties are explicit methods on top of the language.  This is where Javascript sucks.  It’s very difficult to create abstractions that feel language integrated.  Instead it feels like you’re reading the output of a compiler.  All the time.  ECMAScript 5 will help a lot.

The one framework that stood out was Angular.js.  It reminds me a lot of the data binding features in IE that my friend Sam Bent worked on.  After much experimentation I feel that my initial instincts were valid.  Although Ember.js is almost certainly more mature than Angular, I think Angular is a better fit for me and my team.  It allows all us to write code that all of us can extend and maintain.

I’ll be most posting more as I continue to learn and hopefully master Angular but the primary goal is of course a working UI for Crisply.

I’m back

I’ve had a few requests to blog about this or that.  Obviously these are people who have yet to actually read my blog but it’s as good a reason as any to start writing again.

Of course a small post like this without a decent backlog of stuff to write about is akin to getting everyone’s attention by saying “watch this” and attempting some crazy trick with a frisbee where the most likely outcome is that the disc ends up perfectly centered under a car, just out of reach.