Friday, October 31, 2008

Thinking in Git

I recently started using Git on a small team project. Why Git, you ask? Well, previously I had used CVS and Subversion (and by such admission I am knowingly submitting myself to being mocked by Linus), and prior to that had used Visual SourceSafe. So I figured it was time to learn something new and dive into distributed version control.

I have to say, it's a bit of a leap. In the same way that I stumbled through learning to trust in CVS to merge my changes, as opposed to locking a file the way SourceSafe did, I'm finding the distributed model takes some getting used to.

It's great that I don't have to have network access to do commits. That's the easy part to appreciate. With Git, you commit to your local repository copy. If you want to bring your changes together with someone else's, either you push to their repository, or they pull from yours, but that is in no way tied to the act of committing your changes. There's no built-in notion of a master repository. Really.

For some reason I'm finding it difficult to grasp that concept. For years I've relied on the notion that all my changes are safely locked away in the master repository. The master repository is the source of all truth. (Ha ha, get it? "Source" of all truth? You don't get it. Fine.)

In our particular team setup, we do have a master copy hosted on GitHub. I'm finding that every single time I do a "git commit", I have this unstoppable compulsion to execute a "git push", and I'm not sure that's the right idea. I'm looking forward to that breakthrough moment when I finally get it. I'll let you know when that happens.

Friday, October 24, 2008

Singularity Summit 08 Day 1

Today was the Emerging Tech Workshop component of the Singularity Summit, and I have to say I'm fairly disappointed. The venue certainly didn't help. While the Tech Museum of Innovation is an inspiring place, it's also full of exuberant (loud) kids, and that combined with the less than adequate sound system made concentrating on the speakers a challenge.

Still, it was certainly possible to pull some useful stuff out of it. It was great to hear Thomas Dietterich on the semantic web panel validate what I've been thinking about AI for a while, namely that we can't expect to have useful AI until it has an awareness of what's going on in the real world. That might seem obvious, but it appears many folks have been working simply on text manipulation and inference engines, which will only get us so far. He also mentioned OAuth, which I hadn't yet heard of, which allows users to give applications access to their data in a controlled manner.

The highlight of the robotics panel was clearly Bruce Hall's use of the phrase to "spinning dreidel of death" to describe Velodyne's laser vision system (LIDAR), used by many of the vehicles in the DARPA grand challenge. One fellow asked if anyone on the panel saw potential commercial application of some of the research work being done using rat brains to control robots, to which the panel answered a flat "no". That surprised me a bit. I was thinking folks in a robotics panel at a summit on the singularity would perhaps be a little more forward thinking.

Anyway, there were also guys presenting on their supposedly singularity-related companies, including Climos, m2mi and Piryx. These mostly felt like VC pitches. Interesting stuff for sure, but hardly what I was expecting. Where were the guys working on heads-up displays and neural interfaces, for instance? How about the guys from Mind Balance working on mind-controlled video games? I think these were the things the audience was clamoring for but didn't get.