Chimeric Dream

My multi-faceted reverie

Archive for July, 2011

Warrior Disappointment

So after paying $50 (each), waiting more than six months, and driving 50 miles, Becca and I arrived at the location of the Warrior Dash this afternoon. Nick and Emily were there as well, as was my friend Jacob from the Swingsters.

However, the Dash was canceled… at least all of the heats after 1:30pm were canceled. This included all of our heats. Granted, they canceled the last few waves because the temperature was so high, which is a valid reason (safety first, after all). But that doesn’t change the fact that I spent so much time and energy looking forward to this only to be let down at the last minute.

So after looking forward to this for months, we got a t-shirt and a promise of a refund.

I’m really disappointed right now. I know Becca is as well, and I’m sure that Nick and Emily are right there with us, and the 2,000 other people who didn’t get to run today.

It sucks.

Creating a Git feature branch after the fact

Yesterday, I posted on how to contribute to a project that uses Git. But what if you forgot the last step in that process? What if you started working, making multiple commits, and never created a feature branch for your code? In that case, you would have been committing to the master branch of the repository: a big no-no.

However, all is not lost! You can go back in time, create your feature branch, and move all of your commits over to it from the master branch with only a few commands.


The first two pieces of information you will need are the SHA hashes (basically the commit IDs) for the last commit you made and the last commit before you want your feature branch to start. Note that the earlier commit should be the commit just before the first one of your new branch.

With those two hashes in hand, here are the git commands to move all of your commits over to a new feature branch.

git branch branchname sha_of_starting_commit
git checkout branchname
git cherry-pick sha_of_starting_commit...sha_of_ending_commit
git checkout master
git reset --hard sha_of_starting_commit
git checkout branchname

Here is a breakdown of what’s going on above.

git branch branchname sha_of_starting_commit
git checkout branchname

First, we create a new feature branch at the point just before we started making all of our commits. Then switch to it.

git cherry-pick sha_of_starting_commit...sha_of_ending_commit

Here is where the magic happens. In the feature branch, we want to copy all of the commits starting just before our first one (i.e. the point we branched from) through the most recent commit. The “…” here is important! It tells Git to include—in order—all of the commits between the two hashes you specified. This is especially handy if you have made dozens (or hundreds, but I really hope you caught yourself before then) of commits before realizing you needed to branch.

git checkout master
git reset --hard sha_of_starting_commit
git checkout branchname

The last batch of commands switch you back to the master branch, reset the code there to the point from which you branched, and re-checkout your feature branch so that you can continue your work.

That’s it! With 6 lines of Git commands and a little initial legwork to look up two SHA hashes, you can easily create a feature branch after the fact.


Have you ever done this? Let me know your horror stories in the comments. Or, if you have suggestions, I’ll take those too!

Working on someone else’s application

In the first of what will probably be many posts that are useful for few beyond myself, here is a bit of information that has come in handy more than once for me. If it helps someone else out there, awesome.

Before I begin, I want to state that I am not, by any stretch of the imagination, an expert on Symfony or Git. In fact, I am barely a beginner. That said, I have a really good team at work who I can go to with dumb questions whenever I get stuck. Here are a few useful things they have given me for working on someone else’s code.


Note: These instructions assume that you have already set up your local git repository and have forked the code you want to work on. If you haven’t, there are a number of resources out there for setting up a new Git repository that go into more detail and are better than what I could write.


First things first: you need to update your Git repository to the latest version. The following line assumes that the master repository maintained by the project lead is called “upstream”. If yours is different, change it accordingly.

git pull upstream master

Next, check the commit logs for any important notes that may affect what you are going to be working on. You can either use git log for this, or use a program such as GitX on Mac or gitextensions on Windows. (Side note: I have used GitX a bit, and it is what other devs on my team recommend; I have not used gitextensions.)

The third step in this process is to check for any sub-modules being used by the project. Many smaller projects will not have sub-modules, but if yours does, the following two commands will update the list of sub-modules in the .gitmodules file and update them automagically:

git submodule init
git submodule update

The final step in the setup process only applies if you are working on a Symfony application. As I stated before, I am not a Symfony expert, so check the documentation for your project before running the following command. I am not responsible if your stuff breaks! This command tells Symfony to rebuild the database and populate it with any data that should be there upon start. This is a destructive process, but sets up the database so that it is in its “new” state for development.

php symfony doctrine:build --all --and-load

Now you’re ready to begin development on your feature branch! You did create a feature branch, right? If you didn’t, here’s how:

git checkout -b branchname

The above command creates a branch called “branchname” and switches to it. Now you can start coding!


What did you think? I realize that these posts will most likely help me more than anyone else, but I am always interested in feedback. Did I get something horribly wrong above? Do you have a different or better way of doing it? Let me know in the comments.

Now I’m afraid of photocopiers…

I’m not really afraid of copiers, of course, but after seeing this I started to wonder how many people photocopy personal documents in places like Office Depot, Office Max, and the like? This goes far beyond companies copying business documents. Since the news cast was from a year ago, hopefully companies have started taking measures to prevent this sort of thing happening in the future.

