Book Review: On Intelligence by Jeff Hawkins

On IntelligenceWith On Intelligence, I find myself in the unique position of having heavily evangelized a book before I’ve even finished it.  I read half of it and started buying copies for friends.  This is something I’ve never done before, so if you’re busy, you can take a quick tl;dr, and assume that if you’re interested in how intelligence works, namely how the brain functions at a high level (learning patterns, predicting the future, forming invariant representations of things) and how we might functionally simulate that with computers, do not pass go, do not collect $200, go buy a copy (Amazon, Powells) and read it.

Still here?  Good, because I have a lot to say.  This isn’t really a book review, it’s more of a book summary and an exhortation to activity.  You’ve been warned.

A Little Backstory

Earlier this year I went to OSCON, and at OSCON the keynote that impressed me the most was by Jeff Hawkins, creator of the PalmPilot and founder of HandSpring.  Here’s the video:

As appropriate for an Open Source conference, Jeff’s company, Numenta was announcing that they were open sourcing their neocortical simulator library, NuPIC, and throwing it out there for people to hack on.  NuPIC was based on the work Numenta had done on neocortical simulations since he wrote the book, On Intelligence, in 2005.  NuPIC is software that simulates the neocortex, the sheet of grey matter on the outside of your brain where all your experiences live.  3 years of French?  It’s in the neocortex.  The ability to figure out that two eyes and a nose equals a face?  The neocortex.  The neocortex even has the ability to directly control your body, so that muscle memory you rely on to do that thing you do so well, like riding a bike or painting or driving a car?  That’s all in your neocortex.  It’s the size of a large dinner napkin (the largest in humans, but every mammal has one), is about as thick as 7 business cards, and wraps around the outside of your head.  It is you.

Intrigued, I went to the full length session that the Numenta team presented…

One of their main demos was an electrical consumption predictor for a gymnasium.  When initialized, the NuPIC system is empty, like a baby’s brain.  Then you start to feed it data, and it starts to try to predict what comes next.  At first, its predictions fall a little behind the data it’s receiving, but as the days of data go by, it starts to predict future consumption an hour out (or whatever you’ve configured), and it gets pretty good at it.  Nobody told NuPIC what the data was, just like our DNA doesn’t tell our brains about French verbs, the structure is there and with exposure it gets populated and begins to predict.

At the end of the talk, their recommendation for learning more about this stuff was to read On Intelligence.  So, eventually, that’s what I did.

A Little Hyperbole

The simulation, in software and silicon, of the biological data handling processes, and building software off of that simulation, is the most interesting thing I’ve seen since Netscape Navigator.  Everything up to your iPhone running Google Maps is progressive enhancement and miniaturization of stuff I’ve seen before.  Building brains feels different.

Newton AdI have a Newton Messagepad 2000 around here somewhere.  It had mobile email over packet radio with handwriting recognition in 1997.  In 2001 I was using a cell phone with a color screened to look up directions and browse web sites in Japan.  It’s all iterating, getting better bit by bit, so that when we look back in 10 years we think that we’ve made gigantic leaps.  Have we?  Maybe, but software is still stubbornly software-like.  If I repeat the same error 10 times in a row, it doesn’t rewrite itself.  My computer doesn’t learn about things, except in the most heavy handed of ways.

Sir You Are Being Hunted MapWriting and shipping working software is hard, there’s rarely time to focus on the things that aren’t necessities.  In video games this has given us nicer and nicer graphics, since for the last few generations, graphics have sold games.  Now developers are starting to realize there’s a huge swath of interesting stuff you can do that doesn’t require a 500 person art department and a million dollar budget.  Sir, You Are Being Hunted has procedural map generation.  Rimworld has AI storytellers that control events in the game world to create new experiences.

Looking beyond the game space, a few weeks ago I was talking with a large networking company about some skunkworks projects they had, and one of them was a honey pot product for catching and investigating hack attempts.  The connections between deep simulations like Dwarf Fortress or the AI Storyteller in Rimworld and how a fake sysadmin in a honey pot should react to an intruder are obvious.  If it’s all scripted and the same, if the sysadmin reboots the server exactly 15 seconds after the attacker logs in, it’s obviously fake.  For the product to work, and for the attacker to be taken, it has to feel real, and in order to fool software (which can pick up on things like that 15 second timer), it has to be different every time.

One thing that these procedural and emergent systems have in common is that they aren’t rigidly structured programs.  They are open to flexibility, they are unpredictable, and they are fun because unexpected things happen.  They’re more like a story told by a person, or experiencing a real lived-in world.

I believe that to do that well, to have computers that surprise and delight us as creators, is going to require a new kind of software, and I think software like Numenta’s NuPIC neocortical simulator is a huge step in that direction.

Let’s Deflate That a Bit

Ok, so NuPIC isn’t a whole brain in a box.  It’s single threaded, it’s kind of slow to learn, and it can be frustratingly obtuse.  One of the samples I tried did some Markov chaining style text prediction, but since they fed each letter into the system as a data point instead of whole words, the system would devolve into returning ‘the the the the the’, because ‘the’ was the most common word in the data set I trained it with.

Neocortical simulators are a new technology in the general developer world.  We’ve had brute force data processing systems like Hadoop, methods developed to deal with the problems of the Google’s of the world, and now we have NuPIC.  The first steps towards Hadoop were rough, the first steps towards neocortical simulators are going to be rough.

It’s also possible that we’re entering another hype phase, brought on by the rise of big data as the everywhere-buzzword.  We had the decades of AI, the decade of Expert Systems, the decade of Neural Networks, but without a lot to show for it.  This could be the decade of the neocortex, where in 10 years it’ll be something else, but it’s also possible that just like the Web appeared once all the pieces were in place, the age of truly intelligent machines could be dawning.

