Topics:

The End of an Era

Writing good content for a blog can be really hard. I don't
always succeed. There is this incredible tension between "writing what I want
to write" and "writing things that people want to read".

For example: Several weeks ago I found out Corey gets his
home Internet service from a guy whose primary occupation is hog farming but
runs a wireless ISP on the side. I think that's hilarious. Since that day, I
have been trying to find a way to work that little tidbit into a blog article.
What I really want is an essay that is around 1,200 words long and appears
to be about .NET programming or AJAX but is really a thinly failed opportunity
to make fun of Corey because he lives in an area which makes Champaign itself seem
metropolitan.

Anyway, I haven't been able to figure that out, but since
the rest of this article is mostly frivolous, starting off with an irrelevant
remark about pigs and the Internet won't do any real damage.

I wonder if anybody makes a swine feeding trough that can be
installed in a four-post rack? Pigs are short, so the trough would go at the
bottom, and there would be plenty of room above for a few servers and a Cisco
router.

Goodbye to 3200 Farber Drive

It's a busy week here at SourceGear. Tomorrow and Friday we
will be relocating to our new offices. We are all very excited about the move.

But we are saddened as well. We've been here on Farber Drive for about five years. Furthermore, before SourceGear some of us were employees
of the previous tenant of this building. I've spent most of my career here.
Heck, I've probably spent more waking hours here than in any other building on
earth.

I'm tired of coming to work here every day, but it's a good
building. One of my early mentors taught me to "get lots of cheap space and
use it wastefully". This place has been an expression of that philosophy.

At 115 North Neil Street, things will be very different. The
philosophy there is more like "get enough space and make it a really nice place
to work". The new place is great, but we won't have room for some of the
things we do now.

Most notably, we won't have room for our HORSE games.

Office Recreation

I believe strongly in the importance of a little office
recreation at a software company. In part, this is because I believe in every
developer having their own private office. Coders need a place where they can
concentrate, but people need breaks and teams need to interact. So we try to
ensure that there are reasons for people to get out of their office now and
then.

The weekly HORSE game is one example of this. Every
Wednesday we all have lunch together as a team. After lunch, many of us head
outside to the hoop.

But the new office is on the top floor of a downtown
building. There won't be any room for a basketball hoop. Today's game was our
last.

This tradition has been a unique part of our company
culture. I feel I must take the role of historian. The tale must be told.

H-O-R-S-E

Years ago when this started, the rules started out just like
everybody else plays HORSE:

Take turns shooting in rotation.

If the person before you did not make their shot, you have
an "open shot", and you can choose any shot you like.

If the person before you makes a shot, you have to make
the same shot. If you miss, you get a letter.

After you get five letters, you're out of the game.

Every once in a while we declare a "classic" game and play
these rules. But most of the time we play the "house rules" which have been
gradually developed over the years.

Things get started with a game of Rock-Paper-Scissors
to determine the ordering. Most people take this
exercise lightly, but if you know who the bad shooters are, winning the RPS
game can lead to winning the HORSE game. The key is to get yourself positioned
directly behind someone who isn't a very good shooter. Our technical term for
such a person is a "buffer". An even better scenario is to get yourself behind
two bad shooters in a row. Of course, since we are geeks, this scenario
is called "double buffering".

In the early days when our house rules were just starting to
emerge, the shot qualifiers were pretty simple. For example, a player might
call "no backboard" to specify that the shot must not merely go through the
hoop, but must do so without touching the backboard at any time. The slightly
less hostile variant is "no backboard first", which indicates that the ball can
touch the backboard but only if it touches the rim first. Other very simple
calls include "jump" (must jump while shooting), "no jump" (feet must not leave
the ground), "must draw rim" (ball must touch the rim at some point).

House Rules

Over the years, the list of house rules steadily grew. The
following table illustrates some of the shots and qualifiers which have become
popular in SourceGear HORSE games:

3 fingers

One handed shot with only 3 fingers touching the ball.

Hook

This is a considered a classic shot. Form matters. This
must be a proper hook shot.

One knee

Shoot while kneeling on one knee

The "Lewinsky"

Shoot while on both knees.

(I apologize for the name. Don't blame me. I'm just the
historian.)

Stork

One handed, standing on one foot.

The particular shot shown in this photo is called "The
Stork King", so named because of the unusually great distance between the
shooter and the hoop.

Sidespin

Ball must spin sideways after it leaves your hand

No feet

Shoot with neither foot touching the ground

Siesta

Shoot while lying down

Backwards overhand

Shoot a regular shot with your back to the hoop

Bounce shot

Bounce the ball off the ground and into the hoop. I'm not
a good enough photographer to get a really good depiction of this shot.

Heels on wheels

Shoot while standing just below the hoop with your heels
touching the wheels on the base of the apparatus.

Cheers to SourceGear alumnus Robert Sievers, the
originator of this shot.

Over the backboard

Whenever shooting from behind the backboard, if you want
the shot to go over the top, then you should be explicit. If not, someone
athletic might just try to jump and shoot the ball under.

One pivot

Ball must return to you after you make the shot. You can
pivot one foot to reach for the ball. Calling "no pivot" is the far more
difficult variation on this theme.