Just insane how easy it is to steal someone’s identity.

Thanks to my Dad for sending this to me.

About Bill: runner

I suppose I’ll start with this “about me” post, since I have talked more about running on this blog than most other topics over the past several months.

I started running in January 2011, because I was tired of being out of shape and overweight. I tried lots of things, from a regular (3/week) workout (designed for me by a friend who is a physical trainer) to simply “hoping” the weight would come off (I’ll call that “faith-based healing”). None of it worked. Then, late last year, I saw this video, and it inspired me to try something new: running.

Running is hard for me. It hurts, and it really isn’t fun… not yet at least. I keep having brief moments where I think I might start enjoying myself, but not yet. Soon, I hope, that will change.

In the meantime, as of this writing, I have lost over 20 lbs, and competed in three 5k races, two 10k, one half-marathon, and run almost 150 miles total. For someone who barely considers themselves a runner, I’m doing alright.

In 2012, I have big plans for my running. I will compete in a half-ironman and a marathon… and I plan to enjoy both.

Hero for a day

This will be a nice short post. Today in my Environmental Conservation class (which is not nearly as interesting as you might think… zzzzzzz), our teacher started discussing the final exam next week. Here’s basically how it went down:

Teach: The final exam will consist of 9 or 10 short essay questions. You’ll pick 6 to answer with a few paragraphs each. The lecture notes are all online for you to study.
Random Student #1: Will we be able to print the lecture notes to use during the exam?
Teach: No. It will be closed-book and closed-note.
Random Student #2: Should we bring a bluebook*?
Teach: ….. Wow. Until you brought up the bluebook, I hadn’t realized just how much I was going to have to grade. I don’t want to do that much. I’m making it a take-home exam.
Class: (Cheers wildly)

*In case you don’t know, a bluebook is essentially a small stack (10-15 pages) of bound college-ruled paper. It is used in a lot of classes for final exams for writing in-class essays.

So there you have it. Random Student #2, you are my hero for today!

Going for #2

As of today, I am officially signed up to run in my second half-marathon. My first one was last week, and after last night’s Do Life 5k in Kansas City, I felt inspired to do it again. I haven’t quite figured out what’s wrong with me just yet, but lab tests are pending.

The race I will be running in is the Kansas City Marathon. The event is a fund raiser for the Leukemia & Lymphoma Society, so it’s a great cause. If you want to contribute to my fundraising, see the link below. Something else really exciting about this race is the fact that Becca will be running! She won’t be doing the half-marathon, but she’ll be rocking the 5k.

If you’re interested in donating to our team, feel free to contribute at our donation page here. If you can’t or don’t want to, that’s cool too. If you want to come watch us race, we’d love you for it (unless you want to run with us, which we’d like more ;-p ).

If you are interested in running the race with me, here’s my training schedule. Feel free to follow along and, if you want to join me, copy the training plan to your calendar. I have a couple of customizations built into the plan, so if you want the original, you can find it on Hal Higdon’s website.

Do Life 5k: Kansas City edition

Tonight was the Kansas City leg of the official Do Life whirlwind tour through the US, and it was awesome.

For those who don’t know, Ben Davis is the guy who inspired me to finally get off my ass and start running. Ben has started the “Do Life” movement, which is aimed at making changes in your life to make your life better. It’s a pretty cool idea, and I suggest subscribing to Ben’s blog. You won’t regret it.

Ben Davis and me (Bill Parrott) at the "Do Life" 5k in Kansas City, 7/13/11

I didn’t realize how tall Ben was until I looked back at my pictures. Or am I just that short?

Tonight’s run was a pretty casual affair. There were about 35-40 (ish) people who showed up to the Liberty Memorial in downtown Kansas City for the 5k. Even in that small group, I saw the full spectrum of runners: there were a few who looked like they were completely new to it, those who (like me) have been doing it for a few months to a few years, and there were a few who looked like they could have been professional runners.

People have started showing up to the "Do Life" 5k in Kansas City, 7/13/11

Before the run, we stood around just chatting.

I’m still pretty sore from my race last week, so after the first mile, I took it pretty easy. I walked quite a bit and chatted with a woman who also started running this year. I think that was the whole point of tonight’s gathering: just meet with other people who have similar stories (I lost track of how many people I met who have only been running for a few months) and talk, listen, and just generally have a good time.

After the run, we car pooled down to the Chipotle in the Power & Light district and hung out for a couple hours. The food was good (it’s Chipotle… hard to go too wrong), the conversation was awesome, and it was just a good time overall.

I’m really glad that I got to do this, more glad that Ben has shared all that he has through his blog, even more glad that he has served as an inspiration to so many, and infinitely more glad that I have finally started taking control of my life to affect positive change.

This was a good day, and I can’t wait for next year’s tour!

It’s interesting…