Oh, This Was a Book Review?

It’s hard to review On Intelligence as a book, because how well it’s written or how accessible the prose may be is so much less important than the content.  Sandra Blakeslee co-wrote the book, and undoubtedly had a large hand in hammering Jeff’s ideas into consumable shape.  It isn’t an easy read due to the ideas presented, but it’s fascinating, and well worth the effort.

In the book Jeff describes the memory-prediction framework theory of the brain.  The theory essentially states that the neocortex is a big non-specialized blob that works in a standard, fairly simple way.  The layers in the sheet of the neocortex (there are 7 of them), communicate up and down, receiving inputs from your sensory organs, generalizing the data they get into invariant representations, and then pushing predictions down about what they will receive data about next.  For instance, the first layer may get data from the eye and say, there’s a round shape here, and a line shape next to it.  It pushes ’round shapes’ and ‘line shapes’ up to the next level, and says “I’ll probably continue to see round shapes and line shapes in the future”.  The bouncing around of your natural eye movements gets filtered out, and the higher levels of the brain don’t have to deal with it.  The next level up says, “This kind of round shape and line shapes seem to be arranged like a nose, so I’m going to tell the layer up from me that I see a nose”.  The layer up from that gets the ‘I see a nose’ and two ‘I see an eye’ reports and says, “Next layer up, this is a face”.  If it gets all the way to the top and there’s no mouth, which doesn’t match the invariant representation of ‘face’, error messages get sent back down and warning flags go off and we can’t help but stare at poor Keanu…

Neo Mouth

These layers are constantly sending predictions down (and across, to areas that handle other related representations) about what they will experience next, so when we walk into a kitchen we barely notice the toaster and the microwave and the oven and the coffee maker, but put a table saw onto the counter and we’ll notice it immediately.

As we experience things, these neurons get programmed, and as we experience them more, the connections to other things strengthen.  I figure this is why project based learning works so much better than rote memorization, because you’re cross connecting more parts of your brain, and making it easier for that information to pop up later.  Memory palaces probably work the same way.  (I’m also half way through Moonwalking with Einstein, about that very thing.)

So, Have We Mentioned God Yet?

The Microcosmic GodThis is where things start to get weird for me.  I grew up in a very religious family, and a large part of religion is that it gives you an easy answer to the ‘what is consciousness’ question when you’re young.  Well, God made you, so God made you conscious.  You’re special, consciousness lets you realize you can go to heaven, the dog isn’t conscious and therefor can’t, etc.

About a third of the way into On Intelligence I started having some minor freakouts, like you might have if someone let you in on the Truman Show secret.  It was like the fabric of reality was being pulled back, and I could see the strings being pulled.  Data in, prediction made, prediction fulfilled.  Consciousness is a by-product of having a neocortex.  (Or so Jeff postulates at the end of the book.)  You have awareness because your neocortex is constantly churning on predictions and input.  Once you no longer have predictions, you’re unconscious or dead, and that’s that.

Kid + RobotThat’s a heavy thing to ponder, and I think if I pondered it too much, it would be a problem.  One could easily be consumed by such thoughts.  But it’s like worrying about the death of the solar system.  There are real, immediate problems, like teaching my daughter how stuff (like a Portal Turret) works.

Let’s Wrap This Thing Up With A Bow

I’m sorry this post was so meandering, but I really do think that neocortical simulators and other bio processing simulations are going to be a huge part of the future.  Systems like this don’t get fed a ruleset, they learn over time, and they can continue to learn, or be frozen in place.  Your self-driving car may start with a car brain that’s driven simulated (Google Street View) roads millions of miles in fast-forward, and then thousands of miles in the real world.  Just like everyone runs iOS, we could all be running a neocortex built on the same data.  (I imagine that really observant people will be able to watch Google’s self driving cars and by minor variations in their movements, tell what software release they’re running.)  Or we could allow ours to learn, adjust its driving patterns to be faster, or slower, or more cautious.

The power of software is that once it is written, it can be copied with nearly no cost.  That’s why software destroys industries.  If you write one small business tax system, you can sell it a million times.  If you grow a neocortex, feed it and nurture it, you’ve created something like software.  Something that can be forked and copied and sold like software, but something that can also continue to change once it’s out of your hands.  Who owns it?  How can you own part of a brain?  Jeff writes in the book about the possibilities of re-merging divergent copies.  That’s certainly plausible, and starts to sound a whole lot like what I would have considered science fiction 10 years ago.

I finally finished On Intelligence.  I have Ray Kurzweil’s book, How to Create a Mind on my nightstand.  I’ve heard they share a lot of similar ideas.  Ray’s at Google now, solving their problem of understanding the world’s information.  He’s building a brain, we can assume.  Google likes to be at the fore-front.

DoctorWe could throw up our hands and say we’re but lowly developers, not genius computer theorists or doctors or what have you.  The future will come, but all we can do is watch.  The problem with that is that Google’s problems will be everyone’s problems in 5 years, so for all the teeth gnashing about Skynet and Bigdog with a Google/Kurzweil brain, it’s much more productive to actually get to work getting smarter and more familiar with this stuff.  I wouldn’t be surprised if by 2020 ‘5+ Years Experience Scaling Neocortical Learning Systems in the Cloud’ was on a lot of job postings.  And for the creative, solving the problem of how the Old Brain’s emotions and fears and desires interfaces with the neocortex should be rife with experimental possibilities.

NuPIC is on github.  They’re putting on hackathons.  The future isn’t waiting.  Get to it.

Updates

