Now let’s put in a little form field for entering the filter string. This is old news now, but HTML5 lets us use one-off form inputs for on-page actions without having to wrap them in a <form> tag, so let’s just stick this into our HTML above the table:
Now here’s where it gets fun. In jQuery, we’re going to watch for the keyup event on the input. If the input has a value (i.e. is not empty), we’ll do our filtering. If it is empty, we’ll just reveal all of the rows in the table again.
We probably want the filter to be case-insensitive, so we’ll make both the input string and our check of each row’s text all-lowercase with .toLowerCase().
Next we’ll step through each row of the table, check if our filter string is not present (.indexOf() == -1) in the .text() inside that row. If it’s not there, we’ll hide the row. Otherwise, we’ll show it. (This last bit is important because we want to start revealing previously hidden rows if the user deletes characters from the filter input.)
Yeah… that’s pretty much it. And since it’s all jQuery interacting with elements already present on the page, it’s lightning-fast.
The way this is built, you could conceivably have multiple filterable tables on one page, but only one filter input. The filter would automatically get applied to all filterable tables on the same page. There are various ways of changing this by modifying your selector.
I am deliberately only checking for <tr> tags inside the <tbody> tag to allow for a header row inside a <thead> tag that would not be subject to the filter. If you have a header row inside your <tbody> tag, it’s going to get filtered too! Probably not desirable.
You could play around with making the whole thing smoother with .slideUp() and .slideDown() instead of .hide() and .show() but that UX can get messy in a hurry.
Before we go any further, let me state that I have never studied economics, and I’ve only taken one intro-level philosophy class. The topics I’m bringing up here are steeped in both, and I know I’m out of my element.
Capitalism has, as a core principle, a belief that competition drives innovation and growth, which helps a society to thrive; whether its helping society to thrive is intentional or just a consequence is debatable. And in practice capitalism is just as susceptible to corruption as communism — both fail as a result of the boundless greed of the powerful. But for the moment let’s not dwell on the big picture… let’s just look at one example of how capitalism can be… well, stupid.
I live in Minneapolis, a large city of 425,000. Along with St. Paul (pop. 310,000) it is the core of a metro area of 3.6 million. Like all large cities, Minneapolis is divided into a number of distinct communities. The community I live in is called Longfellow, and combined with neighboring Nokomis, the immediate area has a population of around 65,000 people.
Unlike many other parts of the city, Longfellow-Nokomis has always resisted the heavy encroachment of large chain businesses. Of course we have a Target, a scattering of McDonald’s and Subway locations, etc. But for the most part, the businesses here are small and local.
In fact, in an area comprising about 13 square miles, home to 15% of the entire city’s population, there is only one Caribou Coffee, and until recently, zero Starbucks (not counting the one inside the Target… which is a capitalism story for another blog post). Of course we have dozens of local independent coffee houses, but only one each of the two big chains.
And they’re right across the street from each other.
How does it benefit the citizens of the community to have a Caribou and a Starbucks within sight of each other, when the vast majority of residents of the area don’t live within walking distance of either one? Who does a decision like this really serve? How does this help society to thrive?
What we’re looking at here is not a failure of capitalism in principle, but an example of how it fails in practice, as power is consolidated in the hands of a few greedy, powerful corporations.
I’m sure this is the point where a (21st century) Republican dutifully says, “But how can a corporation be greedy? Greed is a human emotion, and corporations are businesses, not people.” Oh right, corporations are only people when it comes to exercising their right to free speech. (And political money equals speech.) I’m sure few, if any, of the individuals within these corporations are ruthlessly greedy. But they don’t need to be. The system is built on a principle whose logical consequence is that increasing profits outweighs any other considerations. That could be defined as greed.
One could argue that Caribou and Starbucks have grown to that tipping point in capitalism where they are no longer focused on competition through innovation, but on stifling competition through consolidation of power. Nothing better exemplifies to me capitalism’s absurd failure than a business opening its first location in a large, heavily populated area within feet of its rival.
Sadly, I’m sure these corporations did extensive research and determined that the best location in Longfellow-Nokomis for a major chain coffee house was right at this spot, even if there was already another one right there. And I bet both will do booming business, because… honestly? Most of us just don’t question it.
This is my first foray into the blogging genre of “race reports”. Just like with so much of what I have done to get to this point, I haven’t researched how to write a race report, I haven’t read many of them, and I’m probably doing it wrong. But here I am, doing it nonetheless.
I know going in that this will be long, tedious, and probably meaningful only to me. Just like the marathon itself. But it’s important to have a goal and reach for it. I have two goals in this post: 1) to remember as many things about the marathon experience as I can, and 2) to express my love for Minneapolis and this amazing marathon, to maybe even just convince a reader or two to come here and discover the wonders of this place for themselves.
If this is already sounding like a big “tl;dr” to you (and I assure you, it will be), you can skip straight to Marathon Weekend or Race Day itself.
Where do I begin? In some ways the story of me running this marathon could very well be my life story. But, come on. Even I don’t want to read that. So let’s focus on one key detail.
I was a senior in high school. We were required to run a mile at the school track, for the Presidential Fitness Award or something. I had never run a mile in my life, and I had no interest in starting. But I had no choice.
P.E. was always a nightmare for me. I was not an athletic kid. I was scrawny and weak and basically a nerd. I was ridiculed by jocks and gym teachers alike. And the only thing I learned in P.E. was that I was not good enough to participate in athletics. Yet every Tuesday and Thursday morning I was forced to endure this torture for 50 minutes.
So, this mile run arrived. I dreaded it. But somehow I dragged my feeble ass around that track four times and finished a mile, the second-slowest kid in my class. I’ve always remembered my time as 11:30, but now that I think about it, I wonder if it was actually 13:30.
The time doesn’t matter though. What matters is I hated running, and I was fairly certain that I had just run a mile for the first and last time in my life. And for 19 years, that remained true.
June 1, 2011
I had gone from being a 5-foot-8, 115-pound pipsqueak in high school to a 5-foot-8, 175-pound sedentary 37-year-old. I knew something had to give. And somehow I had known for several years, it would happen when I was 37. My brother-in-law had been similarly sedentary and suddenly started running at 37. He lost a ton of weight and felt great. I wasn’t sure what would be the catalyst, but I just knew this was the year.
Then it clicked. I discovered Couch to 5K. I realized that I could learn to run, I just had to approach it right. And this was the way. It was fun! I started the program on June 1, 2011, and by September I was ready to run in a 5K race.
My wife started Couch to 5K the day after I did, and we would run on alternating days and swap stories of the things we had seen and how it felt to be out moving around and exploring our area. We ran that first 5K race together — which is to say we both ran in the race, but since our paces were different we didn’t actually stay together — and we’ve continued to mostly do races together, even if we only see each other at the start and finish.
And we were fortunate to live in south Minneapolis, near Lake Nokomis. Minneapolis has the #1 park system in the country, and a key part of that is the unparalleled network of paved bike and pedestrian trails, linking all of the lakes, rivers and major parks in the city. You can literally run for miles on paved nature trails, right in the middle of the city, with almost no street crossings. I really can’t imagine a better place to be a runner. (Even in the winter! The trails are usually cleared within a few hours of significant snowfall.)
Now I was a runner. I lost 20 pounds, gained strength and confidence, and even bought real running shorts and decent shoes! I started running more races and increasing my distance… 5 miles, 10K. After running in the TC 10K in October 2013, I decided to run 10 miles once, just to see if I could do it. I could! So in 2014 I signed up for Twin Cities in Motion’s “Summit Challenge”. That was a 5K in February (yes, a running race in February in Minnesota!), another in March, a half marathon on July 4, and a guaranteed spot in the TC 10 Mile in October. I was pumped! 2014 was going to be my biggest year of running yet! Then it happened. IT.
Iliotibial Band Syndrome
In April of 2014 I started to prepare for the half marathon that was coming up in July. But I increased my miles too quickly and on one 6-mile run I suddenly experienced a sharp pain on the outside of my left knee. A little research told me it was my IT band. I took a few days off, but then stupidly went out again and ran a couple of miles and promptly re-injured it. I could barely walk for a week. I ended up taking about three weeks off, and I realized there was no way I’d be able to get trained up for the half marathon in time, so I skipped it and ran in a 5 mile race in my hometown the next day instead.
I was able to get back on track later in the year, ran the TC 10 Mile, and even ended up doing a half marathon at Halloween after all, and I surprised myself by finishing in under 2 hours! (Barely. 1:59:05.)
But this wasn’t my last experience with IT band syndrome. (Cue ominous music.)
In November 2014 we moved. As much as we loved our neighborhood by Lake Nokomis, we wanted to be closer to the kids’ schools in Longfellow. But we also prioritized running! We managed to find a house that was within a couple of blocks of both schools, and even better, was only 1/4 mile from the Mississippi River! Now we had easy access to the excellent trail on West River Parkway and everything it connects to. We were excited about what running in 2015 would bring.
And I ran so. many. races. in 2015. Too many. Twelve, to be exact. Distances ranged from 5K (where I snagged a 24:58 PR) to a half marathon (where I finished with the heartbreaking time of 2:00:07). We signed up for the Summit Challenge again, but still didn’t do all the races (this time because there was a -20° wind chill for the February race). And my good ol’ IT band flared up again in the TC 10 Mile. But this time I knew how to recover and I was back at it before long. But even as I did all of this racing, and realized the half marathon distance was completely attainable for me, I always thought, there’s no way I’ll ever run a marathon. I didn’t even consider it.
2016 was another great running year. I cut back the number of races, but this time did TCM’s great “Loony Challenge” — three races in two days over the marathon weekend: a 10K and 5K back-to-back on Saturday, and the TC 10 Mile on Sunday.
Which got me thinking… if I could run 19.3 miles in races over two consecutive days, maybe… just maybe I actually could run a marathon. So on the day registration opened, my wife and I signed up for the “Ultra Summit Challenge”… the Valentine’s Day 5K in February, the Hot Dash 10 Mile in March, the Red White and Boom Half Marathon on July 4 and the Twin Cities Marathon itself on October 1. This was really happening.
Of course, first I also had to have a little fun, so in November I committed to the Moustache Run 10K. And I when I say committed, I mean total. commitment.
2017: The Year of the Marathon
In the first few days of January 2017, my wife and I both put together spreadsheets mapping out our training plans for the entire year. The goal was the Twin Cities Marathon on October 1, but there were several other milestones along the way: the other races in the Ultra Summit Challenge, plus a few of our favorite other races: the Get in Gear 10K at Minnehaha Falls in April, the Gridiron Gallop 5K at Lake Nokomis in June, and the Torchlight 5K in downtown Minneapolis in July.
The year got off to a great start. We ran together (actually together) in the Valentine’s Day 5K and finished with an awesome time of 25:25. We ran “actually together” again in the Hot Dash 10 Mile (after separating at the start but me catching up to her around the 1 mile mark) and finished in 1:29:02.
I secretly had set a goal for myself in the Torchlight 5K: to not just PR, but to finish a race with a sub-8:00/mile pace for the first time ever. I kicked it up from the very beginning, kept track eagerly as my pace hovered around 7:50/mile, and charged towards the finish. Except… it didn’t come. The organizers had changed the route for the race and accidentally placed a turnaround about a block farther than it was supposed to be. When my watch hit 3.1 miles and the finish line was nowhere to be seen, I instantly let off the gas. I finished the race in 26:06 and was furious. My final average pace was 7:55/mile, but what difference did it make if the course was too long? Fortunately, the organizers owned up to the error and re-measured the course distance. The official records were corrected to indicate it was a 3.3 mile course, and my pace of 7:55/mile was in the books! I don’t have a tidy 5K PR time from it, but at least I hit my goal.
So it was time for another goal: a PR in the Red White and Boom Half Marathon. And I crushed it! 1:58:34. What shocked me most was that I was able to negative split and I actually ran the last mile fastest of all, in 8:24.
I was riding high. But the real challenge was just beginning. It was time to push myself beyond 13.1 miles for the first time in my life.
The Long Run(s)
Running can be monotonous. I can’t stand treadmills, and I’ll only tolerate 2-3 miles on the indoor track at the Midtown YWCA in the worst of the winter weather Minnesota can dish out.
Even the beautiful, well-maintained paved trails of the Minneapolis Park System can get tedious when you run the same stretches over and over again, like I’ve done with the area around miles 15 to 19 of the Twin Cities Marathon course. (Cue ominous music.)
In late June, as I was training for the half marathon, I noticed that my 5-days-a-week running schedule was beginning to take a toll. I’m used to only running 3 or 4 times a week, and the back-to-back longer runs were not giving me enough recovery time. My left shin would occasionally bug me, and I was consistently having issues with my right hip and groin after long runs. So I decided to revise the rest of my training schedule. I would only run 3 times a week, to give myself adequate rest days. But I’d keep the planned schedule of long runs on weekends.
The 14-Mile “Bridge Tour”
For my first 14-miler on July 15, I concocted a crazy training route. I would cross every pedestrian-accessible bridge over the Mississippi River between Lake Street and Plymouth Avenue. I realized it was possible to do this, hitting every bridge, and only crossing each bridge once.
I started on West River Parkway at 36th St., crossed over to St. Paul at Lake St., ran up the East Bank at the U of M all the way to the Dinkytown Greenway bridge, back over to the West Bank, past the Guthrie Theater, across the Stone Arch Bridge to Father Hennepin Park, across the Merriam St. bridge onto Nicollet Island, across the trail bridge to Boom Island Park, over the Plymouth Ave. bridge back to West River Parkway, back into downtown Minneapolis, across the Hennepin Ave. bridge, down Main St. to the 3rd Ave. bridge, back towards downtown, past the Guthrie again.
OK, I wasn’t finished yet at this point, but I was getting really hot, and I was out of water, so I managed to find a drinking fountain in an open building on the West Bank U of M campus to refill my bottle.
Then I headed across the upper deck of the Washington Ave. bridge, snaked around the Weisman Art Museum, behind Coffman Union, down the steps to the East River Flats, and reconnected with the trail. One last bridge to cross, Franklin Ave. I hit the 14-mile mark just south of Lake St. It was so hot and I was completely exhausted, but I somehow managed to plod 3/4 mile back to my house, where I made quick work of two 20 oz. bottles of Powerade.
It’s a fun route! Just don’t do it on a hot day in July.
The next weekend I was visiting my parents in Austin, Minnesota. I didn’t think it would be possible to plot a 16-mile running course in a town that’s only 5 miles end-to-end, but I discovered Austin actually has a great connected series of paved trails that took care of miles 3 through 10 for me. After that, I just meandered around familiar neighborhoods, passing by a my old schools and the houses where my grandparents had lived.
The Perfect 20-Mile Loop
A couple weeks later I put together a great 18-mile route in Minneapolis, but it turns out that with a few modifications it makes an even better 20-mile route that closely follows miles 4.5 through 18.5 of the Twin Cities Marathon course. It’s a perfect 20-mile loop that you can start from anywhere along the route and end up right back where you started. I highly recommend this as the 20-miler for anyone who’s training for the Twin Cities Marathon, so I want to look at it in detail. I also took a lot of pictures along the way and posted them in real time on Instagram.
I started, once again, on West River Parkway at 36th St. But this worked out perfectly to get back to my starting point at 20 miles, so you can start anywhere.
I ran up West River Parkway to the Midtown Greenway. Took that west across the city to the turnoff by Lake of the Isles. Looped around to the path connecting to Lake Calhoun (Bde Maka Ska), then up onto the trail around the lake in a counterclockwise direction. This is where you connect up with the Twin Cities Marathon route at about mile 4.5 (though in this loop, from my starting point, I was about 6.5 miles into my run).
Take the west side of Calhoun to William Berry Parkway, over to Lake Harriet, where you may or may not encounter live music at the bandshell.
(I’m cheating a bit… this video is from the 18-mile run I had done two weeks earlier.)
Head to the left on the trail at Lake Harriet (east side of the lake), and follow it until you get to where the trail for Minnehaha Parkway branches off to the left. This is around mile 7.5 in the marathon. Follow the trail to Lake Nokomis. It gets a bit hairy in here… the trail crosses over Minnehaha Creek several times and winds through some narrow wooded areas. Don’t lose your way!
I deviated a bit from the marathon route here. It turns on Cedar Ave. and includes the small part of Lake Nokomis that’s on the west side of the Cedar Ave. bridge. I stayed on the trail and connected up with Lake Nokomis at a different spot, went past the main beach, and took the Cedar Ave. bridge across. Likewise, where the marathon route takes Minnehaha Parkway as a straight shot to Minnehaha Falls, I stayed on the winding creek trail a block or so to the north, which adds a bit of distance but is more interesting and avoids stoplights. Once you get to the falls, you’re back on the marathon route, and you follow up West River Parkway back to the starting point. 20 miles done!
Don’t Do a Second 20-Miler
(Cue ominous music.) I really should have only done one 20-miler. But when I originally drew up my training plan for the year, I concocted a hybrid of Hal Higdon’s “beginner” and “intermediate” plans, along with a few of my own adjustments. This included doing two 20-mile runs instead of just one. When I revised my plan to cut back to 3 days a week, I also should have cut out that second 20-miler, but I didn’t.
I also didn’t want to repeat my same 20-mile route again. I wanted to explore something new. So I came up with this crazy route.
Yes, I really did this. Yes, it starts by going past Minnehaha Falls, over to and around Lake Nokomis, back past Minnehaha Falls, over the Ford Bridge into St. Paul, down at Hidden Falls, straight through Crosby Farm Park, then back up (and I do mean up) Shepard Road to Mississippi River Blvd on the St. Paul side all the way to Marshall Ave. and across the bridge to just south of Lake St. And then just like after my 14-miler, I had a 3/4 mile walk home. It was exhausting, there are parts of the trail that are disconcertingly isolated, and to top it all off I nearly threw up from the gels I forced myself to consume along the way.
Still, it’s a beautiful and amazing route. You should really bike it sometime.
After this 20-miler I was really sore. Some things just didn’t feel right. I had three weeks to go until the marathon, and my legs continued to feel a bit worn out right up to race day. As a first-time marathoner, especially only running 3 times a week, I can now say, definitively, under these circumstances, don’t do a second 20-miler.
All year I had been training for the marathon. But not just me. My wife had too. But just as I’ve been plagued with IT band issues, she’s had a nagging problem with her right kneecap that has occasionally sidelined her from running. Her situation is more serious than mine, and has twice required trips to the doctor and multiple physical therapy sessions. Unfortunately, she had a subluxation on August 4 — not during a run, but hastily getting up out of a chair to get a bowl of potato chips! — and had to stop running. She’s getting back into it now, but her marathon dreams, for 2017 at least, were over. From here on, I was running for both of us.
At last, the moment I’d been waiting for and working for all year had arrived! It was Friday, September 29. The expo was open. Marathon Weekend was here! My excitement had been building for several days, especially since I had just joined (very late to the party) a closed Facebook group called “Medtronic Twin Cities Marathon First-Time Marathoners, Class of 2017” and started sharing stories and collective anticipation with my fellow first-timers.
I Can’t Wait
In the preceding few days I had been studying the schedule for the expo. I’m not big on expos. I’ll wander around the booths, but I’m not really that interested in talking to people or listening to seminars. But I had seen that on Saturday afternoon there was going to be a seminar for us first-timers, including a group photo. There also were supposed to be orange wristbands for first-timers that I’d be able to pick up at one of the booths. Gotta have that!
So, the smart thing to do would have been to wait until Saturday afternoon to go to the expo, to be part of the first-timer experience. But I was so fixated on the marathon by Friday morning that I just couldn’t wait, so I went to the expo an hour after it opened. I headed straight for packet pickup, which, just like the dairy section in a grocery store, was all the way at the back of the convention hall.
I wandered around a bit and, for a moment, briefly reconsidered everything…
I never did find the first-timers’ bracelets (although I got my hands on a “fake” light orange bracelet from Orthology), but at least I had my packet, with my race bib and socks.
Socks?! Last year they gave out awesome stocking caps! (Toques, for all of the Winnipegians who come down for the race.) I wore mine almost constantly last winter, even though I felt a bit sheepish about advertising the Twin Cities Marathon when I had only run the 10 Mile. (But I knew I was signed up for the big race this year.)
About halfway back to my car, I realized I had forgotten the all-important “Ultra Summit Challenge” bib, so I went back inside to track it down. Then it was off to enjoy the final Twins game of my 20-game season ticket package with my daughter. At least they gave out stocking caps!
I woke up on Saturday morning, envious of the runners in the 5K and 10K and the perfect weather they were getting. Early forecasts for Sunday had looked promising, but as the day drew closer, the forecast got worse and worse. Then it got a little better. It looked like there was no way we would avoid rain on Sunday, but there was only a 20% chance for most of the time of the marathon, with showers looking more likely in the early afternoon, just around the time I expected to finish.
I kept thinking about that first-timers’ bracelet. I really wanted it! My son had a music rehearsal in Nordeast so I took the opportunity to head over to St. Paul after I dropped him off, and dragged my wife and daughter along. My daughter is always keen on going anywhere. My wife had her reservations about going to the expo, given her frustration over having to skip the marathon, but she decided she was up for it.
Then I remembered that even when half of the streets aren’t closed for a race, driving in downtown St. Paul is a nightmare. And half of the streets were closed because the Saturday events were still going on. After sitting in traffic for a half hour and following a meandering detour that only got us back to where we had started, I gave up and we left. There was always one last chance to get the bracelet on Sunday morning, as I knew someone from the Facebook group was going to be handing them out in Corral 3 before the race started.
So, we headed back home and I decided to rest and distract myself with a little Metroid: Samus Returns. It was a beautiful afternoon to sit on the deck. September and early October offer some of my favorite weather in Minnesota.
That evening I carbed up. That’s what you’re supposed to do, right? And wine in an absurdly oversized glass is important too?
I organized all of my gear. Three packs of Clif Bloks — after that second 20-miler, I swore off gels, but the gummies I can handle. A light pre-race breakfast. My new Nathan 18 oz. water bottle with the annoying cap that never screws on quite right but with a big enough zipper pouch for three packs of Clif Bloks. My new socks (!) which I wouldn’t have chosen to wear for the first time in a race, but they’re Fitsok, so I knew they’d be great. Of course my race bib(s). And an emergency Mylar blanket, small enough to fit in the pocket of my shorts, to help shelter me from rain and cold pre-race, if necessary.
(Cue ominous music.)
Around 9:00 I had some work to do. I have a client who had some site updates that were required to go live at precisely midnight on October 1, and were of a nature that I couldn’t easily write a script to automate the process. No way was I going to stay up until midnight the night before a race! So I worked out an arrangement with them that I would make the changes after 9 PM on Saturday night. I took care of that and went to bed. Surprisingly, I actually slept.
I had set alarms on both my Apple Watch (for 5:15 AM) and my iPhone (for 5:30 AM), but I woke up on my own at 5:09.
I got up, went downstairs to the kitchen and started a pot of coffee. Walked into the bathroom and that’s when I heard it.
I knew there was a good chance of rain overnight, but it was supposed to stop by morning and not be raining at race time. Let’s hope.
So, there were two main things I was worried about on the morning of the race. One was rain. The other was. Well… that other thing I just said. Anyone who does long distance running understands that, at a certain point, you have to drop the pretense of polite society and just be honest about the fact that the human body is a living organism that has certain functions. That pre-run bowel movement is an important ritual.
(Non-runners can just skip this paragraph.) I know my body well enough after 43 years to know there’s a pattern. I typically have two BMs in the morning. One right after I get up, and another 15-30 minutes later after I’ve had some caffeine. This is always a potential problem on race mornings, because I also know that, for whatever reason, that first one usually doesn’t want to come before about 6:30 AM. Here I was, an hour earlier, seriously worrying… will I poop? Fortunately, my intestines were 100% cooperative on this particular day, and that, at least, was one thing I didn’t need to worry about.
I tend to be giddy on race mornings. I amuse my wife with my flustered anxiousness. But then there’s a state of even deeper anxiousness where that doesn’t happen. I’m just… still. She noticed it before I did. This was a really big deal. I was going to run a marathon. This was actually happening.
For most races, transportation is not a huge deal. You usually end near where you started, so if you’re driving you just try to park somewhere near the start line. (I make this sound simple but it is always the thing that I am most nervous about with races. Just ask my wife. It is amusing to her.) For the Twin Cities Marathon (and the TC 10 Mile), it’s different. You start in downtown Minneapolis and end in downtown St. Paul. The most direct route from the finish back to the start is, not surprisingly, about 10 miles.
We decided that for this race, my wife (and daughter, remember she’s always up for going along, even at 6:30 AM) would drop me off near the start. I would take the Green Line back to Minneapolis, then transfer to the Blue Line, and they’d pick me up at the 38th St. station.
The rain had stopped, but it started sprinkling again as we drove down Lake St. Noooo!!! Fortunately it didn’t amount to much. We got downtown and, when I saw the traffic on Washington Ave., decided they should just let me off at 11th Ave. and turn around.
That meant a fair bit of a walk for me to the start line, but whatever, it’s not like I’m running a marathon today or anything. Oh, wait. I made my way through light drizzle to US Bank Stadium, saw the TC 10 Mile runners lining up for their 7 AM start, and sought out the sweats check UPS trucks. I had never done sweats check before, but with the rain, I knew I’d need dry clothes to change into after the race. I spotted 3 trucks, each with a sign indicating the bib numbers they were taking bags for. I saw 1000s, 2000s, 3000s. But my bib number was 8089! I asked a volunteer where the trucks for the higher bib numbers were. He looked at my number and said, “Oh, yeah… you’ll be two blocks over.” What??? I had already scoped out the portapotties near these trucks and had planned to line up at one after dropping off my bag. (It’s hard enough to wrangle my water bottle in a portapotty; no way was I bringing my bag into one too.) So, even more walking!
Fortunately, when I got to the trucks for Corral 3, I saw we had our very own row of portapotties, lined up in front of the power station across 6th St. from US Bank Stadium. The drizzle had stopped, the wind was low, and the sun was rising. This was going to be a great day!
Since the weather was looking more and more promising, I decided I did not need the Mylar blanket I had jammed in the back pocket of my shorts, so I checked it with my bag.
(Dramatic swell of ominous music.)
Look, a rainbow!
I was feeling great! This was going to be a perfect day after all. After I snapped the rainbow photo, I struck up a conversation with a purple-haired runner named Colleen. It was her first marathon too. We talked for about 5 minutes until suddenly, a downpour! Noooo!!! My Mylar blanket! Colleen was wearing a poncho but I was a moron, so I wished her luck and dashed off for cover under an elevated walkway by the stadium. I was cold and soaked, but at least I wasn’t alone!
I had a couple of brief conversations with my fellow shelter-seekers, but I was mainly staring silently at the puddles in the street, watching for the first sign of the rain stopping. It was a half hour to the start, and I needed one more portapotty visit before then! Fortunately the skies cooperated. The rain stopped, I emptied my bladder, and I moved towards the start corral.
I never did find the person who was handing out orange bracelets, but as the corral filled up, I decided it just wasn’t going to happen, and it was more important to just get myself prepared. I had been tense with nerves and shivering while I waited for the rain to pass and my quads were tight and sore… and the race hadn’t even started! Time to loosen up and clear my head.
The Start Line
The announcer counted down the start of the race. Corral 1 was off! Corral 2 moved towards the start line and Corral 3 inched forward. Corral 2 started, and my group moved up. The sides of the road were strewn with discarded sweatshirts. I could feel the collective intensity of the group. We hadn’t even started yet and I could already tell this was a completely different experience than any race I had run in before.
10… 9… 8… 7… 6…
I looked at the sky and took a deep breath. Choked back some tears. I’m at the start line of a marathon. This is real.
5… 4… 3…
I quickly cued up the Workout app on my Apple Watch and got ready to hit “Start” just as my feet crossed the timing mat.
Miles 1–2: Downtown Minneapolis
The course begins on 6th St., heading northwest through downtown Minneapolis towards Hennepin Ave. The Hennepin County Government Center spans across the street a couple blocks in, creating a dramatic tunnel for the marathoners to begin the race. Then it turns left onto Hennepin and heads towards the Basilica. I know this route well, but I’m usually going the other way! Since 2012 I’ve run the Torchlight 5K every July.
As I was training for this marathon, I realized I would not be prepared to run non-stop. I had started my long runs with an 18:2 cycle (18 minutes running, 2 minutes walking). Later I realized that wasn’t quite working, so I shifted to 13:2. But I knew in the race I’d want to shorten the walks, so I decided on 9:1. I had run that cycle in my last training run before the marathon, a 5-miler on Thursday, and it seemed to work well, so that was my plan here. Run 9 minutes, walk 1 minute. Eat a Clif Blok on 2 out of each 3 stops.
I couldn’t believe how fast the first 9 minutes went by. I was on Hennepin Ave. around 10th St. when I hit my first break. In other races I’ve always questioned (in my head) people I already saw walking in the first mile. But here, I totally understood. And I had no reservations. I had a plan. This was working. I swallowed the gummy, took a swig of water, checked my watch, and started up again.
I was a bit concerned about my pace. I figured adrenaline would push me faster than I wanted to go. I was shooting for an 11:00/mile pace for the whole race, so I wanted to keep my running pace at about 10:00/mile. That’s tough, because my natural tendency in a long training run is to settle into about a 9:30 pace. In races, I’m usually under 9:00. But I knew I couldn’t sustain that for 26.2 miles. I checked my watch, and I was running at about 9:40/mile. Faster than I wanted, but not too much.
I was feeling great, no, ecstatic, and just enjoying the moment. I even stopped by the Minneapolis Sculpture Garden to snap a quick picture of the blue chicken!
I knew to expect to hear some tuba near the Walker, and I wasn’t disappointed! Even though I don’t like Imagine Dragons, I enjoyed the rendition of “Radioactive” and it powered me towards the hill… except oops, 19 minutes in, time for another walk break! Perfect timing.
I rounded the corner at the Mile 2 mark, pumped up by the crowd and feeling confident. Whatever happens, this is awesome!
The crowd in the Kenwood neighborhood was great. So much energy and support. Then I noticed a few runners splitting off to the left into a grassy area. ??? Then I realized we were at the first set of portapotties on the course. Yes, please! My bladder had been nudging me since about a block into the race! I hurried over to the portapotties, about 100 feet off the course, and quipped to another runner how unfair it was of them to make us run so much extra just to use the bathroom!
Miles 3–4: Kenwood-Isles
Though I’m familiar with the area, having lived near Lake of the Isles in my late 20s, I had trouble recognizing exactly where I was. The combination of slightly blurry vision (I can’t wear my glasses when I run), dizzy energy, and thick crowds of spectators changed the whole landscape.
Rounding a bend in the road on Lake of the Isles, I thought for a moment about how one time, many years earlier, my wife and I had seen Bobby McFerrin walking on the path at that very spot. (At the time he was in town conducting the St. Paul Chamber Orchestra.)
As the route passed under a railroad bridge (now converted to a greenway) on Dean Parkway, I noticed a banner that read “Warning! Cemetery Ahead! Look Alive!”
5K — 33:16 — 10:42/mi
Miles 5–6: Lake Calhoun (Bde Maka Ska)
I had never run in the Kenwood-Isles neighborhood before. When I lived there in the late ’90s I was at peak laziness. But I had walked around Lake of the Isles plenty of times. Now, as I crossed over to Lake Calhoun/Bde Maka Ska, I was getting back into familiar territory. I had run this exact route twice this summer, on my 18-mile and (first) 20-mile training runs. At this point the whole thing was starting to become a blur. And I kept up my 9:1 cycle, taking a moment to snap a photo of my fellow runners during a walk break.
As I approached 6 miles, I thought about how many people had said to me, “a marathon’s just a 10K with a 20-mile warmup.” Ha ha. But I realized you could reverse it. I had never run more than 20 miles, so the marathon was still intimidating. I’d never run a race without having actually run its full distance in training. So once I got to 6.2 miles, I thought, OK, this is just a 20-mile run with a 10K warmup. Warmup’s over.
10K — 1:05:05 — 10:14/mi
Miles 7–8: Lake Harriet
William Berry Parkway is a short, surprisingly steep hill connecting Calhoun and Harriet. But while I didn’t enjoy the hill, I was more disturbed by how the course abruptly got much narrower. A volunteer was stationed on the curb of what the Australian commentators on the Tour de France would refer to as “road furniture.” A runner next to me was thankful he was there.
I love running at Lake Harriet. It doesn’t happen that often, because from where I live it’s about a 7.5-mile run just to get to it. But I managed to run it several times this year as I was training. I saw a few runners stop here at portapotties that I happen to know were not just brought out for the race! This was the first “I know this place” moment I had since we passed the Basilica downtown, but I knew a lot more were to come. This is the fun of running a marathon on a route you know. But (cue ominous music) it can also be a bad thing. I was about halfway to discovering that.
As we ran on the potholed asphalt of Lake Harriet Parkway, dodging puddles (I was determined not to get my shoes soaked, at least not this early into the race), I thought about how the last time I had run a road race at Lake Harriet was TCM’s Valentine’s Day 5K, or maybe the “Irish for a Day” 5K before they rechristened it the “Hot Dash” and moved it downtown. Whatever the case, I had been dodging ice, not puddles.
Miles 9–11: Minnehaha Parkway
The course turns onto Minnehaha Parkway, and this was the part I was most dreading before the race. I had read warnings that the road is much hillier than the trails here, and that it can be “lonely” because there aren’t as many spectators. I found both claims to be overblown. The road was fine and the spectators were plentiful. They even had a huge balloon arch that looked to me like Skittles. (Hmm… I must have been getting hungry. Time for another Clif Blok.)
I would swear a sign near this spot called it the “Tarrytown Turn” but it must have said “Tangletown Turn”. It was also around here that I saw T-Rex for the first time.
There’s a stretch of the parkway here that my wife and I both agree is very confusing, at least on the trail. After you pass 12th Ave. it feels like you should be getting close to Cedar, but Bloomington Ave. is there first. I reflected on that as I ran it in the marathon and just thought, “whatever… I still have 16 miles to go; a quarter mile here or there seems like nothing.”
As we got to the Mile 11 marker and the right turn onto Cedar Ave., a huge crowd of spectators was gathered, and one in particular stood out. He was holding up a large picture of one of the runners, attached to the end of a telescoping pole that was at least 20 feet long. I would see him twice again later on the course.
Miles 12–13: Lake Nokomis
Looking back, this is where things first started to get off track for me, although I didn’t know it at the time. I was starting to feel tired, but still in high spirits. High enough that I did something really stupid at the water stop right before the Caribou Tunnel. I had grabbed a cup of Powerade, walked a bit to drink it, and when I finished, started running again. I went to the side to toss it into a trash bin, and realized too late that I was heading for a tied up trash bag on the ground. Rather than abruptly veer out of the way, I thought it would be “clever” and “amusing” to the volunteer standing there if I hurdled over it instead. He laughed. Probably at what a fool I was. It was fine, but the extra impact of landing and the change in motion was just enough that I spent the next mile thinking I had just made a really stupid mistake.
It also didn’t help that I was at my absolute least favorite part of any race course: the east side of Lake Nokomis. I’m not sure what it is; I love the lake, and running the trail is no problem, but there’s just something about running on the road in that section that is miserable. It veers far from the lake and is totally exposed to the sun… even when it’s overcast.
I hit the halfway point feeling fatigued and a bit disillusioned. But my problems were just beginning.
13.1M — 2:16:37 — 10:23/mi
Miles 14–15: Minnehaha Parkway (Again)
I had been really excited for this section. I was back in my old neighborhood. This is where I first discovered the joy of the Twin Cities Marathon as a spectator. I never wanted to miss coming out to cheer on the runners, and this was right where I would do it.
I know there’s a hill on Minnehaha Parkway right where the marathon course leaves Lake Nokomis. I’ve biked it plenty of times. But the footpath is not near the road, and has a more gentle slope, so I was kind of stunned by how steep the hill on the road felt to run up.
As I passed the Mile 14 marker and Mel-O-Glaze bakery, I took a deep whiff of doughnuts and felt the crowd closing in on me. The road narrows once again, and the runners were densely packed, surrounded by a large crowd spilling off the curb. And that’s when I began to notice it.
My IT band.
I pushed through towards the roundabout at Minnehaha Falls and the Mile 15 marker. When I got there, I had to stop. It was not part of my 9:1 cycle. It was the pain. My IT band is flaring up and I’m only 15 miles in! I have 11 miles to go! How can I do this???
I texted my wife.
After I sent it, I just thought to myself, “I hope she realizes I’m serious.”
Forget the 9:1 cycle. Forget the 11:00/mi pace. Forget the free Brooks shoes at mile 22. Forget the finish line? Maybe.
Miles 16–17: West River Parkway
My house is a quarter mile from the Mile 17 marker. My wife and daughter were planning to be there to see me run by. Now I was hoping they would also be there with some ibuprofen to take the edge off this IT band pain so I could try to keep going.
Over and over, I would try to run, manage a minute or two, and have to stop to walk because of the intense pain on the outside of my left knee. For a while I was wondering if I’d even get to mile 17!
I was in my own neighborhood by now, running on the road next to the path I’ve run hundreds of times. But I was barely even paying attention. All I could think about was 1) keep moving, 2) avoid pain, 3) look for Mile 17.
As I got near 36th St., I thought about how my parents had been planning to come up and see me run, but for various logistical reasons had decided it would be better not to. Ever since mile 8 I had a sneaking suspicion that maybe they had just said that to me, but were secretly planning to surprise me. If so, they’d be at 36th St., about 1/4 mile before the Mile 17 marker. But when I got there, they weren’t there. I wasn’t disappointed; I was almost relieved, so they wouldn’t have to see me in my present state!
But I still had to round the bend to where my wife and daughter (and, hopefully, my ibuprofen!) would be waiting for me. As I saw the Clif Shot tables at Mile 17 coming into view, I spotted my daughter running down the hill and calling out, “There he is!” I stopped as I saw my wife pulling a plastic bag with two ibuprofen tablets out of her pocket. THANK YOU!
Not only were they there, but our son (who’s just the opposite of our daughter when it comes to going places) was there too, with our dog, tail wagging furiously.
It was great to see them and get a boost to keep going just a little bit farther. I still didn’t think I’d make it to the end, but I had to at least get to a drop-out zone. The only problem was, I had only ever seen one drop-out zone, at mile 9, and I had no idea how far away the next one was.
So, for now, just keep going.
Mile 18: I Can (Almost) See My House from Here!
At this point, I was managing to run for a minute or two at a time. The finish line seemed a long way off. And, worst of all, I was running along the Mississippi River, and I knew that directly across the river, there were other marathoners who were three miles ahead of me on the course. I could hear an announcer, and music, and cheers. And I was thinking about how, at my current pace, it was going to take me about 45 minutes just to get back to more or less where I was right now!
The Lake St./Marshall Ave. bridge is, effectively, a “shortcut”. Not one I ever would take, of course, since aside from defeating the purpose of running a marathon, my time wouldn’t count, because I’d have missed at least one timing mat. But that didn’t stop me from joking about it with a spectator. “Don’t tell anyone if I just take a little shortcut across this bridge!”
Instead, I went under it, and onward towards Franklin Ave.
30K — 3:25:42 — 12:28/mi
Miles 19–20: Franklin Ave. Bridge and “The Wall”
Approaching the Midtown Greenway bridge, I texted my wife again:
The temptation was great. I could stop. But I kept remembering that she said “you’ll be disappointed if you stop.” Then I remembered how disappointed she was to not even be able to start the race. I needed to keep going for her. Then I remembered that her whole motivation to run the marathon was to honor her mom, who had died 8 years and 1 day earlier from pancreatic cancer. I was running for both of them. I might struggle, I might be in pain, I might take until the time limit, but I was going to finish.
I spotted the drop-out zone just as I was getting onto the Franklin Ave. bridge. I didn’t hesitate for a second.
Just at that moment, I noticed the first drops of rain. As I turned off of the Franklin Ave. bridge and headed south, towards the dreaded ALARC Wall looming at Mile 20, I realized this was far from over. The rain grew steadier, and heavier. Wind picked up. The spectators thinned out, but those who remained were as tenacious as the runners around me. And had a lot more energy.
Then, just past the railroad bridge (which I always hope will one day become an extension of the Midtown Greenway, which ends just before it on the Minneapolis side), there it was.
This may have been my first marathon, but it was my fourth time seeing the ALARC Wall. I’ve run the TC 10 Mile for the past 3 years, and from Franklin Ave. to the finish they follow the same route. But, of course, for the marathoners this marks Mile 20. For the 10 Mile, you’re only 3.8 in.
There’s a lot of talk about “the wall”. Roughly 20 miles seems to be the upper limit before your body spends its reserves and it begins to send serious signals that you MUST. STOP. NOW. I didn’t feel “the wall” at all here, because I had encountered a different kind of wall 5 miles earlier.
By this point, I was walking more than I was running. Fatigue was not even really a consideration. I wasn’t hot, or tired, or thirsty, and I definitely wasn’t hungry for gummies. I was just determined. Determined to run as much as I could, and walk whenever I couldn’t run, but no matter what, to just keep moving forward. So I was happy to see the wall, because it meant I was that much closer to the finish.
But I was also doing the math in my head. I was 3 hours and 45 minutes in. Normally I run a 10K, the distance from the ALARC Wall to the finish line, in under an hour. This was going to take me at least an hour and a half, I guessed. Kind of miserable, especially in the rain, but I’d still finish well under the 6-hour time limit. OK, maybe not well under. But under.
Plus, I had one more insane goal ahead of me: the Brooks Infinite Energy Mile.
Miles 21–22: Finite Energy (Or: No Shoes for You!)
A few days before the marathon, I got an exciting promotional email. Brooks was sponsoring the “Infinite Energy Mile”, and would be awarding a free pair of their newest running shoes to all marathon finishers who ran the 22nd mile (between the Mile 21 and Mile 22 markers) faster than their average pace for the first 21 miles. I loved that idea and had planned from the beginning that that would be my primary goal for this marathon.
I saw the Mile 21 marker coming up ahead of me. I made sure not to waste any energy running now, so I could muster whatever was left in my hobbled left leg to run through all of mile 22. I took a deep breath as I stepped on the timing mat, and broke into a stride.
Now, as much as Brooks wants to motivate people, they don’t necessarily want to give out a ton of free shoes. So they knew what they were doing when they picked this particular mile for the challenge. Yes, as their marketing spin on it went, this is the part of the race where you most need a motivational boost. But it’s also home to the biggest hill on the entire course.
It’s a hill I know well. I’ve run it many times. I usually prefer to go down it. I once witnessed a biker going down it and crash, hard, flipping over his handlebars, smashing his helmet and knocking himself unconscious. I stupidly didn’t have my phone with me, for once, and I deeply regretted it. I waited with him as a crowd grew, and when the ambulance arrived, I told the paramedics what I had seen.
In other words, this is a hill that already has some emotional baggage for me.
And it destroyed me in the marathon.
My delusion of running the entire 22nd mile was squashed within about 2 seconds of hitting the hill. My IT band screamed out in pain and I gave up the dream of free shoes in a heartbeat. Time for a nice long uphill walk.
When I got to the top of the hill, a spectator was handing out orange slices. I had seen many before along the way and never took any because I already had a plan. 9:1. Clif Bloks. I got this. But by this point in the race, I was just taking what it gave me. Including spectators’ orange slices.
I immediately regretted it. A string of pulp wedged itself between my bottom front teeth, and I furiously picked at it to get it out. Meanwhile, the taste of a mediocre orange gave way to another taste… was it… onion? What the hell, man?! I’m not sure if the knife or the cutting board hadn’t been washed, or if my brain was just playing tricks on me by this point, but either way, it was the second most unpleasant experience of the marathon for me.
21M — 3:58:09 — 13:45
Miles 23–25: Summit Avenue
I’ve run part or all of Summit Ave. in several races, including the TC 5K and 10K, the TC 10 Mile, the Monster Dash Half Marathon and, now, the Twin Cities Marathon. It’s kind of funny to look at the marathon route and see how we take this long, meandering course around Minneapolis, 20 miles in total, and then we make a 6-mile beeline across St. Paul to the capitol. It would almost seem like an insult to St. Paul, but then there are few places in the metro area more picturesque for a race route than Summit Ave.
It’s also exhausting. There’s a long gradual hill until you get to Snelling, and then a few more shorter, steeper hills come at you in the home stretch. But it’s not really exhausting when you’re walking most of it!
As the marathon moved well into its fifth hour, and the rain continued, I was amazed at how many spectators were still out offering us their energy and encouragement. I saw yet another sousaphone player and, after pondering for a few seconds whether to yell “Sousaphone!” or “Tuba!” I decided on “Tuba!” to save myself the energy of an extra syllable, and immediately regretted it. I’m a musician after all, and I damn well know the difference between a tuba and a sousaphone. But now this guy is thinking I’m some musically-ignorant schmuck!
It was probably the only negative thought I had over those last 4 miles.
I entered a new state on Summit Ave. Yes, I was in pain that was forcing me to only run in 30-second to 1-minute bursts, with 2 to 5 minutes of walking in between. Yes, I had stepped straight into a puddle on one of those short bursts of running and soaked my right shoe through.
But all I felt was bliss. I am in the home stretch of a marathon. I am, absolutely, going to finish. I overcame my self-doubt. I am here, in this moment, moving forward, one step at a time.
It was honestly the most incredible feeling I’ve ever had in my life.
And I saw T-Rex again! Corner of Summit and Lexington.
I did also have to stop and snap one more picture… probably the most surprising thing I saw all day: heavy traffic on Ayd Mill Rd.! I guess that’s what shutting down a major artery on a busy weekend will do.
24M — 4:41:54 — 14:35/mi
The Finish Line
As I passed the mile 25 marker and realized this was truly, actually, for real happening, I started to tear up and got a lump in my throat. But I choked it back. Nope. Not yet. Gotta finish first.
I rounded the turn, ran (yes, ran!) through the Medtronic Tunnel, past the Cathedral, and down the hill. The finish line was in sight! I heard a runner, at least in his late 60s, an experienced marathoner, chatting with another runner. “Is this your first marathon?” “No, but my first Twin Cities. The others were in Houston.” After a few more sentences, Houston kicked up his pace and left us behind. As I ran past the man in his 60s, I called out, “This is my first marathon! And I’ve been dealing with an IT band since mile 15!” He replied, “Way to go! You’re going to finish this thing!”
It was a thrilling moment. And then of course my IT band reminded me it was there, and I had to stop to walk again.
But as I came down the hill onto the final bridge just before the finish, I saw a photographer with his camera aimed on me. No way was I going to be captured walking at this point, so I broke into the best stride I could muster and called out to him, “Hey, I’m running! Quick, take my picture!”
I didn’t stop until the finish line.
Finish — 5:11:12 — 13:18/mi — 11:53/mi overall
As soon as I was across the finish line, the tears welled up again. I was ready to let it out finally, but first I just had to high-five the volunteer who was standing there, looking in my direction with her hand up. Oops! No, wait, she’s waiting to high-five the person behind me.
And… the moment was gone.
But then another volunteer spotted me holding my camera up in the air trying to capture a nice picture of the finish line to text back to my wife so she’d see that I made it, and he said, “No, come on… let me take your picture!” So I shakily handed him my phone and stepped back, trying to stand up straight and put on the most energetic smile I could muster. I think it turned out OK!
Post-race areas are always chaotic. You accept your finisher medal, take a Mylar blanket, try to grab a bottle of water and armfuls of food, and wrangle it all to the t-shirt area and out into the waiting crowd.
It’s way worse in the rain.
Somehow, in 42 races over 6 years, I have never once had rain. I didn’t even really mind the rain so much during the race, but I had little patience for it after the race. I got my sweats bag and headed to the changing tent, took off my shoes and quickly discovered that the ground in the tent was not just wet but completely saturated, and at that moment was ready to be at home soaking in a hot epsom salt bath. But that was a couple of hours away.
With nowhere dry to sit and rest, the last thing I wanted to do was hang around and drink beer, so I made my way down the hill in front of the Capitol to the Green Line station and boarded the train to downtown Minneapolis.
I sat in a daze.
When the train finally arrived at US Bank Stadium, it was 2:45 PM. I gathered that the Vikings must not be doing well, because the platform was packed with people wearing purple. I crossed over to the other side and waited for the Blue Line to take me home. I struck up a conversation with a young runner (I could tell by the Twin Cities Marathon Mylar blanket she was wearing) and her parents. She had grown up in Morris but was now living in Indiana; her parents had moved to Hutchinson.
I thought about people who had traveled a great distance to participate in this race, and how happy I was to live right here, in the heart of it all. In a matter of minutes I’d be back home, in that bathtub, a few blocks from Mile 17.
SPOILER ALERT: If you’re considering or are just starting to listen to S-Town, don’t read further unless you’ve listened to at least as far as the very end of the second episode.
I mean it.
OK, here we go.
Like John B. McLemore, the man at the center of the S-Town podcast, I’m obsessed with time. Well, maybe not as obsessed with it as he is. But I’m always thinking about it.
Another obsession I have, that we have not, at least by mid-episode 3, heard is (or, rather, was — there’s the first spoiler) shared by John B., is with maps.
(I’m calling him “John B.” rather than just “John” because that’s what the people who were close to him call him. I’m not sure if he liked that or not, but I’ll assume he was OK with it.)
I had already read enough in a review, not to mention on the S-Town website itself, to know that someone else in the story actually dies, and that this most likely would be revealed at the end of episode 2. And, with the heavy foreshadowing early in that episode, it was not much of a surprise to me when it happened — who, or how. (Yes, even the method, which is revealed early in episode 3. That’s foreshadowed too.)
This is a true story of a real person’s life, so I am not trying to make light of it. I felt a genuine loss, and I’ve only known about this person for a few hours.
But let’s go back in time a bit.
I listened to episode 1, and the first 15 minutes of episode 2, when I was out running. I ended up listening to the rest of episode 2 in bed last night, finishing it well after midnight. But before I listened to that final half hour, I spent at least as long looking at satellite views of Woodstock, Alabama in the Apple Maps app on my iPhone… hunting for John B.’s hedge maze. I knew I was close when I spotted the South 40 trailer park that had been mentioned in episode 1.
I might have saved myself some time by searching on the latitude and longitude coordinates rattled off in episode 1 — curiously specific, I thought, even though producer Brian Reed had edited out the last bit, to respect John B.’s privacy. That struck me as odd right away… and also seemed to be a bit of foreshadowing, that maybe John B.’s privacy didn’t really matter so much now.
As I was saying, I might have saved myself some time, but I didn’t feel like going back and hunting for the exact spot in episode 1 where the coordinates were named. More fun to just explore the satellite images until I spotted a circular hedge maze in the woods.
But that wasn’t the first thing I spotted. First I spotted John B.’s school buses… the ones Brian Reed said he was using to age lumber. There were three now, not two. I panned a bit to the west and saw the house, then north and there it was… the hedge maze.
John B.’s house, school buses and hedge maze, from Apple Maps satellite view.
Excited by my discovery, I took to social media. Then I decided to see if anyone else on Twitter had possibly found the maze as well. Of course they had.
Except… wow. That looks a lot different. At first I was second guessing that maybe @RASEC29 had found the wrong maze… or that I had.
John B.’s property as seen in Google Maps.
I mean… where were the school buses? And the house… it looks… so overgrown.
That’s when I knew.
The satellite images in map apps aren’t dated (although I think that may be changing), so I have no idea exactly when these different images were taken. I don’t know if John B. was still alive in the Apple one, or if it’s just that the buses hadn’t yet been cleared away, the maze abandoned, the yard overgrown. And in the light of day, with a better view on my computer, the land doesn’t seem quite as devastated in the later photo as it did when I saw it at around midnight, on my iPhone screen. It’s a different time of year, and a different time of day. Things are brown instead of green, shadows fall in a different direction.
But clearly, time has passed, things have changed, John B.’s world has decayed, much as he obsessed over.
I have so many more things I would like to say, but… time. Also, I’m not even halfway through the series yet, so there is much I still don’t know that is yet to be revealed. Or not.
So I’ll leave it at this. As the quote on John B.’s astrolabe reads, life is “tedious, and brief.” I’m sorry John B. never made it out of his Shit Town, if that’s what he really wanted to do, but I’m glad he shared his story. And I hope he’s wrong about, you know, everything being doomed.
Update: Several other people have now replied to @RASEC29, including @tifotter, who has posted dated images from Google Earth:
Comments are kind of passé. Well, OK, they’re still everywhere, but they’re almost universally garbage. Meaningful discussion happens on social media these days, even if it’s prompted by a blog post. And if you’re using WordPress as a general-purpose CMS rather than just as a blogging tool, then you probably have no use for comments whatsoever.
Yet, they’re built in, and they’re a spam magnet. Even if your templates aren’t actually showing comments anywhere, the default WordPress settings allow comments to come in, cluttering up your database and nagging you with a disconcertingly large number in a bright red circle in the WordPress admin bar.
Fortunately, if you have direct database access and the fortitude to run a few simple lines of SQL, you can quickly accomplish the following:
Purge all queued spam and pending comments (while safely retaining any old, approved comments for archival purposes
Prevent any new comments from appearing on any of your existing posts/pages
Prevent comments from ever being accepted on future posts/pages
The last of those is a simple setting. In WP admin, you can go to Settings > Discussion and uncheck the second and third boxes under Default article settings at the top of the page. Actually, uncheck all three of those. If you’re going to turn off incoming pings, you should turn off pingbacks. But my SQL code below doesn’t.
If you’re just starting a brand new WordPress site and you don’t ever intend to allow comments, just go and uncheck those boxes and you’re done. But if you’re trying to rescue a long-suffering WordPress site from drowning in spam, read on.
Here then in all of its glory is the magic SQL you’ve been looking for:
DELETE FROM `wp_comments` WHERE `comment_approved` != 1;
DELETE FROM `wp_commentmeta` WHERE `comment_id` NOT IN (SELECT `comment_ID` FROM `wp_comments`);
UPDATE `wp_posts` SET `comment_status` = 'closed', `ping_status` = 'closed';
UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_comment_status';
UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_ping_status';
Want to dissect what each of these lines is doing? Sure…
DELETE FROM `wp_comments` WHERE `comment_approved` != 1;
This is going to delete all “pending” and “spam” comments. It leaves approved comments untouched. Note: you may have spam comments that are approved; one site I was just working on had thousands that were “approved” because the settings were a little too generous. I can’t give a catch-all SQL statement to address that problem, unfortunately. It requires analyzing the content of the comments to some extent.
You’d think maybe `comment_approved` = 0 would be better, but I found as I poked around that the possible values aren’t just 0 or 1. It may also be spam. It may be something else. (I haven’t researched all of the possibilities.)
DELETE FROM `wp_commentmeta` WHERE `comment_id` NOT IN (SELECT `comment_ID` FROM `wp_comments`);
There’s a separate table that stores miscellaneous meta data about comments. There’s a good chance there’s nothing in here, but you may as well delete any meta data corresponding to the comments you just deleted, so here you go.
UPDATE `wp_posts` SET `comment_status` = 'closed', `ping_status` = 'closed';
This is going through all of the existing posts — which don’t include just “posts”… “pages” are posts, “attachments” are posts… anything in WordPress is a post, really — and setting them to no longer accept comments or pingbacks. This doesn’t delete any comments on the posts that were already approved; it just prevents any new ones.
It’s the equivalent of going into every single post and unchecking the two boxes in the screenshot above. But it only takes a couple of seconds. FEEL THE AWESOME POWER OF SQL!!!
UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_comment_status';
Remember that screenshot near the beginning of this post, showing the three checkboxes under Settings > Discussion? Well this is the equivalent of unchecking the third one.
UPDATE `wp_options` SET `option_value` = 'closed' WHERE option_name = 'default_ping_status';
And this is the equivalent of unchecking the second one.
So there you have it. No more comments, no more spam, no need for an Akismet account.