I just got back from my first run since the half-marathon, and it was a nice leisurely 2 (ish) miles. A year ago, 2 miles would have felt like a marathon, and yet here I am calling a 2 mile run “leisurely”. What the hell happened?

As I said, though, the run was good. Orion and I jogged down the road to the pet store. Since I want to build up his endurance to run with me, I need some way to carry his collapsible water bowl and a water bottle. I picked up a nice looking pair of “saddlebags” (for lack of a better description) for him, and it even works with his harness! This is always a concern because the leash attaches to the harness between his shoulder blades, and many accessories cover this area up. The bag is blue, which paired with his red harness makes him the perfect KU dog! I’ll get pictures next time I put it on him.

The most interesting thing about the run is the fact that six months ago, Orion would pull me through the entirety of our walks. He had far more stamina than I did. Today, he pulled me for the first half-mile or so, and after that he flopped in the shade every chance he got. Granted, it was pretty warm (already up to 90 at 10am), but it’s an odd feeling when your dog has less energy and stamina than you.

Now I get to ride my bike a couple miles for a couple errands and to have it looked at by the guys at Cycle Works. They like to have people bring new bikes in after a month or so to make sure everything is working as it should.

I did it!

Yesterday — well, I guess it’s two days ago now — I ran my first ever half-marathon! It was truly an amazing experience, although I wasn’t so excited during the race.

Everything started fairly well. My parents, Becca, Nick, and Emily all made the drive to Brownville, NE to see me run (have I mentioned that I have amazing family and friends?). Becca, Nick, Emily, and I all drove up to Omaha on Saturday night so we could visit the zoo on Sunday, which I may or may not post about later this week. Monday morning, race morning, we woke up at 5:00 am so that I could be at the packet pickup when it opened at 6:00 am. Did I mention my friends are amazing? Not many people would get up at 5:00 on a holiday just to drive to another city and sit for a few hours.

At packet pickup, Emily decided she wanted to run in the 10k race, so she registered as well. After that, we stretched and waited for the race to start. More people showed up, and at 7:00 am, we were off!

Emily and I ran together for the entirety of the first 3.1 miles. That was the point at which she turned around for the 10k loop. That was also not long before my troubles really started. At mile 4, my left calf cramped hard, and I started to worry. A few hundred yards later, a volunteer gave me a banana (he’d seen me cramp and was ready for me). At mile 5, I came up on the next aid station and asked if they had any ibuprofen or some other pain reliever… they didn’t. But they sent someone ahead to the turnaround for the half-marathon to check.

At 5.5 miles, my calf was down to a dull throb, and the guy who drove ahead came back to meet me with water and medicine. Shortly after, I came to the turnaround. 6.5 miles and 1:28 in, and I was running the risk of not making either of my time goals. I knew I’d need to push past the pain in my calf if I wanted to finish in under 3:00.

For the next few miles, I walked more than I ran, and my frustration continued to grow as my leg didn’t show any signs of feeling better. More than once I tried to run, only to have the cramp flare up after a few hundred feet. I got angry, upset, and disappointed. But I also strengthened my resolve. More than once a song came up in my playlist that made me think of the people waiting for me at the finish line, and more than once I imagined seeing a specific one of them when I crossed.

Determined to finish, I kept pushing through the pain and frustration. By the time I got to the last aid station, I had 1.3 (ish) miles to go, I had been running for nearly 3 hours, and I was completely exhausted. I had less than 15 minutes to run the last 1.3 miles if I wanted to finish in under 3:00:00, and my typical average pace is 12:30-13:00/mile… not good enough. That was when I asked myself the hard question: “Can I run 1.3 miles in 14:00?” My answer to myself, with as much anger and resolve as optimism (and with apologies to my mother), was “Fuck yes.”

I pushed myself as hard as I could over the last leg of the race, and as I arrived back in the town of Brownville, I saw people lining the street getting ready for the parade. As I came up on where the finish line should be, I discovered something quite discouraging: they had taken it down. Few things match the feeling of seeing that you don’t even have a finish line to cross after that distance… until you see that your mother and your fiancee are standing in the middle of the street, a strip of bathroom tissue stretched between them, screaming their fool heads off for you.

As I broke through that finish line, it could have been the Boston Marathon. And when I looked down at my GPS to see that I crossed the line in 2:58:47, I realized that I actually managed to finish my first half-marathon in under my goal time of 3 hours. Sure, it’s not a fast time (not by a long shot), but I had just run 13.1 miles — I wasn’t about to be picky.

Today, the day after the race, I could barely stand or walk. My left calf is killing me, and both my legs’ quadriceps and hamstrings are making me want to lay down and die. But I have to admit it was worth it. I managed to keep a 13:35 minute pace for more than 13 miles, something I would never have imagined I would be able to do. And the best part of all of it was having some of the people who matter most to me there to witness it.

So that’s it. I can now say that I have run in a half-marathon, and I know that next time my time will be faster. But what really matters is that there will be a next time, and a time after that, and a marathon after that, and eventually, an Ironman. And after that… who knows?