Here’s a video from the Goto conference where Jeff talks about the neocortex and the state of their work.  This video is from October 1st of 2013, so it’s recent.  If you have an hour, it’s really worth a watch.

Building a Personal Cloud Computer

Wednesday I presented a talk at the Austin Personal Cloud meetup about Building a Personal Cloud computer.  Murphy was in full effect, so both of the cameras we had to record the session died, and I forgot to start my audio recorder.  I’ve decided to write out the notes that I should have had, so here’s the presentation if it had been read.

Personal Cloud Meetup Talk.001

In this presentation we’re talking about building a personal cloud computer.  This is one approach to the personal cloud, there are certainly others, but this is the one that has been ringing true to me lately.

Personal Cloud Meetup Talk.002

A lot of what people have been talking about when they speak about the personal cloud is really personal pervasive storage.  These are things like Dropbox or Evernote.  It’s the concept of having your files everywhere, and being able to give permission to things that want to access them.  Think Google Drive, as well.

These concepts are certainly valid, but I’m more interested in software, and I think computing really comes down to running programs.  For me, the personal cloud has storage, but it’s power is in the fact that it executes programs for me, just like my personal computer at home.

That computer in the slide is a Commodore +4, the first computer I ever laid fingers on.

Personal Cloud Meetup Talk.003

Back then, idea of running programs for yourself still appealed to the dreamers.  They made movies like TRON, and we anthropomorphized the software we were writing.  These were our programs doing work for us, and if we were just smart enough and spent enough time at it, we could change our lives and change the world.

Personal Cloud Meetup Talk.004

This idea isn’t new, in fact AI pioneers were talking about it back in the 50s.  John McCarthy was thinking about it back then, as Alan Kay relates when he talks about his 3rd age of computing:

They had in view a system that, when given a goal, could carry out the details of the appropriate computer operations and could ask for and receive advice, offered in human terms, when it was stuck. An agent would be a ‘soft robot’ living and doing its business within the computer world.

That’s been the dream for a long time…

Personal Cloud Meetup Talk.005

But that never really happened.  The personal computer revolution revolutionized business, and it changed how we communicated with each other, but before the Internet things didn’t interconnect to the point where software could be a useful helper, and then we all went crazy making money with .com 1.0 and Web 2.0, and it was all about being easy and carving out a market niche.  Then something else hit…

Personal Cloud Meetup Talk.006

Mobile exploded.  If you’ll notice, mobile applications never really had an early adopter phase.  There was no early computing era for mobile.  You could say that PDAs were it, but without connectivity that isn’t the same as the world we have now.  Most developers couldn’t get their app onto a mobile device until the iOS app store hit, but that platform was already locked down.  There was no experimentation phase with no boundaries.  We still haven’t had the ability to have an always-connected device in our pocket that can run whatever we want.  The Ubuntu phones may be that, but we’re 6 iterations into the post-iPhone era.

Personal Cloud Meetup Talk.007And who doesn’t love mobile?  Who doesn’t love their phone?  They’re great, they’re easy to use, they solve our problems.  What’s wrong with them?  Why do we need something else?  Well, let’s compare them to what we’ve got…

Personal Cloud Meetup Talk.008With the PC we had a unique device in so far as we owned the hardware, we owned our data, and EULA issues aside, we owned the software.  You could pack up your PC, take it with you to the top of a mountain in Nepal, and write your great novel or game or program, with no worries about someone deactivating it or the machine being EOLed.  Unfortunately the PC is stuck at your house, unscalable, badly networked, loaded with an OS that was designed for compatibility with programs written 25 years ago.  It isn’t an Internet era machine.

With the web we got Software as a Service (SaaS), and with this I’m thinking about the Picasa’s and Flickr’s and Bloggers of the world.  No software to maintain, no hardware to maintain, access to some of your data (but not all of it, such as not having access to traffic metrics with Flickr unless you paid, and only export rights if you were paid up).  But in this new world you can’t guarantee your continuity of experience.  Flickr releases a redesign and the experience you’ve depended on goes away.  The way you’ve organized and curated your content no longer makes sense.  Or maybe as in the case of sites like Gowalla, the whole thing just disappears one day.

Mobile has it’s own issues.  You often don’t own the hardware, you’re leasing it or it’s locked up and difficult to control.  You can’t take your phone to another provider, you can’t install whatever software you want on it.  Sometimes it’s difficult to get data out.  How do you store the savegame files from your favorite iPhone game without a whole-device snapshot?  How do you get files out of a note taking app if it doesn’t have Dropbox integration?  In the end, you don’t even really own a lot of that software.  Many apps only work with specific back-end services, and once your phone gets older, support starts to disappear.  Upgrade or throw it in the junk pile.

Cloud offers us new options.  We don’t have to own the hardware, we can just access it through standards compliant means.  That’s what OpenStack is all about.  OpenStack’s a platform, but OpenStack is also an API promise.  If you can do it with X provider, you can also do it with Y provider.  No vendor lock-in is even one of the bullet points on our homepage at HP Cloud.

Implicit in cloud is that you own your own data.  You may pay to have it mutated, but you own the input and the output.  A lot of the software we use in cloud systems is either free, or stuff that you own (usually by building it or tweaking it yourself).  It’s a lot more like the old PC model than Mobile or SaaS.

Personal Cloud Meetup Talk.009

All of these systems solve specific types of problems, and for the Personal Cloud to really take off, I think it needs to solve a problem better than the alternatives.  It has to be the logical choice for some problem set.  (At the meetup we spent a lot of time discussing exactly what that problem could be, and if the millennials would even have the same problems those of us over 30 do.  I’m not sure anyone has a definitive answer for that yet.)

