Open Source and Research at Microsoft

So, as I’ve alluded, I’m at Microsoft Intergalactic Headquarters this week for the Microsoft Technology Summit. The crux of the biscuit here is to invite people from communities not using Microsoft technology and show them what Microsoft is up to.

There’s particular emphasis on what MS is doing in the Open Source Software space. Sam Ramji opened up the event to give us a sort of rundown on what MS is now doing in OSS and interoperability. I was unaware that IIS7 will support PHP, that MS is changing their practices to suit the Samba project or that HyperV will, in part get released as OSS.

Sam mentioned that he is committed to not confusing Open Source and Shared Source. It’s a slight distinction to most people but it really tends to rankle those who know the difference. I think he best summed it up by saying OSS at MS is in year 3 of a 10 year project and to judge it by what they actually do, and not their overtures (big nod to Ballmer rattling sabers about OSS and patent litigation).

Next up, Kevin Schofield showed off some of the work MS Research has been doing. His first point was that research does pay off. Research money into technologies like VLSI, databases, parallel databases and workstations have yielded multi-billion dollar industries. Projects that start out as pure academics can evolve into major players such as Oracle and Sun.

MS Research’s mission is to advance the state of the CS art and ensure that MS has a future. By the latter, he means that MSR is a hedge on the company’s agility. They don’t want to turn a corner and find customers demanding something that MS doesn’t know about.

To this end, they hire the best researchers around and then don’t tell them what to do. In this way, they refer to themselves as the “world’s largest CS department”. However, knowledge transfer is critical. If they don’t transfer technology to the product groups, what they’ve done is useless.

I found it very interesting that Kevin said “tech transfer is a social process.” For this reason, he specifically hires people with good relationship management. People Hacks at work ya’ll!

Fix Subversion conflicts

Got a case where you did a @svn up@ and now you have a bunch of conflicts where you just want to overwrite your changes? I’ve got a little bit of Ruby cleverness for you:

  `svn status`.split("\n").grep(/^C/).map { |c| c.scan(/\S+/).last }.each { |c| `svn cat #{c} > #{c} && svn resolved #{c}` }

I run this from @irb@ at the root of my Subversion working directory. It makes me happy.

Update: lord that looks ugly on one line!

  status = `svn status`.split("\n")
  conflicts = status.grep(/^C/)
  files = { |c| c.scan(/\S+/).last }
  conflicts.each do |c|
    `svn cat #{c} > #{c} && svn resolved #{c}`

Git is nouns and verbs

Git was originally not a version control system; it was designed to be the infrastructure so that someone else could build one on top. And they did; nowadays there are more than 100 git-* commands installed along with git. It’s scary and confusing and weird, but what that means is git is a platform. It’s a new set of nouns and verbs that we never had before. Having new nouns and verbs means we can invent entirely new things that we previously couldn’t do.

Avery Pennarun, Git is the next Unix

Geek spring break

For the fourth time, I’m at the annual geek retreat in Austin. Since I went when it was but 300 people, I’m obliged to marvel at how big the conference is getting. I remember when we had to walk uphill, through the snow, both ways, *on fire*, to get to every panel.

This year, I’m going to retire the hoodie I got five years ago wen I first attended SXSW. It’s a big deal, mind you. FYI.

Anyhow, I’ll attend a subset of these sessions, if you’re curious. I’m hoping on “attending” the “hallway track” more often this year. Also, I’m going to take the leap and not bring my laptop with me. Just a Moleskine and my trusty tricorder.

More importantly I’m going to the Austin on Rails Happy Hour and playing at the Rock Band party with The Rural Jurors.

If you aren’t are coming, I will continually lament your absence. Otherwise, I look forward to seeing you there!