That Roller Skating Thing She Won’t Shut Up About

Everyone who knows me in person or has followed my social network posts over the past year will have heard or read my gushing about how much I love Roller Derby.

My new skates!!! (without wheels)

New skates are a derby girl’s biggest excitement (besides playing, of course). I ordered these beauties way back in early December and finally got them two weeks ago. I skated my first game on my old ones because they feel very different but I love the new ones! :D

It has been about a year since I started. At the time of writing this, I have NSOed (see below) 20 women’s bouts, 2 junior bouts and 10 men’s bouts and countless scrimmages of different sizes, and helped out as a skating official at training for some time. Last weekend, I made my debut as a player so I decided I’ll finally introduce you to the sport. (Also, because people keep asking me what Roller Derby is about ;) )

What is Roller Derby?

Roller Derby is a full contact sport played on quad skates. That’s the type of skate people used before inline skates became popular. It can be played on a flat track (pretty self-explanatory) or a banked track (slanted). The sport is primarily played by women but there are more and more men’s and co-ed teams. There are also different rule sets. The most wide-spread one is by the Women’s Flat Track Derby Association (WFTDA) – these are the rules I know and refer to when I talk about derby. They are used by a lot of (if not most) women’s teams world-wide and by the Men’s Roller Derby Association (MRDA).
I will summarise a couple of rules in this post but please be aware that this is by no means complete or official! (The official rules can be found over here.)


A game, or bout, consists of two 30-minute periods which consist of rounds, called jams, which can last up to 2 minutes. It is played on an oval track that looks a bit like a miniature version of a running track (it’s less than 60m long). Each of the two competing teams can bring up to 14 players. During each jam, each team fields five players: four blockers and one jammer. The jammer wears a star on her helmet (it’s on a helmet cover or “panty”) and one of the blockers, the pivot, wears a stripe on hers. She has the same responsibilities as the other blockers but she also serves as a backup jammer for an action called starpass (jammer hands her cover to pivot, pivot puts it on and becomes the active jammer) and is often considered the strategic leader of the group on the track.

A group of blockers from both teams form the pack. More specifically, it’s the biggest group containing blockers from both teams in which each of the blockers is at most 10 feet away from her closest neighbour measured by their hips. Sound complicated? It is. In front of and behind the pack, there is a so-called engagement zone. Blockers may (legally) engage jammers and each other inside the engagement zone, jammers may also engage each other everywhere else on the track.

Who else is there? Officials!!!

An army of officials. I’m not kidding.
There are up to 7 referees, or skating officials: one per jammer, as well as two on the inside of the track and three outside of track to watch the pack. Skating officials wear black-and-white stripes and are also known as zebras.
In addition, there are up to 14 non-skating officials (NSOs) who start (and end) the jams and periods, track penalties, publish them on a whiteboard for the teams, time the penalties for up to 8 players in the penalty box (never seen that happen but it could), keep track of scores, publish them on the screens and keep track of the skaters currently lined up. NSOs wear pink (black or white are also common — or blue in Men’s derby) and are sometimes called flamingos.
Overall that makes more than 20 people to take care of 10 players — and while that may seem a bit much, let me assure you, they are all needed!

Scoring and Winning

The blockers from one team work together to get their own jammer through the pack and keep the opposing jammer from passing them. A team gets a point for every opponent their jammer laps.

The first jammer to leave the pack on her initial pass gets awarded lead jammer status. While she has that status, she has the right to call off (end) the jam before two minutes expire. Strategically, this is super important! The jammer will lose lead jammer status if she commits a penalty. In this case, the jam automatically lasts the full two minutes.

The team with most points at the end of the bout wins.



As with every sport, there are rules about what players are allowed to do. In Roller Derby, a lot of them have to do with safety, e.g. you are not allowed to trip people, punch them, hit them with your head (or against theirs), block them while skating in the wrong (clockwise) direction, or skate right into their backs at high speeds. Other rules are in place to ensure a fair game, e.g. you are not allowed to overtake people out of bounds, or push them aside with your hands or elbows.