Personal Cloud Meetup Talk.010 Personal Cloud Meetup Talk.011

This is what I think the Personal Cloud is waiting for.  This explosion of data from all our connected devices, from the metrics of everything we do, read, and say, and what everyone around us says and does.  I think the Personal Cloud has a unique place, being Internet-native, as the ideal place to solve those problems.  We’re generating more data from our activities than ever before, and the new wave of Quantified Self and Internet of Things devices is just going to amplify that.  How many data points a day does my FitBit generate?  Stephen Wolfram’s been collecting personal analytics for decades, but how many of us have the skill to create our own suite of tools to analyze it, like he does?

Personal Cloud Meetup Talk.012

The other play the Personal Cloud can make is as a defense against the productization of you.  Bruce Sterling was talking about The Stacks years ago, but maybe there’s an actual defensive strategy against just being a metric in some billion dollar corporations database.  I worked on retail systems for a while, it wouldn’t surprise me at all if based on the order of items scanned out of your cart at Target (plus some anonymized data mining from store cameras) they could re-construct your likely path through the store.  Track you over time based on your hashed credit card information, and they know a whole lot about you.  You don’t know a whole lot about them, though.  Maybe the Personal Cloud’s place is to alert you to when you’re being played.

Personal Cloud Meetup Talk.013In the end I think the Personal Cloud is about you.  It’s about privacy, it’s about personal empowerment.  It’s uniquely just about you and your needs, just like the Personal Computer was personal, but can’t keep up, so the Personal Cloud Computer will take that mantel.

Personal Cloud Meetup Talk.014 Personal Cloud Meetup Talk.015

The new dream, I think, is that the Personal Cloud Computer runs those programs for you, and acts like your own TRON.  It’s your guardian, your watchdog, your companion in a world gone data mad.  Just like airbags in your car protect you against the volume of other automobiles and your own lack of perfect focus, so your Personal Cloud protects you against malicious or inconsiderate manipulation and your own data privacy unawareness.

Personal Cloud Meetup Talk.016

To do this I think the Personal Cloud Computer has to live a central role in your digital life.  I think it needs to be a place that other things connect to, a central switching station for everything else.

Personal Cloud Meetup Talk.017

And I think this is the promise it can fulfill.  The PC was a computer that was personal.  We could write diary entries, work on our novel for years, collect our photos.  In the early days of the Internet, we could even be anonymous.  We could play and pretend, we could take on different personas and try them out, like the freedom you have when you move to a new place or a new school or job.  We had the freedom to disappear, to be forgotten.  This is a freedom that kids today may not have.  Everything can connect for these kids (note the links to my LinkedIn profile, Flickr Photos, Twitter account, etc in the sidebar), though they don’t.  They seem to be working around this, routing around the failure, but Google and others are working against that.  Facebook buys Instagram because that’s where the kids are.  Eventually everything connects and is discoverable, though it may be years after the fact.

Personal Cloud Meetup Talk.018

So how do I think this looks, when the code hits the circuits?  I think the Personal Cloud Computer (or ‘a’ personal cloud computer) will look like this:

  • A Migratory – Think OpenStack APIs, and an orchestration tool optimized for provider price/security/privacy/whuffie.
  • Standards Compliant – Your PCC can talk to mine, and Facebook knows how to talk to both.
  • Remotely Accessible – Responsive HTML5 on your Phone, Tablet and Desktop. Voice and Cards for Glass.
  • API Nexus – Everything connects through it, so it can track what’s going on.
  • with Authentication – You authenticate with it, Twitter authenticates with it, you don’t have a password at Twitter.
  • Application Hosting – It all comes down to running Apps, just like the PC.  No provider can build everything, apps have to be easy to port and easy to build.
  • Permission Delegation – These two apps want to talk to each other, so let them.  They want to share files, so expose a cloud storage container/bucket for them to use.
  • Managed Updates – It has to be up to date all the time, look to Mobile for this.
  • Notifications – It has to be able to get ahold of you, since things are happening all the time online.
  • and Dynamic Scaling Capabilities – Think spinning up a hadoop cluster to process your lifelog camera data for face and word detection every night, then spinning it down when it’s done.

Personal Cloud Meetup Talk.022So how do we actually make this happen?  What bits and bobs already exist that look like they’d be good foundational pieces, or good applications to sit on top?

Personal Cloud Meetup Talk.023No presentation these days would be complete without a mention of docker, and this one is no different.  If you haven’t heard of docker, it’s the hot new orchestration platform that makes bundling up apps and deploying lightweight linux container images super-easy.  It’s almost a PaaS in a box, and has blown up like few projects before it in the last 6 months.  Docker lets you bundle up an application and run it on a laptop, a home server, in a cloud, or on a managed Platform as a Service.  One image, multiple environments, multiple capacities.  Looking at that Ubuntu Edge, that looks like a perfect way to sandbox applications iOS style, but still give them what they need to be functional.

Personal Cloud Meetup Talk.024

Hubot is a chat bot, a descendant of the IRC bots that flourished in the 90’s.  Hubot was built by Github, and was originally designed to make orchestration and system management easier.  Since they connect and collaborate in text based chat rooms, Hubot sits in their waiting for someone to give it a command.  Once it hears a command, it goes off and does it, whether it be to restart a server, post an image or say a joke.  You can imagine that you could have a Personal Cloud Computer bot that you’d say ‘I’m on my way home, and it’s pot roast night’ to, and it would switch on the Air Conditioner, turn on the TV and queue up your favorite show, and fire up the crock pot.

Personal Cloud Meetup Talk.025

