Wednesday, November 26, 2014

Compuberty: Three Emerging Categories of Computing

Computers are going through puberty. They are becoming adults, devices that have physical presence in the public realm. When the transformation is complete we will have three classes of computing:

  • Personal Computing - value is created at the scale of people
    • smartphones
    • tablets
    • laptops
    • desktops
    • televisions
    • car interiors
    • hospital rooms
    • living rooms
  • Cloud Computing - value is created at the scale of global communities
    • social networks
    • big data
  • Autonomous Computing - value is created at the scale of Newtonian physics
    • wireless sensor networks
    • drones
    • autonomous cars
    • actuators
    • control systems

Saturday, September 28, 2013

What am I missing?

Having helmed a couple startup failures, I'm often skeptical about success stories and what they can teach me about my next endeavor.

This excellent article on Survivorship Bias (recently shared by @vallor with FooCamp alum) is a smart reminder to keep asking, "what am I missing?"

http://youarenotsosmart.com/2013/05/23/survivorship-bias/

When we launched a big data startup called Swivel in 2006, we scored a lot of press from TechCrunch, New York Times, Financial Times, Nature and others. But only one person covered our failure, a blogger from Charlotte, North Carolina.

The failure article has all the useful wisdom http://eagereyes.org/criticism/the-rise-and-fall-of-swivel, whereas the mainstream media never followed-up to capture what went wrong.

Today, 7 years after launching Swivel, I get calls from smart entrepreneurs entering the big data space not because Swivel was a success but because they came across the failure blog post and want to learn more.

While unorthodox, understanding the Survivorship Bias and looking around for lessons of failure is a great aid in covering your blind spots.

It might be worth a few minutes of your time to Google for failures in your market and reach out to some losers.

Tuesday, May 22, 2012

Detroit Robotics

An incomplete list of robotics stuff around Detroit.

Companies

Military
Institutions
Conferences and Organizations

Wednesday, August 3, 2011

Green Smoothie

I make and drink a pitcher of green smoothie just about every day I'm home.

To make it, put the following ingredients in a blender and blend on high after each addition.
  • 1 cup uncooked steel cut oatmeal
  • 1/2 cup plain yogurt
  • 1 raw egg
  • 1 banana
  • 1 pear
  • 6 leaves of kale
  • 6 leaves cabbage
  • 1/2 cup blueberries
  • 1 whole carrot
  • 1/2 cucumber
  • 1/2 lemon, cut off the ends, leave the skin
  • 1/2 inch of fresh Ginger root, peeled
  • top off with water
It's also nice to blend in some ice cubes to make it cool and refreshing.

Wednesday, December 15, 2010

API Design

I recently presented some opinions and ideas about web API design at Salesforce.com's Cloudstock event in San Francisco.

In the talk, I start with a poorly designed API and iterate it toward a well-behaved REST API. Along the way, I compare APIs from Facebook, LinkedIn, Twitter, Foursquare and others and share my opinions about which APIs do things well and which don't.

If you're thinking about API design, please give it a view and let me know what you think.

Here is a studio version of the talk:

Sunday, December 12, 2010

no such file to load -- spec

While trying to use Goto Alternate File (⌃⇧↓) in TextMate's Cucumber Bundle I was seeing an error like this:
no such file to load -- spec

that was pointing to line 20 of:
~/Library/Application\ Support/TextMate/Bundles/Cucumber.tmbundle/Support/lib/cucumber/mate.rb

That line reads like this:

I changed it to:

Reloaded bundles (Bundles→Bundle Editor→Reload Bundles). And now things are working fine. My guess is RSpec 2 now goes by 'rspec' instead of 'spec'.

Friday, September 24, 2010

Rails 3 Complex Join Query

I just struggled mightily to have the new Rails 3 query stuff create the SQL I wanted. I figured it out eventually. Here's the story.

I have the following models:I wanted to add a method to Person that would return all the add-ons to which a person subscribed through payment plans:So, I knew I would need this SQL query:I tried things like this, cursing the new query stuff the whole while:They all failed. Finally, I got what I wanted:It turned out to be nice and simple and I can do sweet chaining things like this:Now, I love the new Rails 3 query stuff.