|
|
r u n b l o g |
Run around the Square, 2008
(23 Aug 2008 at 11:59) |
ACHIEVEMENT UNLOCKED Official 5K time under 20:00
Phew. This race was a lot hillier (meaning up-hillier) than I thought it was going to be, but I did it, finishing in 19m54s, which is a pace of 6m24.3s per mile. Lots of people were telling me it should be easy for me to break 20 minutes, but it wasn't. I think I'm just not built for middle-distance.
Mistakes: Well, I didn't prepare for this as well as the marathon. I didn't eat as well the last couple of weeks, and I ate way too much pasta last night (anyway carbo-loading doesn't really do anything for this kind of race; it should have been about eating something that wouldn't upset my stomach) and drank too much coffee and not enough water in the morning. The biggest mistake was probably rushing off at the beginning of the race with the front of the pack. These people were running like a 5m15s/mile pace, which is way faster than I need to crack 20 minutes, and that tired me out. After finishing the first mile in 5m41s, the race started to get uphill. I was surprised because I naively thought that since it started up in Regent Square and ended down in the park, it would be all downhill. So on mile 2 I was feeling really crappy, like I needed to give up. (Thinking about giving up is a sure-fire way to crapify your race. Every time it happens you might as well knock 10 seconds off the final time.) And then I started feeling like I should conserve my energy because there was this relentless uphill, and I didn't want to die later. (Recall I was thinking that my first mile was stupidly fast, by this point already.) That second mile was a pace of 7m14s, which is pants. The third mistake is that the third mile is almost all downhill, especially the tail end, and I should have flat-out booked it in that section. Instead I was still worried about conserving my energy. Really all of these big mistakes can be traced back to not knowing the course before running it. Dumb. At least I won't have that problem in the Great Race. Of course all of that stuff accounts for maybe 10–15 seconds at most, so no big deal. I'd certainly be kicking myself more if I had come in just over 20 instead of just under.
Correct: Red Laces are still rocking it, but that was sort of an obvious choice because this race is mostly on gravel and not long so feet/knee shock is not an issue. The parts that were on Pittsburgh/Swissvale's brick and cobblestone roads I wisely ran up on the sidewalk. The sidewalk is treacherous too, but not as bad as the stones. I wore only shorts and shoes, GPS watch and car key. No water stops. The biggest victory was a mental one. Even though I was mentally giving up a few times, even in essence composing the alternative version of this blog post where I am talking mostly about mistakes and excuses for why I didn't meet my goal, in the last year or so I've learned a super important race principle. This will sound obvious. I often go into these races thinking, okay Tom, today is the day and this race I am going to really push myself and try to do X (where X is e.g. break 20 minutes). Then some distance into the race I am feeling garbagey and this makes me think, drat, today is not the day. I'm not up to it today. I made some kind of mistake. And the principle is just: The reason I feel garbagey is that I am pushing hard, and that's what it feels like, and to try hard is to feel this way, no matter the day. (This incidentally is how I know I didn't push hard enough in the marathon, which is that I didn't feel that way until mile 25 or something at which point it was basically over anyway.) So the success is the several times I felt like I should slow down because I'm not going to make my goal anyway, not slowing down, or not slowing down as much as I'm prone to at least. Also then there was beer and friends at the end and that was nice.
Next goal is to break 40 minutes in the Pittsburgh Great Race, which is twice the distance, but I think the course is easier. I am more serious about that, but that just means the personal stakes are higher. Think how many Gamer Points I'll have before year's end?? |
|
r u n b l o g |
Marathon managed!
(03 Aug 2008 at 15:56) |
Oh, red laces! You did not let me down.
So, this morning I got up at 4:30, made coffee, and biked 3 miles to downtown on a funny folding bike (courtesy Jake) to run the San Francisco marathon. This was my first marathon. I've been "training" for it for about 2 months, which for me means running a hard 4 hilly miles every day, or a semi-gentle longer (10–15-ish) one on the weekend. I was also trying to watch my calorie intake, which is much harder than running every day, it turns out. Anyway training is boring and over. Let's not talk about that. I was a little worried about running in this race because I had never run that far before (the previous farthest was a very painful 22 miles with a number of pain-increasing circumstances), and I was worried that it would be really physically hard (particulary as respects "The Wall"). I was even more worried about injury, particularly to my right knee which has a chronic pain issue at distance and had been acting up this past week. (I think that I get these pains psychosomatically to some degree when I know I'm about to do something intense, like I actually think my body is inventing pain to try to discourage me from doing it because it usually goes away after I tell it Shut Up and run for a few miles.) Even though I did a half-marathon in like 1:40 or so, and I'm much better than I was then, I had my expectations set pretty low (it turns out, stupidly low) for this race: I said to myself and those who asked that I would be happy with 3h45m and disappointed if I didn't come in under 4 hours. My sights were stupidly low because I finished in 3h23m04s, which is approximately the 90–95th percentile (depending who you count)! And I definitely could have done better. Here's what happened. I was a little late to the start line because the biking was slower than I thought and the chaining of the bike was a more complex knotting and folding problem than I thought, and the lines for the porto-potties were a lot longer and slower than I thought, so I ended up starting with the 4h–4h15m wave, which is even a slower pace than I thought I wanted, and is definitely a lot slower than I now know I want. And that's fine because it's actually pretty fun and encouraging to be passing people the whole time, and you get better cheering when you do so, as long as there is enough room to be passing people safely and non-obnoxiously. And so I was carefully running a 7:55/mi pace which felt sluggish but I thought it was the right thing because I didn't want to feel shitty later when I got to the last 10 miles. Then we got to the Golden Gate Bridge. This is almost certainly the most beautiful part of the course. They blocked off two traffic lanes for us; one out and one back. But the lanes are pretty narrow and there was no out-of-band sidewalk option, so I kept getting stuck behind some people who were running side-by-side and I couldn't get around them, not even if I was signaling and dashing to the other side of the lane, because over there were some other more people bunched up. I can't even blame them because they were all moseying along at the same pace that was appropriate for the wave they started in because they are more punctual than me. But this was really fucking annoying because 7:55 felt slow already and 9:15 or whatever was really slow. So when I finally finished this bridge part, which is about mile 11, and I was not feeling basically any fatigue and I was feeling this annoyance of not having been able to go as fast as I had wanted, and finally there was room to run around people, I really opened it up and that felt great. My knee was hurting and then later my foot, but I ignored it and it eventually went away. I ran the rest of the race at what I would guess was an average pace of 7:00 or so. I could have pushed harder there, but it didn't feel sluggish at least and I was still a bit worried about body changes at mile 20ish, so I was content to continue and get a much better time than I had thought. I'm honestly a little disappointed that it wasn't harder. It didn't feel bad or hard at all until mile 22, even, and then I only had to check my watch to push a little to keep up the 7:00 pace. Only at mile 24.5 did I turn to someone else and go, "This sucks!" and at that point you can hardly complain. So I am certainly happy with my time and I'm definitely happy with being able to run continuously (ok, with one bathroom break) for that long although I feel a bit like a chump for underestimating myself. If I had just pushed a smidge harder from the beginning I could have almost certainly qualified for Boston (3h10m), which I had previously thought was like a life-long goal of mine but now I think I should just do the next time I make marathon.
Here are some things that worked out well: The bike was a good way to get down there. At 5:20 there is nobody on the road. I didn't have to deal with any parking nonsense. Arriving in SF yesterday with EDT jet lag made it much easier to get up at 4:30. I "carbo loaded" on Friday and Saturday and this seems to have worked? On Saturday with dinner I had 3 beers of light strength. This is a personal racing trick. They contain carbs too, and make it easier to relax and get a good night's sleep, as long as you don't get dehydrated. I think I did the right thing drinking at the water stations and having power-gel at mile 18 because I didn't have any wall problems that I could detect. Red Laces worked out great. Thank you blog-readers for putting me at ease about this choice. I was scared at mile 8 when the knee pain came, but it went away. I also have this chronic under-nail blister that I think is going to result in one of my toenails falling off (gross) but I don't think that is a shoe issue but a weird toe angles issue. The clothes were right. This was a concern for me because San Francisco has such weirdo temperatures and micro-climates. I wore shorts, a t-shirt, a long-sleeve shirt, and a hat. In the early morning and on the bridge the long-sleeves were good. Then I ditched that layer and ran the next 8 miles with the t-shirt, then I ditched the t-shirt and ran the rest in just the shorts. I held onto the hat, because it is light and it's something to wipe up sweat with. Not carrying stuff (including clothes on your body) does make a noticeable difference. I could have ditched earlier, but I'm glad I had the long sleeves for the bridge. I ran hard on the downhills. This is a good place to make up time, and it is especially fun because you get good cheers when you are conspicuously pushing hard. I think the concern is acute injury, but I have a lot of practice from Pittsburgh hills.
Here are some mistakes: As mentioned, the worst thing was being super wrong about the pace I'd be able to keep up. Embarrassing. Even if I had known the actual time to qualify for Boston (I thought it was 3h30m) I could have pushed harder in the second half and probably gotten it, once I realized. Well, there are lots of marathons. I will try again. In training, I should have started calorie restriction later, since I was at my minimum weight last weekend, not this one. And that process is not fun. I wrote a crazy-long and boring blog post about it. Seriously, a lot of people have been telling me that they want to hear "all about it", etc., so I hope those people are happy, and regular readers who like to read about interesting things and projects are simply not reading this far. I knew that I was planning on ditching both shirts, so I definitely should have left a backup shirt with the bike. That was dumb. It is cold when you are not running. They had these mylar blankets that they were giving out as some kind of weird robot/superhero swag, so what I did was to tie that around my naked upper body and then punch holes through it for my arms, which looked absolutely ridiculous. Biking down was a great warmup, but the bike trip back uphill in the cold and looking ridiculous after running that far actually rather sucked. It was a little disturbing how few comments/looks I got, which I guess speaks to San Francisco's level of weird-tolerance in general.
Finally, some observations: San Francisco is famously hilly, of course (though not as hilly as Pittsburgh, in my opinion). The marathon route is amusingly flat, however. The biggest hill is the one going up to the Golden Gate Bridge, which isn't really that bad. Like when I was running in Portland, I definitely noticed the locals (at least I assume they were predominantly locals) suffering substantially on hills. I just thought this was funny in Portland, but I was disappointed with the San Franciscans, who I feel should be representin' the local terrain. The Pittsburgh marathon, which is coming back in 2009 and does not go out of its way to be flat despite the naturally hilly terrain, will be interesting for this reason. In my opinion we should actually craft the course to be maximally brutal, which, coupled with Pittsburgh's unpredictable weather and poor air quality, could help us get a reputation as one of the most abusive US marathons. Because we ought to excel along at least one dimension, right? I like trains a lot. It is weird and I don't understand why I saw so many people running on the sidewalk in the opposite direction of the marathon. What are they doing? It is weird and scary when I see someone running like this: Scary not just because I don't have my regular drawing tools with me and so I have to draw this awkward animation on this crappy mac trackpad, but scary because I think if I ran 400m with this kicking the heels out to the side style—let alone 26.2 miles!—I would ruin my knees forever. I saw at least 4 women running this way. I think that they have bad friends.
OK: I apologize for this post. Do not unsubscribe. I promise the next will either be short, or be about an interesting project, or written in an amusing style. Right now I am too wiped out to do any of those. |
|
p e r s o n a l |
Success!
(22 Jan 2008 at 13:00) |
ACHIEVEMENT UNLOCKED 5GP – Ph.D. (expert mode)
Well, I did it! There were lots of people that came (thanks!) and it went pretty well given the little amount of sleep. If you want to see what it's all about and for some reason didn't want to read the 396 page dissertation, you can take a look at slides from my talk: defense.swf. You need a newish Flash player to view it properly, or otherwise you'll know since all you'll see are monsters and rainbows.
I still have to do some revisions for my dissertation and then there is paper and signature shuffling and margin measuring, but basically this is it. Re: grad school, put a fork in it. |
|
p e r s o n a l |
My latex masterpiece is absurd and I do suffer
(14 Dec 2007 at 00:06) |
I have submitted my dissertation to my advisors.
You can read it, if you want, but you might want to wait for the forthcoming annotated edition which has illustrations and footnotes and things like that, especially if you don't know anything about type theory.
Now, video games and beer. |
|
p e r s o n a l |
Harris Grill catches fire
(12 Aug 2007 at 00:49) |
1200×800 version I used to think that I had some kind of special connection to Harris Grill because I ordered the very last lentil burger that they ever served. I've been going there ever since moving to Shadyside six years ago (then it was originally under a different owner and I like the second incarnation better, although they should not have discontinued the lentil burger!). But now I have a new special connection: I was eating there when it burned down this evening. Cortney and I were getting dinner and beer to celebrate her returning safely from DC and me recovering the 7th Pure Heart in Super Paper Mario, and we were just finishing up our beers like so many other pleasant trips to Harris, when one of the staffers came upstairs and said, "We have to evacuate! The side of the building is on fire!" I've been in buildings before when they were "on fire" so I didn't think this was a huge deal, but on the way down the stairs I could feel the heat and see the flames through the ice brick glass window... only a few feet from us. Clearly scare quotes were not warranted. Everyone got out fine before the fire really started to get out of control and shooting flaming debris and stuff (props to the Harris Staff for a safe and efficient exit). Right under the side of the building that was on fire is the parking lot, so a bunch of people (somewhat crazily, in my opinion) were getting in their cars and getting them the hell out of there, hitting each other a little bit, as people were evacuating and other people in the various bars in that area were emerging with beer in hand to take a gander. I thought it took a long time for the fire department to arrive, especially since there's a fire station only about two blocks away. But a lot of fire trucks and fire fighters did come. We were watching the licking flames crawl up the side of the building and devour its wooden (!) fire escape, but then there was some kind of hissing sound and someone declared that it was a gas leak, which even though I did not particularly believe this tattooed nose-pierced authority, I still thought it was probably safer to not be standing merely on the other side of the street as if two empty lanes could protect us from an explosion, so we moved a bit further out until the FD got the fire under control. I grabbed my camera from my house and took the above shot of firepeople climing the fireladder. (Click for a much larger version.) You can see the damaged ice brick window I was talking about; inside that burned door where the oxygen tank guy is, is the second floor where we were seated. The Great Divide Hercules Double IPA is a good beer, by the way. I didn't get any pictures of the licking flames but if there is some site where you can search people's shitty cell phone camera pictures, just search that because there were several hundred bargoers around who couldn't stop triggering their fake shutter noises.
Of course it's too soon to know if they'll be able to reopen the restaurant any time soon, but a 3-alarm fire is pretty serious, so Shadyside will probably have to (again) live without one of its gems for a while. Sorry to see you go, Harris! |
|
p e r s o n a l |
ICFP trip, contest report, race, etc.
(23 Sep 2006 at 16:22) |
The thing that chewed up all my time was my trip to ICFP 2006. For it I prepared and delivered three talks. The first two were in ML Workshop and they were called ML Grid Programming with ConCert [paper] and A Separate Compilation Extension to Standard ML [paper]. You need the Flash 8 player or later to view these, so you might need to upgrade. These are kinda straight-up research stuff, and also perhaps less exciting than usual because I was saving all my vim for my third talk. These talks went well but nothing particularly special.
All through the conference I had the odd but cool experience of being recognized by people who know my name from research or fonts or music or games or whatever. I guess these people probably see my blog so thanks! I'm sorry for not having much time to hang out more...
The third talk was the ICFP Programming Contest, which I spent weeks preparing for. The ICFP Programming Contest is a yearly open programming contest that the academic conference organizes; we organized this 9th incarnation. The contest itself, which ran July 21–24, was a huge success and the most ambitious ever in terms of its organization. You can check out the slides from the talk (again, with Flash 8 or later) but much better would be to watch the presentation video (130Mb Quicktime) that Malcolm Wallace shot. If you don't want to download 130Mb (for some reason it refuses to stream) you can check out the almost unwatchably low quality google video version. But really, go with the Quicktime. Also it's like an hour long so if you wanna fast forward to the end, my feelings won't be hurt. Isn't it a little eerie how, if you are wearing matching "Cult of the Bound Variable" logo polo shirts and conference badge and the same glasses and haircut, one can look so similar to his advisor?
That's why I usually prefer to wear brighter orange shirts in group photos because like nobody has one of those.
The conference itself was really fun. I had a good time at the talks that I was able to make it to, and a much better time talking with all the smart people—some old friends—that attended over beers and hippie west coast food. There are a lot of great breweries in Portland, my favorite of which was probably Bridgeport. I can't believe that I somehow forgot that one of my favorite American breweries, Rogue, is in Portland. I also missed out on Powell's outrageously enormous book store, so I will have to go back some day with more free time.
I did get a chance to wake up bright and early and run in the Portland Race for the Cure, which they claim to be the largest West Coast race "event" (that means that when they say 46,000 participants they are talking about the Run and Walk for the Cure and Row for the Cure and Sleep In for the Cure), but it was quite fun and a nice way to see a new city. Also, as respects my last post, I felt a little bit good about the fact that I witnessed the very front of the pack (5–10 guys) go the wrong way and have to be turned around. Hah! Those were like, pros. The only other thing to say about the race is that I think my Pittsburgh training has been helping on hills, because when we came to the one like 3.5% grade hill in the whole race I started to be a lot faster than the local like permanent press runners and that was a pretty nice feeling. There were no chip timers and I have no idea how I did really except for my own inaccurate stopwatching, so I guess I have to wait patiently for the hand-tabulated chads like in the old days.
What else? On the flight home I saw a major lightning storm from above, which was perhaps the coolest thing I've ever seen while flying. The whole sky was lighting up all over, and every once in a while a huge bolt would shoot down to the planet or occasionally upward. Highly recommended.
So now I am back in town and ready to spend some time on projects and relaxing and friends. My birthday is in four days, in fact, when I turn 27. I'm going to try to finish my entry to the KVR VST Plugin contest (prodding will help, Destroy FX fans), catch up on some reading and video games and sleep, and then ease into my thesis. Talk to you again soon! |
|
h i k e b l o g |
Ingenious Scientists Complete 34.6-mile ''Death March''
(28 Jun 2006 at 00:02) |
951×591 version Well, we did it: a 34.6 mile hike, from sun rise to sunset on a single day, across the entirety of the "brutal" Rachel Carson Trail. (results here—it took us about 14 hours, but it's not a race!) I put the word brutal in quotes because that is how the Rachel Carson Trail challenge web-site describes it, I guess to make it seem like more of a double-dog dare. You can see the route zoomed out above (or google earth it yourself) across the north side of the Allegheny river, with an embedded elevation profile. Here's a representative image:
So you can see it goes up and down, and in this particular case the people are all clumped up because of a series of very trecherous muddy descents and ascents that really amounted to short rock climbs with mud instead of rocks.
I wasn't having a rough time at all until about the 26th mile, when my feet and ankles were hurting really bad, just from the repeated stepping. (26 miles is something like 60,000 steps for each foot!) An ace bandage got me through it, but by the end my feet had never hurt so bad in my life. Fortunately I have recovered quickly (tomorrow I'm aiming to start running again) and even used that crippled time to put in a bunch of good work on the programming contest, which is coming up in three weeks! (!)
Somewhere out there someone has pictures of our group at every checkpoint, so you can do a 5-frame time laps photo to see us become more and more weary and enmuddened. Here's a picture of Cortney and I at the very end, though I think we were deliberately trying to look beleaguered the sentiment is not far off:
|
|
r u n b l o g |
Pimp my run
(12 Jun 2006 at 21:13) |
Today I got a new gadget (you can blame jaked) to aid my quest to run all over Pittsburgh. It's a Garmin "Forerunner" which is a GPS device, specialized for running, in an oversized pimp watch form factor. Seriously, I feel way bling'd out. But it doesn't get in the way and it gives me instantaneous pace and distance information and I can even put it in "ghost racer" mode where I run against an invisible otherworldly partner (perhaps derived from a previous performance, or perhaps extracted from the platonic dimension of perfectly steady incorporeal pace rabbits) like when trying to qualify for the Special Cup on Rainbow Road. Go go, ghost racer!
I'm still figuring out the best way to use the data I get from it. There is a shitty GTK app that comes with it, which would have been pretty sweet on Windows 95b, and which thinks that walking 1.0 miles home burns 287 calories. Right. Then there is a web-based app called "MotionBased" which I suppose fancies itself a sort of Flickr of running and biking. I think this could be pretty good, but a lot of stuff isn't implemented yet. I hereby share this run with you. My favorite way to visualize currently is to use the Google Earth export. I used it to generate the image above; you can click this W3C-approved semantic XML document (lol that it is just a list of lat/lon pairs inside a tag) for your own 3D world runner*: qdoba.kml.
* I was a little astounded that the first link I found for this classic uses my font "Action Jackson" in its self-promo!
So this run was 12.88 miles. At some point I was trying to make it a full half-marathon (only .22 miles short, actually) but I spotted a new Qdoba in my neighborhood and was hit with an insurmountable craving for guacamole and hot sauce. Much earlier than that I ran through Frick Park, which I would recommend except for the very uphill and sinuous path to the park itself from pretty much anywhere. I popped out of the woods in like Swissvale on the wrong side of I-376, but the GPS compass helped me get back without having to retrace my steps. Yay!
I think this will be helpful for the Rachel Carson trail challenge in two weeks. We hiked a small segment of it on Sunday as a practice (it's allegedly the hardest part: the "roller coaster" of steep uphills and downhills along the pipeline). It wasn't really that bad, but finding and following the trail can be rough at times, and we will have enough to worry about on the actual day than to look at 30-year old hand drawn topo maps to try to figure out where to go.
In other news, I was suddenly struck with the urge to work on Escape this weekend. Development has stalled for a while because most of the changes I want to make involve ripping out a bunch of more-or-less working code I've already written. So, I needed to like put some emotional distance between me and that before I start chopping, and time heals all wounds except for maybe necrotizing fasciitis. |
|
p e r s o n a l |
Do you know where your thesis proposal is?
(20 Feb 2006 at 09:44) |
I am proposing my thesis in less than an hour! Anyone awake and in town is welcome to come to Wean 4625 at 10:30am to watch.
You can also get the slides and follow along at home. Just page through them starting at like 10:35 and taking approximately 40 minutes. (The document is easier to understand without someone talking over the slides, but a lot longer...)
Wish me luck! Bye! |
|
p e r s o n a l |
OMG go steelers, pt. 2
(05 Feb 2006 at 16:01) |
XL It's an extra-large Superbowl! I don't normally get excited about sports, nor do many of the people I know, but cripes, when all of the people around you are united by this charming town pride, it is impossible to resist.
Some of my friends live out of the country and might not really understand what I'm talking about. The short story: The Superbowl is the largest sporting event in the US. Bigger than Olympic figure skating. People scream and beat each other up over it like the World Cup. Of course, it is ultimately pointless—nothing happens if your city wins, other than everybody goes rioting in the South Side or equivalent (which happens if you lose too, it's just like a happy riot instead of an angry riot). Here's the deal particularly this year: the Pittsburgh Steelers used to be a dominant team in the 1970s, winning four superbowls in that era. We haven't won since then. This year we won a series of upset games to win the league championships from last place, the first time this has ever happened (?). Pittsburgh, which is still sort of searching for its new identity after having grown out of the Iron smelting era, suddenly has something to be excited about again: Superbowl victory!! Moderately inappropriate or surprising Steelers/Pittsburgh pride sightings:- The city buses flash like61C Downtown via Oakland
Go steelers! - I saw on the news a sign in front of a church that said:THINGS TO DO:
1. GO TO CHURCH 2. PRAY FOR STEELERS - The car horn, which I have always maintained should be replaced with two sound effects: one that shouts "Emergency! Emergency!" and the other that shouts "I'm an asshole!" now has a new meaning: "OMG go steelers!!" Honking can be heard at any time in any part of the city.
- Everybody has these Steelers flags attached to their cars, so that the entire town is like a weird funeral procession that's not going anywhere in particular, but it is a bit like the traffic signals have correspondingly evaporated, and they do have police stationed around to cordon off particularly riotous areas of town
- Like speaking of which, we went down to the Strip District yesterday, which is Steelers merchandise city, and there are kids everywhere with football heads and an old man who could probably barely walk under the burden of all his buttons and jerseys, and a man playing the "Here we Go" song on his flute—flute!—and everyone is just walking in the streets or dancing in the rain like a national holiday
- Did I mention that the Superbowl itself is in Detroit, not even in Pittsburgh?
- Our zoo's baby elephant loves the Steelers (icon hint: the "terrible towel" is a piece of merchandise invented by Myron Cope, famousest radio announcer for the Steelers, which fans wave at games or like, out the windows of cars just in case you forgot that we're going to the superbowl, or is placed in the windows of jewelry stores and coffee shops and boutiques in Shadyside as a sort of insurance against the Steelers rioting mafia, who maybe will like smash your window or boycott your establishment if you do not openly declare your sports team alignment)
- If you throw a rock at a tank in Iraq your rock might be deflected by this terrible towel
- Tom posted about his blog on it! wtf?
|
|
|
|