I just wanted a hamburger

What was supposed to be a quick 10 minute trip to the nearby Carl’s Jr. for a hamburger ended up with blood, police and arrests.

I’m back home visiting my family for a few days, and my brothers and I decided to make a quick run to grab a couple hamburgers. It was about 1 AM, but we’ve done this before, hundreds of times, and never had a problem. It was pretty quiet out, and trouble is the last thing we expected.

We got our burgers and began to walk home. Across the street from the burger joint is an AM/PM. There’s an alley way right behind that that takes us to a small parking area off a street that connects to our street. It’s a nice quick shortcut, well lit, and safe enough. Usually.

As we were heading through the parking area, we heard footsteps behind us. I turned around and saw three guys, but they were a distance aways. I had a bad feeling, but thought I was being paranoid. As we continued to walk, they continued to keep their distance, until we walked onto the street in an unlit area.

One of the guys (they were all teens) pulled his shirt or jacket over his face and grabbed my food. He said, “Give me the food. Give me the food!” I held onto the bag and he pulled hard, breaking the bag in two. He took it and started to laugh. Without hesitation, my brother yelled at him to give it back, and threw his little Dixie cup of water at him. The guy turned around and started to punch him in the face.

There was blood everywhere.

This all happened so fast that I couldn’t react in time, but immediately after I saw another one of the guys start to go over to my brother as if he was about to join in the fight. I jumped between them and said, “Hey, it’s cool. Just take the food and go.” I was frightened that they would pull a knife or gun on my brother and wanted to just end it right then.

They turned around and started to leave. The guy who punched my brother said something like, “I sure was hungry!” and they laughed and continued down the street. We saw them turn onto this one fairly long street. I immediately called my parents, waking them up, as at this point I really wanted more people nearby in case those guys realized they could get our wallets instead of just our food.

I then called the police. They were here within two minutes, faster than my parents even. And not just a couple police. Two police cars sped past us, down the street those guys went (as I described to the operator on the phone), and then two police cars stopped where we were. A third came by later. And a fire truck. And an ambulance.

It turned out that they were expecting something big a block away and thought this might be it. So they sent in the cavalry. Fine by us. They took our statements, had us each identify the suspects (who they had nabbed almost immediately). I was able to positively identify one of them, though he wasn’t the attacker. My brother, however, was able to give a positive identification for the attacker. We were told he’d likely be in jail before the night is up, and maybe his accomplices as well.

So at least we got them off the street. My brother, though, is currently at the hospital getting stitches, and I’m feeling guilty as hell for talking them into coming with me for a burger. I just wanted a hamburger, and instead I got my brother a trip to the hospital, and some guys off the street. What a night.

Happy birthday Review Board!

One whole year…

While attending SuperHappyDevHouse, David and I realized that it was the one year anniversary of Review Board‘s public announcement. (This was the evening of May 17th. I’m just a few hours late in getting this post up.)

It’s been a pretty awesome year for Review Board. What begun as a small project intended for use in our team at VMware and in our personal open source projects turned into a large project with a great community of developers and users. It’s now being used by dozens of companies and projects (some of which have given us permission to list them publicly) and has had code contributions from over 35 users. To everyone who has contributed to the project, we’d like to give our thanks. Review Board wouldn’t be the tool it is today without your help.

I’d like to list some of the major things that have happened in the past year.

  • Review Board has been adopted by one or more teams at around 40 companies (including Yahoo! Search, VMware, and Tripwire).
  • Received contributions from over 35 users.
  • Added support for CVS, Subversion, Perforce, Git, Mercurial, and Bazaar.
  • Added support for useful features such as interdiffs, screenshot commenting, syntax highlighted diffs, customizable dashboard for keeping track of review requests, status reports, a full JSON API, and more.
  • Several presentations were given at various companies and conferences on Review Board by third parties.
  • One public presentation was given by us at LugRadio Live USA 2008 (view the presentation)
  • We’ve started hosting projects for this year’s Google Summer of Code on our Summer of Code server.

That’s just a small sampling. There have been many changes made to stabilize the codebase, improve usability, and generally make the product more awesome.

And of course there’s a number of things happening in the near future:

  • Monotone support.
  • A new, improved administration UI.
  • Extensions support, allowing Review Board to be extended in a variety of ways and integrated into other products.
  • A new set of command-line tools and a Python library for working with Review Board servers.
  • Support for P4V (for Windows Perforce users).

Database Migration and Parent Diffs

Today, a change went in that improves Review Board in two fundamental ways.

First, we now have a fast, powerful way of doing database migrations in-place, without dumping and loading the database. While this should make life easier for users and allow us to modify the database without fear of breaking people’s installs as often, it will also save administrators of large Review Board servers a lot of time. Before this change, the VMware database (of over 25,000 review requests) took at least 30 minutes to do a full migration. Now it shouldn’t take more than a minute.

Second, we’ve just landed the initial support for diffs based on parent diffs. If you’re a user of a distributed version control system (such as Git or Mercurial) you’ll appreciate this. Before, your change had to apply against revisions in the master repository, making it impossible to put up a review request for a change on a sub-branch of a branch when the parent branch didn’t exist on the server. Now, a diff of the parent branch can be uploaded along with your sub-branch’s diff.

Confused? Maybe an example will help. Say you’re working on a large restructuring change in your “code-restructure” branch in your local Git checkout. You have a topic branch off of your “code-restructure” branch with changes you want to put up for review. This used to be impossible without including the whole “code-restructure” branch’s changes in your diff as well, but now, you can put up a diff of the topic branch along with a diff of the “code-restructure” branch, and the topic branch’s diff will appear on Review Board, ready for review.

The backend code for this is now in Subversion. We’ll be adding support to the post-review tool shortly, making this accessible to anyone. Review Board will become fully usable for distributed version control systems.

Are you using Review Board?

Review Board is gaining popularity, and more companies are beginning to use it. If you work for a company or an open source project that’s using Review Board and can give us permission to list you on our Happy Users page, please let us know!

And here’s to an even better year for Review Board.

Free Review Board Hosting for Summer of Code

Google Summer of Code 2008 is on, and soon students will begin coding, which means mentors will be reviewing code. While the Review Board project is not a participating project in this year’s Summer of Code, we felt Review Board could help with the whole process, improving things for both the students and the mentors.

Starting today, and for the duration of this year’s Summer of Code, we at the Review Board project would like to supply up to 30 projects with free Review Board hosting at gsoc.review-board.org. We’ll handle maintenance of the server, support, and provide assistance to get students and mentors set up.

Doing code reviews with Review Board is simple and saves time over reviewing standard raw diffs, with features such as a powerful diff viewer with syntax highlighting and inline commenting, interdiffs, status reports, and support for a wide variety of revision control systems. We believe it can be as effective a tool for open source development as Bugzilla and Trac have become.

Th Summer of Code server is intended for Summer of Code-related changes only. While we’d love to provide hosting for projects in general, we have limited resources. However, should your project decide to set up its own Review Board server in the future, we’ll be able to assist in migrating your Review Board history to your new server.

If you’re interested in trying out Review Board for your Summer of Code project, you can find out how to apply on our Summer of Code Hosting page.

To learn more about Review Board and how it works, you can look at our project website or watch our presentation from this year’s LugRadio Live USA.