The great thing about Hubot, and the thing about these Personal Cloud Bots, is that like WordPress Plugins, they’re developed largely by the community.  Github being who they are, Hubot embraces the open development model, and users have developed hundreds of scripts that add functionality to Hubot.  I expect we’ll see the same thing with the Personal Cloud Computer.

Personal Cloud Meetup Talk.027

I’ve talked about Weavrs pretty extensively here on the blog before, so I won’t go into serious depth, but I think that the Personal Cloud Computer is the perfect place for something like Weavrs to live.  Weavrs are social bots that have big-data derived personalities, you can create as many of them as you like, and watch them do their thing.  That’s a nice playground to play with personalities, to experiment and see what bubbles to the top from the chaos of the internet.

Personal Cloud Meetup Talk.031

If you listen to game developers talk, you’ll start to hear about that initial dream that got them into game development, the dream of a system that tells stories, or tells stories collaboratively with you.  The Kickstarted game Sir, You Are Being Hunted has been playing with this, specifically with their procedurally generated British Countryside Generator.  I think there’s a lot of room for that closely personal kind of entertainment experience, and the Personal Cloud Computer could be a great place to do it.

Personal Cloud Meetup Talk.032

Aaron Cope is someone you should be following if you aren’t.  He used to be at Flickr, and is now at the Cooper-Hewett Design Museum in New York.  His Time Pixels talk is fantastic.  Two of the things that Aaron has worked on of interest are Parallel Flickr, (a networkable backup engine for Flickr, that lets you backup your photos and your contacts photos, but is API compatible with Flickr) and privatesquare (a foursquare checkin proxy that lets you keep your checkins private if you want, or make them public).  That feels like a really great Personal Cloud app to me, because it plays to that API Nexus feature.

Personal Cloud Meetup Talk.033

The Numenta guys are doing some really interesting stuff, and have open sourced their brain simulation system that does pattern learning and prediction.  They want people to use it and build apps on top of it, and we’re a long way away from real use, but that could lead to some cool personal data insights that you run yourself.  HP spent a bunch of money on Autonomy because extracting insights from the stream of data has a lot of value.  Numenta could be a similar piece for the Personal Cloud.

Personal Cloud Meetup Talk.036

That’s the Adafruit Pi Printer, Berg has their Little Printer, and they’re building a cloud platform for these kind of things.  These devices bring the internet to the real world in interesting ways, and there’s a lot of room for personal innovation.  People want massively personalized products, and the Personal Cloud Computer can be a good data conduit for that.

Personal Cloud Meetup Talk.037

Beyond printers, we have internet connected thermostats, doorknobs, and some of those service companies will inevitably go away before people stop using their products.  What happens to your wifi thermostat or wifi lightbulbs when the company behind it goes way?  Personal Cloud lets you support that going forward, it lets you maintain your own service continuity.

Personal Cloud Meetup Talk.038 Personal Cloud Meetup Talk.039

Having an always-on personal app platform lets us utilize interesting APIs provided by other companies to process our data in ways we can’t with open source or our own apps.  Mashape has a marketplace that lets you pick and switch between api providers, and lets you extend your Personal Cloud in interesting ways, like getting a sentiment analysis for your Twitter followers.

Personal Cloud Meetup Talk.041

In addition to stuff we can touch over the network, there’s a growing market of providers that let you trigger meatspace actions through an API.  Taskrabbit has an API, oDesk does, Shapeways does, and we haven’t even begun to scratch the possibilities that opens up.

Personal Cloud Meetup Talk.042

One thing to watch is how the Enterprise market is adapting to utility computing and the cloud.  The problems they have (marketplaces, managed permissions, security for apps that run premises, big data) are problems that all of us will have in a few years.  We can make the technology work with enterprise and startups, but for end users, we have to make it simple.  We have to iPhone it.

Personal Cloud Meetup Talk.045

So where do we start?  I think we have to start with a just good enough, minimum viable product that solves a real problem people have.  Early adopters adopt a technology that empowers them or excites them in some way, and whatever Personal Cloud platforms appear, they have to scratch an itch.  This is super-critical.  I think the VRM stuff from Doc Searls is really interesting, but it doesn’t scratch an itch that I have today in a way I can comprehend.  If you’ve been talking about something for years, what will likely happen is not that it’ll eventually grow up, it’s that something radical will come out of left field that uses some of those ideas, but doesn’t honor all of them.  That’s my opinion, at least.  I think the Personal Cloud community that’s been going for years with the Internet Identity Workshop probably won’t be where the big new thing comes from, but a lot of their ideas will be in it.  That’s just my gut feeling.

Personal Cloud Meetup Talk.046The last caveat is that Apple and Microsoft and Google are perfectly positioned to make this happen with vendor lockin easily.  They all already do cloud.  They all have app stores.  They have accounts for you, and they want to keep you in their system.  Imagine an Apple App Store that goes beyond your iPhone, iPad and even Apple TV, but lets you run apps in iCloud?  That’s an easy jump for them, and a huge upending of the Personal Cloud world.  Google can do the exact same thing, and they’re even more likely to.

Personal Cloud Meetup Talk.047 So thanks for your time, and for listening (reading).  If you have comments, please share them.  It’s an exciting time.

OSCON 2013: The Source Must Flow

OSCON 2013It’s summer in Texas, which means one thing: It’s time to get away.  Last week I got away to OSCON, O’Reilly’s annual Open Source conference, in lovely, Portland, Oregon.  Herein is the account of that trip.

OSCON is a two and a half day conference preceded by two days of related tutorial sessions.  HP was a Diamond sponsor this year, so I finagled a free badge, and decided to go to the whole thing.  We didn’t have extra travel budget in my team, though, so I paid hotel and airfare out of my own pocket.  More on whether that was a worthwhile expense or not at the end of this post.