And then there are some that make the game more interesting to watch. Having some blockers chase the jammers around the track would result in a race so they are restricted to stay reasonably close to the rest of the blockers. Although this doesn’t mean that there won’t be a fast pack.

Once a skater receives a penalty, she has to go to the penalty box for thirty seconds (this was a full minute until not too long ago). If this skater is a jammer, her team cannot score any points while she is in there. For the other team, this is an opportunity to make a lot of points during that time. We call that a powerjam.

If a skater has collected seven penalties in a game, she fouls out and is no longer allowed to play.


What I love about Roller Derby

  • It’s a super fast-paced sport. There are a million things happening at once which makes it super exciting to watch. You can watch the jammers race around the track, or watch the pack’s hard hits, and great teamplay. Or you can watch the officials (after I started officiating this became pretty interesting) so you know why exactly that one player is skating to the box.
  • It’s very physically challenging: skating fast, stopping quickly, hitting, being hit, falling and getting up quickly, dodging, pushing through, changing direction,…
  • It’s also mentally challenging. See the million things happening – and you’re in the middle of it, whether you’re an official or player. Overwhelming at first? You bet. And then you’re supposed to do more physically and/or mentally challenging things, too.
  • Rules. The basic rules are easy enough to understand in a couple of weeks. And just when they start to seem clear and you think you got the hang of it, you discover that you don’t know anything and that there is a lot of room for interpretation. Learning them is a lot of fun!
  • Strategy. It’s really quite mind-boggling and will require way more than a few words. Everything happens very fast during a jam and your team has to adapt to the change quickly and work together effectively. Your strategy can change within a second or two, e.g. between offense and defense. There’s a tumblr full of gifs highlighting strategy, techniques and rules.
  • The community. Roller Derby is one big global family and wherever you go, you meet a lot of awesome people to hang out with and learn from. There are lots of strong, independent women (and men) who are all very different but we’re united by our love for the sport.
  • Every body type has a place in the sport. We’re a very diverse bunch of people and different sizes and shapes bring different strengths and challenges. “In Roller Derby you can be any shape and make yourself a more powerful version of that shape.” (Kamikaze Kitten of London Rollergirls, Derby Crazy Love)
  • The sport is also very inclusive of all sexualities and genders. While by no means perfect, there are explicit policies in place and they are discussed and improved upon.
  • I have met so many amazing people through roller derby! Not just my home league, the Rollergirls of the Apocalypse in Kaiserslautern, Germany; and my guest league in the states, the Sac City Rollers in Sacramento, California, but also tons of officials and players from all around the world at away bouts, two bootcamps, and three tournaments in five different countries.
  • Derby names! To make this sport even more fun, every skater who passes her minimum skills test gets to choose a nickname to skate by. Mine is Ferociraptor (Ferocious & Velociraptor). :D To see more awesome names, check out Two Evils and Derby Roll Call.
  • Did I mention that hitting people is fun? ;)

Long story short: I love pretty much every aspect of Roller Derby. :)

A (Moving) Picture is Worth a Thousand Words

Why we are all obsessed with Roller Derby:

Here are some videos explaining the game since it’s always easier to grasp with visuals. Note that they’re all slightly outdated — the jammers start on the same whistle as the blockers, pivots no longer set the pace of the pack, and penalties are only 30 seconds long by the current ruleset. There may be some other inaccuracies. However, they’re all fun intros!

And here is some banked track roller derby. They have entirely differnt rules and I’ve never seen an actual banked track bout but I hope this will change. Roller Derby became more well-known through Whip It, a Hollywood movie about a girl who discovers banked track roller derby. It’s not a faithful representation of the sport but it does a great job at portraying the enthusiasm with which it is played. Without further ado, here’s a short clip.

Git version management today!

So, you’re working on a project for longer than a couple of days. Maybe you will even have to write up a report on the progress at the end (and don’t always remember to document what you’re doing). One thing you will strive to avoid is losing your data – because, let’s face it: even a week’s worth of work can put you at risk if you’re working on a deadline (if you don’t, it will still be annoying). Maybe you also want to experiment a little. You can always undo your changes manually but if you experiment takes longer than a day, you may not even remember all details.