The "Ian"

Stand at the free throw line, bounce the ball off the
backboard and, while in mid-air, catch the ball and put it back into the
hoop. This shot was named after the person who first introduced it. Most
people have terrible skills when they first join SourceGear. We were most
annoyed when Ian Olsen turned out to be an exception to this rule.

Scud

As you shoot, the person who follows you in rotation will
attempt to throw another ball and hit yours in midair.

The "Workers Comp"

Shoot over the backboard while running and jumping over
the rear part of the base.

Note that whenever sensible, shots may be called with
combinations of these qualifiers. For example, "3 finger sidespin jump stork"
is exactly what you think it is.

Kicking and other Multiple Step Shots

Gradually, people started having trouble thinking up new
shots. And then, the game went to a whole new level when someone started
introducing shots with multiple steps that involve kicking.

The basic kick shot starts with a "drop kick" (drop the ball
and kick it after it bounces once). A system of qualifiers is available for
specifying what must happen after the kick:

Trapezoid

The shooter and the drop-kick must be contained entirely
within the trapezoid (as defined by the yellow lines on the pavement). On
the kick, the ball must hit the wall of the building. Shooter must recover
after a specified number of bounces and shoot from within one pivot of the
place where he recovers the ball. So, if someone calls "Trapezoid and 3",
that means 3 bounces after the kick hits the wall.

Parallelogram

Same concept, different starting point.

The "Bush"

After the drop kick, the ball must hit the bush without
hitting the ground first. Then, recover the ball anywhere and shoot from
that spot. During most of 2004, fairness compelled us to refer to this shot
approximately half the time as the "Kerry".

Apparatus

The drop kick must hit the apparatus. Recover the ball
after one bounce and shoot. If the ball goes through the hoop on the kick, you
can deduct one letter from your score. This "refund" is the primary incentive
for people calling this shot.

Head shot

Instead of a drop kick, bounce the ball off your head into
the wall, recover it and shoot.

Knee kick

Instead of a drop kick, kick the ball with your knee, off
the wall.

Aussie rules

First drop kick off the wall. After one bounce, hit the
ball back to the wall with your fist. Recover after one bounce and shoot.

Wasp shot

Any shot which includes the word "wasp" in the qualifier
list involves hitting this red bell with the ball, thus angering the
occupants of the wasp nest just below it.

Heating the Water Too Quickly

Place a frog in water. If you heat the water too quickly,
he will notice and jump out. But if you increase the temperature gradually
enough, you can boil him.

In our defense, I would like to point out that the full
spectrum of absurdity you see here didn't happen overnight. It took years
to develop all these ridiculous rules. But I do remember one or two occasions
when we took notice of what was happening to us.

Brody was shooting "Pittsburgh and 2" (start at the
intersection of the three big cracks in the parking lot, drop kick against the
wall, 2 bounces). His kick hit the wall but got stuck in a bush. At this
point, the shot is still considered "in play", and he has not used either of
his two bounces. He is not allowed to touch the ball until after the 2 bounces
have occurred, but he is allowed to touch the bush. So, he proceeded to wrangle
and whack the bush, trying to knock the ball out. The episode seemed like it
went on for several minutes, during which all of us had time to reflect on just
how hot the water had become.

Other Rules worth Mentioning

For this to be a reasonably complete chronicle of the era of
SourceGear HORSE, there are three other items which should be explained:

The roof

The unfortunate consequence of the introduction of kick
shots was that the ball started landing on the roof. It's a really big
hassle to go up there and get it, so we had to amend the rules to discourage this
behavior by way of a two-letter penalty.

Proving

When a player gets his fifth letter, the person who put
him out of the game has an opportunity for a refund. If he makes the same
shot again, he can deduct one letter from his own total. Going "negative" is
not allowed. However, if he shoots an air ball on this "prove shot", then
the ejected person is back in the game. For this reason, it is important to
not choose a multi-step shot when giving someone their fifth letter. If you
screw up the initial kick/throw/bounce/whatever, then your shot is considered
an air ball and the person comes "back from the dead".

The Belt

The winner of each day's game is honored with the
privilege of hanging "The Belt" on his doorknob.

As I mentioned, today's HORSE game was our last. It is
somewhat fitting that Dan Schreiber won The Belt, as he is probably the best
pure shooter.

But the all-time leader in wins is Brody Finney, originator
of many of the most ridiculous shots in our repertoire, and the person pictured
in most of the photos here.

Looking Forward

History isn't all that valuable unless we learn from it. So
what have we learned from this story? Did this whole thing get completely out
of hand? Perhaps. I've always suspected the folks at neighboring businesses
see us out their windows and think we're nuts. Maybe we are.

But I suspect the truth is that we've learned nothing at all
which might change our behavior in the future. :-) Even if the frog
got boiled this time, we still believe in the principle. Developers can't
write code non-stop for eight hours every day. Teams can't function if people
never see each other. Things like company lunch and a little office recreation
go a long way.

So, although our new space is smaller, we made room for the
important stuff. As I type this, our pool table is being moved and installed
in the "Rec Room" at SourceGear's new headquarters. :-)