OSCON takes place at the lovely Oregon Convention Center across the river from downtown Portland, Oregon.  I lived in Portland for a year when I was in elementary school, and took a turn on the stage as Mr. Tumnus in Hinson Memorial Baptist Church’s production of The Lion, the Witch, and the Wardrobe.  I remember it being a lot larger than it apparently was.  That was a long time ago, and Portland’s a very different city now.

OSCON Networking RibbonsOSCON is a pan-technology conference.  As long as the project is Open Source, it’s welcome at OSCON.  Therefore you get a lot of variety, which is evidenced by the gigantic array of networking ribbons.  I didn’t stick one on, but I saw a few people with displays that would have made a Texas High School homecoming corsage maker jealous.

When I was picking tutorials I tried to focus on things I hadn’t gotten into before, but things I’d heard of, and wanted to know more about.  I ended up going for the R Predictive Analytics Workshop, Introduction to Go, Building a Distributed Sensor Network (with Arduino and XBee), and Erlang 101.  Some weren’t so great, some had unfortunate supply issues with parts.

Arduino AssemblyThe Distributed Sensor Network tutorial seemed really promising, but unfortunately we were missing the micro USB cables we needed to power our Arduinos.  Oh, and the Adafruit XBee Adapters we got were supposed to be pre-soldered, but weren’t.  Not an easy problem to solve when you have no soldering irons and only two and a half hours to do the whole tutorial.

The intent was to have an Arduino based sensor mote with temperature, humidity, IR-based movement and volume (sound pressure) sensors, which transmitted its data to a remote computer via the wireless XBee system.  Unfortunately we didn’t have the XBee adapters, and until half way through the class we couldn’t even power our Arduinos.  Fortunately one of the volunteers managed to run to Radio Shack and get us USB cables, but by then half the class was over.  We did manage to rig up a sensor to our Arduinos and get the data appearing via serial, and we have all the parts and the book with instructions to finish the project, but it was feeling like two and a half strikes in a row before I went to the Erlang talk…

Which was awesome!  Erlang is the weird friend you never knew you needed.  She does all the things that your other friends are terrible at, and after a long heart to heart at the local brewery, you totally get her.  Conference saved.  If multi-actor, highly scalable, multi-core programming is interesting to you, there are some great resources on its page, including Francesco Cesarini’s slides.

Erlang and Go seem to be two different implementations of similar ideas, trying to solve the massive concurrency problem in a structured, production-ready, robust way.  Go’s the hot new kid on the block, while Erlang has been in production for nearly 20 years.  Erlang seems to be a more interesting solution to me, though if you really like writing Java, C or C++, you might prefer Go.

You might have used Erlang if you’ve used CouchDB, Couchbase, Riak, Facebook Chat, Chef, RabbitMQ, voted in any of the UK Big Brother style SMS voting events, or ever sent data over a mobile phone network.  It grows across cores beautifully, and seems like it’ll be a really great solution when 64+ core processors hit the big time.  So, Erlang = Awesome, Conference Tutorials = Very Risky, Arduino Sensor Motes = Someday.

OSCON Space Party

Thursday’s opening party was space themed (I heard that last year it was Camp OSCON with merit badge activities and the like).  They had a jumpy balloon rig, space themed arcade games, interactive art, an indoor inflatable planetarium, a make your own space helmet craft table, and laser tag.  It was fun and loud, but the food options were limited for those on a diet, and as a non-social person, I soon wandered back to my hotel.

Every year OSCON has a nerd-oriented competitive activity.  Beat the game, win a prize.  This year the game was to collect 20 puzzle pieces (which you got from visiting booths, attending keynotes, having lunch, etc), and the prize was an OSCON 15th anniversary hoodie.  As a puzzle oriented and easily obsessed person I got my hoodie Wednesday morning, a few hours after the last piece had been made available.  I was somewhat disappointed to see that there were still hoodies available the last day, but I guess it’s good that those slackers were able to win, too.

Juju on HP Cloud at OSCONWednesday morning kicked off with keynotes, which were presented in an interesting, 10-20 minutes per speaker format.  One of the opening talks was by the president of Canonical, the company that produces Ubuntu and the cloud-oriented app orchestration system Juju.  He demoed Juju’s graphical cluster creation system running on top of HP Cloud, which was nice for us.  Juju looks like a neat system that compliments the existing solutions well, and it’s high on my list of things to look into.  There was also a great keynote about ‘My Robot Friend’ by Carin Meier, where she bravely did live hardware demos on stage, including a Clojure controlled quadcopter.

The most interesting keynote, though, was from Numenta.  Numenta’s keynote was presented by Jeff Hawkins, one of their founders and the guy who started Palm and Handspring.  Their technology simulates the neocortex, the part of your brain that remembers things and predicts patterns (specifically in their software, a 64,000 synapse slice of one of the layers).  They call it the Cortical Learning Algorithm, and they’ve open sourced it in the form of NuPIC (Numenta Platform for Intelligent Computing).  You feed data into this thing, and over time it builds up a map of the patterns in the data and can start to predict what will happen next.  The science is beyond me, but the demo and keynote was great, and you can (should) watch it on YouTube.  I went to their panel later, and they recommended Jeff’s book On Intelligence as a primer for those interested.  There are code samples (in Python!) with the NuPIC library up on their github account.

HP MoonshotThe keynote was impressive, and provided a nice start to the real meat of the conference.  While walking in I also happened to run into Pete Johnson, formerly of HP Cloud and now with ProfitBricks.  It was nice to see a friendly face.  HP also happened to have a booth in the trade show, doing demos of HP Cloud and showing off the oh-so-drool-worthy Moonshot Server.  (Drool worthy server shown at right.)