My favourite solution to these problems is using remote version management. There are a couple of different systems I have had the pleasure (and displeasure) to work with over the past couple of years and so far, git has been my weapon of choice in the battle against data loss and chaos. My usual setup is to have a server where I store a so-called “bare” repository (i.e. a repository that does not contain a checked-out version of my files). This repository is usually placed on a server I can reach from anywhere I want. Setting it up is pretty easy:

$ mkdir myRepo.git
$ cd myRepo.git
$ git --bare init
Initialized empty Git repository in path/to/myRepo.git/

Now, I can clone the repository to any other computer I want.

$ git clone user@server:path/to/myRepo.git
Cloning into 'myRepo'...
[password prompt] 
warning: You appear to have cloned an empty repository.

If you have never used git on your computer, you need to set your name and email address. The easiest way to do this is to write the following into ~/.gitconfig:

          name = Your Name
          email = Your Email

Now, you may add files into the repository. As a rule of thumb, you add everything that is raw data and omit generated files (pdf, executables, compilation byproducts, most hidden files). Below are some examples I use a lot.

$ git add *.h *.c *.hpp *.cpp      # C(++) source files
$ git add CMakeLists.txt           # build file
$ git add *.tex *.bib pics/*       # tex source files, pictures

Now it’s time to commit your first controlled version (imagine a commit as a snapshot of your files). This is mostly straightforward, but there’s one little trap: in later commits, you will have files that are already tracked which you have modified. To include them (if you simply want to commit all changes), make sure not to forget the little “-a”!

$ git commit            # will open an editor for your commit message
$ git commit -m "..."   # give the first commit message directly
$ git commit -a         # commit all changes, including modified files  !!!

You can also choose to commit specific changed files by adding these files to the commit explicitly (even if they are already tracked), and then committing without the “-a” option:

$ git add thisFile thatFile
$ git commit

Now you have a local version. However, if you work on more than one machine (or simply want to have a backup), you will have to “push” the changes to the server. Other systems (e.g. svn) do not need this extra step, however, their committing process requires an internet connection if you have a remote repository. With a commit+push system, you will be able to store versions on your computer while working on a train and simply push them to the server once you arrive at your destination.
On the first push, you will have to specify a branch to work in. Here, it’s called master, but you can also call it Uncle Scrooge, your name, a specific feature you’re working on, etc. Later, you automatically commit to the branch you’re currently checked into.

$ git push origin master   # first time pushing
$ git push                 # later

If you’ve been working from one computer and now want to get the most recent version on a different one, you will have to “pull” it from the server. (Before you do this, commit your changes.)

$ git pull

Congratulations, you can now use the basic functions of git!

Here are a couple of useful tools:

$ git help      # guess what
$ git status    # gives you a list of all files and their tracking 
$ git stash     # lets you temporarily stash away your changes (e.g. when you pull but don't want to commit yet)
$ git branch    # lets you work with several branches in parallel (recommended if you're not working alone!!)
$ git checkout  # lets you switch (or reset) to a specific commit or branch
$ git diff      # lets you view differences
$ git mv/rm     # same as mv/rm, just with repository support

Then, there is the .gitignore, a file that lets you keep certain files from being tracked. Why is this cool? If you have a bunch of new files, you can simply add all of them by writing

git add *

instead of adding each of them manually! You simply put a file called .gitignore in your myRepo folder and fill it. Here’s an example:

# compiled files

# compressed files

# hidden files

# cmake byproducts

It makes sense to track the .gitignore if you use more than one computer. Since we just told git that we want to ignore .* files, you will have to force the adding process:

git add -f .gitignore

And that’s it! You have your git all set up. Have fun and don’t forget to commit regularly and push every once in a while. :)

Moline, which state?

Long story short: I just spent 10 weeks in California. This week, I’m at the IEEE Visweek in Atlanta, GA. My plan was to fly from San Francisco to Atlanta with a transfer in Denver. But then everything went wrong.

When I arrive at San Francisco airport on Saturday morning I find myself having trouble with the check-in machine. It refuses my passport and Miles&More card but ends up accepting my reservation number. Yes, I’m an adult, no I’m not travelling with an infant on my lap. One of my flights seems to be overbooked. No, I’m not interested in taking a different flight in exchange for a $200 voucher. I want an extra suitcase and pay for it. Then, the machine tells me to seek assistance by an agent. When I ask airline staff, they send my all the way across the checkin area to the agent checkin. There, I have to check in with the machine again (I haven’t changed my mind about the voucher); it wants me to pay for the additional suitcase again. Finally, an agent sees me, checks in my two suitcases and I end up with my tickets. What was so difficult in the first place? No idea. But this cost me enough time to have to hurry to my gate. Through the body scanner, no liquids, shoes off… same procedure as every time.

I catch the first flight, arrive in Denver and spend 2 out of my 3 hours having lunch and ice cream. I walk to my gate, double and triple check that I’m at the right place, and start my computer to send some comments on a dissertation to the friend who wrote it. from afar, I see a colleague from Hamburg talk to the agents and walk away and assume he just wanted to know if there’s enough time to grab some food.

When I want to board the plane, the ticket scanner refuses my ticket. I’m not on the list. Don’t worry, the lady reassures me. She takes my ticket (which clearly states my flight info) and checks me in manually. I’m lucky and get in a front row seat with lots of leg room. I nap through most of the flight. Then I hear the flight attendant announcing that we’re approaching Moline. Wait, what? Maybe she accidentally said the wrong name. Then, “Welcome to Moline.” Maybe the Atlanta airport has a name? I get off the plane, look at the clock, it’s 2 hours off my planned arrival time. A look at the arrivals screen outside security announces a flight from Atlanta arriving soon. The girl who sat next to me on the flight walks by with her parents (who picked her up) and the following dialogue unfolds

“Excuse me… where are we?”
“Moline, which state?”

I don’t even know where Illinois is, so they tell me we’re 2 hours away from Chicago. I thank them (they wish me luck), freak out for a minute, then I head back to the gate to take care of my situation. The flight crew tells me I need to see an agent. The policeman (who followed me when I went back past security.. oops) kindly arranges a meeting for me.

The flight agent arranges flights for me in the morning (there’s a direct flight but I have to be on the same airline so I fly via Chicago) and a hotel for the night. I also get two breakfast vouchers for the airports. Turns out I don’t have to pay for this mess. Also, I’m told that my suitcases are already in Atlanta.

At the hotel (in Iowa), I shower, read and reply to some messages, and go to bed for a meagre 4 hours of sleep (possibly less, my body was still in the California timezone so I wasn’t very tired around midnight). At 4:30, I take the shuttle to the airport, at 6 I fly to Chicago.

My transfer time is quite short so I don’t waste too much time waiting. We board the plane (I get Economy Plus seating – yay!), and are then told to unboard again because something is wrong with the plane which needs to be fixed. Instead of the promised 2 minutes, we wait for 20 before we get back on the plane. I’m super tired and pass out before the plane takes off. When I wake up again, we’re already half way across the US.

In Atlanta, I go to the missing luggage counter, pick up my two suitcases and leave the airport within less than 30 minutes.

All this turned out pretty okay for me. I was 14 hours late (not bad considering the magnitude of that mess) and only missed 2 sessions of the conference. I also got to add two states to my visited states list (I once decided they count if I was outside the airport/car). However, I still don’t fully understand how all that could happen.

  • Why was there no big announcement for the gate change? I’m pretty sure I was alert enough to not miss that, and the screen clearly said Atlanta when I sat down.
  • Why didn’t they think to check if it’s the right flight if I’m not on the list and they know there was a gate change?
  • Why was I able to get on a flight I wasn’t supposed to be on?
  • How come they didn’t ask for me on the other flight? I’ve heard announcements asking for missing passengers very often, but my colleagues didn’t hear anything while they were waiting.
  • Why was my luggage able to travel to Atlanta when I wasn’t on the plane?

There’s a lot of security measures at the airport. After the two bodyscans I was put through, I got pat-downs on my ankle and the back pocket of my pants because they lit up. I had to take of my shoes. I wasn’t permitted to take liquids through security. But my luggage flew without me and I was able to board the wrong flight.
So much for all the safety measures.