HP covered lunch for everybody on Wednesday, but I can’t remember what it was.  (I started doing a DietBet last week, so I only ate salads the entire conference.)  The conversations at lunch, though, were great.  On Wednesday I sat at a table with a Wisconsin lo-power FM radio and wholesale ISP guy, someone doing Hadoop at Disney (who’d previously worked at AWS), someone running a private cloud in Vancouver doing simulation-based pharmaceutical discovery, some guys from BlueHost (one of Code for America’s biggest sponsors) in Orem, and a guy who worked for an Apple accessory manufacturer in Portland.

The other panels I went to on Wednesday were one on the temporary cell phone network they setup up during Burning Man, a walkthrough of the parts and software needed to build your own cell phone with an Arduino (did you know that cell phone brains like the SIMCom SIM900 operate with an AT-command derived control setup, like your old 28.8 modem, including AT+HTTP commands to fetch web urls?), a talk on discreet math, and then one on getting kids to code (check out drtechniko.com, a robot language for kids to ‘program’ people, and Alice, a programmable machinima generator).  The last panel of the day was An Overview of Open Source in East Asia, with some really interesting insights into the Open Source community in China, Korea and Japan (and they gave us all free fans!).

OSCON OpenStack 3rd Birthday Bash

OpenStack Birthday Bash3 years ago at OSCON the OpenStack project made its debut, so that means it was time for a 3rd birthday bash.  Fellow HP Cloud-er Rajeev Pandey and I walked over, enjoyed some gazpacho shots, picked up a t-shirt or two, and marveled at their giant paella (seriously, they were like 3 feet wide).  We ran into a few other HP Cloud folks there, including Monty Taylor.  There was a cute birthday cake and lots of cupcakes, but after nibbling and conversing and drinking lots of water (it was surprisingly warm in Portland), soon it was time to go.  Happy Birthday, OpenStack, in software years you’ve almost hit puberty.

The Thursday morning crowd was a bit more subdued, with a fair number of attendees probably partying a little too hearty the night before.  Keynotes were good, with a great talk about Technology diversity by Laura Weidman Powers, co-founder of CODE2040. Licenses were a hot topic as well, including a talk about licenses effecting communities from HP’s own Eileen Evans.  It’s hard to top brain simulation and flying robots, though.

Docker StickerThursday I attended Tim O’Reilly’s talk on Creating More Value Than You Capture (and as an aside, I felt both sorry for Tim in only getting 30-40 attendees, but also better about the 15 my talk pulled in at SXSW), and a great intro to Docker from dotCloud.  If you haven’t looked at Docker, check it out.  The way they bundle up app binaries on top of base machines is awesome.  Then came lunch, with another great group of folks including someone managing DevOps for Disney.com (the entire thing on 60 VMs!).

After lunch was a really great talk on Kicking Impostor Syndrome in the Head by Denise Paolucci.  If you ever feel insecure about your skills, dig up a video of her giving that talk, it was really great.  After that was Designing the Internet of Things with the 3 Laws of Robotics, and then From Maker to China, where Brady Forrest described the challenges and pitfalls of taking a concept from prototype to small-scale manufacturing in China.  One book he recommended for those interested in the product design and manufacturing process was From Concept to Consumer, which now rests on my Amazon wishlist.  After that it was Hardware Hacking with Your Kids, with some funny slides and interesting anecdotes from Dave Neary, and then we were done for the day.  That night I worked on my SXSW panel proposal, and went to bed early.

Trade Show Caterpillar Head

OSCON SwagThe trade show went on Wednesday and Thursday, and had a good mix of big companies, lots of non-profits, and some interestingly unexpected exhibitors (League of Legends maker Riot Games).  There were some great shirts, including this Cloudera one: Data is the New Bacon, and its sister, Data is the New Tofu, one from the Kenyan data mapping non-profit Ushahidi, and plenty of other knicknacks and stickers for the kids back home.  PyLadies was there, Wikimedia was there, Craigslist was there, FSF, EFF, and the Linux Foundation were there.  Everyone was hiring.  The Tizen folks are giving away $4,040,000 (that’s four, count em four… million…) dollars in app development prizes.  There were more hosting and big data software companies than I have fingers and toes.  It’s a good time to be in technology.

Friday was only a half day, so after a keynote exhorting us to join the ACM, one noting that everything important has already been invented, and some group singing, we settled down to business.  First up was Cryptography Pitfalls with John Downey of Braintree.  That was a great talk, and though I knew a lot of the gotchas he mentioned, it was still nice to hear them laid out by a professional.  In short: Use a slow one-way hasher for passwords, don’t build your own crypto implementations, and always check SSL cert validity in your application code.  The slides are up, you should take a look at them.

OSCON ChalkboardAfter a break we headed into Open Source Social Coding for Good, with Benetech.  I’d run into the folks from Benetech in the trade show the day before, and was really excited to learn that they were doing hackathons already with HP’s Office of Global Social Innovation through their SocialCoding4Good project.  I’m really hoping to connect both of them to HP Cloud and do a hackathon in Austin.  The panel was great, and it was good to hear about nonprofits getting traction from corporate hackathons and volunteers.  We need to do more of that.  After that it was Polyglot Application Persistence, and then the conference was over.

So, back to my original question, was it worth it?  Would I go again?

If you’re in Portland, or the Portland area, I think it’s a no-brainer.  It’s a great conference, the attendees are sharp, it covers a ton of stuff, the keynotes are good, and I’m sure there’s something interesting every year.  The trade show’s great.  If you can’t snag a speaking slot or a super-discounted badge, you could get a lot of the value by getting an expo badge and watching the keynotes online.  If you’re paying for it yourself, and traveling to do it, it becomes a much murkier question.  So many conferences are putting everything online these days, what you’re really paying for are the networking opportunities and the experience: That conference euphoria of anything is possible.  That has a lot of value, but if you’re on a budget, maybe local conferences, hackathons, or meetups are good enough.  I hope I’ll be back at OSCON next year, but if I’m not, you’ll all just have to have fun without me.

Dust Bunnies goes Open Source

A few years ago I started working on a massively personalized children’s storybook called Dust Bunnies for the iPhone and iPad.  One of my friends, Deanna Roy agreed to write and narrate it, another friend Lisa Merry designed some adorable characters for it, and I found a bunch of really good programmers and artists to actually produce the thing.  We documented the development of Dust Bunnies, if you’d like to know more about how it came to be.  We eventually released it onto the Apple App Store, and while it sold a few copies, like most iOS applications that live in the long tail, it didn’t pop.  A lot of talented people spent a lot of time on Dust Bunnies.  To honor their work and in the spirit of Aaron Swartz, I’ve decided to release the engine code under an Apache 2.0 license, and release the artwork under an international Creative Commons Attribution NonCommercial ShareAlike license.  I really hope that people will mash it up, remix it and use it to create new wonderful things.

You can read all about Bunny Engine and the Dust Bunnies art here.  The Bunny Engine source code and Dust Bunnies Art live on github.

sc2_final

Remembering Aaron Swartz (1986 – 2013)

Aaron Swartz took his own life yesterday.  Today, the Internet mourns, or at least, the parts of the Internet who were aware of him.  Nearly everyone online is touched by his work, but most will be oblivious to his passing.  It’s starkest on Twitter, where half of the tweets I read are about Aaron, and half are from people who haven’t a clue.

I met Aaron in 2003, at the SXSW EFF party Polycot co-sponsored and organized.  The idea that a non-profit and a 3 person web development company could book a club a block away from the Austin Convention Center for a SXSW party shows you how long ago that was.  Aaron was speaking about Creative Commons at SXSW that year.  I forget how, but we somehow ended up running around together, trying to get the DSL working at the club (we ended up driving to another Polycot’s apartment and snarfing a router, because Texture’s was locked down).

Aaron would have been 16 or 17 at the time, and I remember him hauling around a backpack with his laptop in it that was nearly bigger than him.  Aaron was a prodigy, you could tell by being around him that he lived on finding solutions to problems.  He was the kind of person you sometimes wish you were, motivated, energetic, brilliant, but also wish you weren’t, because the prospect of it can be terrifying.  I wasn’t surprised when he went on to contribute to reddit, and start his data freedom and political justice efforts.  He was that kind of guy.

Aaron ran into trouble with the law a few years ago, after dropping a laptop into a data closet at MIT and snarfing down a couple million documents from the pay-per-access Scientific and Academic Journal Archive JSTOR, with the intent of uploading them freely on the internet.  JSTOR declined to prosecute, but Carmen Ortiz, the US Attorney for Massachusetts decided to push ahead, charging Aaron with a felony which held a maximum penalty of 35 years in prison and a million dollar fine.  The expert witness in the case has some notes.  Aaron fell into some pretty deep depression, as freedom loving, introspective intellectuals are prone to, and in the end, took his own life.

This is where Aaron’s story and mine start to mirror each other.  Before I got out of my teens, I had my own run in with our nation’s legal system, though mine was more tech business related than internet freedom related.  I did something I felt at the time was just, and then faced the possibility of consequences.  I can certainly sympathize with the feeling of helplessness you get.  Introspective nerds aren’t used to the criminal justice system, and we aren’t used to systems where we don’t understand anything and are unable to make any change.  In a computer system or a network you can learn, fix, and modify.  The justice system, likely for most of us, just exists as a giant monolithic machine that chews people up.  The prospect of getting caught up in a machine like that is terrifying, not to mention just losing a giant chunk of your life and becoming a societal outcast.  This can weigh heavily on a person, especially one who thrives on solving new technical problems and feels themselves on the side of freedom and justice.  With technology Aaron had agency, he had some power, but even with high profile friends, facing the machinations of the state, he felt he had no recourse.

We all also like to think we’re good people, we hold doors for people, we make room for people in traffic, we pay our taxes, we vote.  When we get a chance, we strive to do the right thing.  When you’re accused of a crime, especially when you’re doing something you feel is morally right, that can be crushing.  Suddenly society looks different.  You are, at least in some way, a bad person.  You’ve been separated from society, pushed out of the public body like a virus or thorn.  It isn’t implicit in every interaction, but you feel it, and it lingers there, at the back of your mind.  It takes a long time for that to go away, and in the mean time, if you’re prone to depression, things can get very dark.

In the end, Aaron’s storyline and mine diverge.  The charges against me were dropped, and after a few years of legal wrangling where everyone’s lawyers made some good money but the participants just had sleepless nights, the entire thing was settled out of court.  In the end, life goes on.  Lesson learned.  No black marks, no permanent damage, no ticking the ‘convicted of a felony’ box on forms.

Aaron was facing more than that for a more righteous cause, and it got the better of him.  In the end we all lose, even the state attempting to impose justice.  People like to think that they want freedom and justice, that they’d strive for it and fight for it if they had reason and opportunity, but the price is high, and we are all too comfortable.

Tim Berners-Lee posted this:

Aaron dead.
World wanderers, we have lost a wise elder.
Hackers for right, we are one down.
Parents all, we have lost a child. Let us weep.