Remembering Nancy F.

It has been just about a year since a good friend died at a mere 57 years of age. I observe this anniversary by publishing the eulogy that my evil twin gave at her memorial, with just a couple of minor edits. Whereas he spoke of the legendary SDNY Courthouse Follies in the past tense, I have changed it to the present tense. That’s because at the time, Nancy’s colleagues were too stupified with grief to think seriously about doing the Follies without her. Not long thereafter, they came to the realization that the Courthouse Follies is too good not to continue, and that there is absolutely no better and more appropriate way to honor Nancy’s memory than by putting on the show.

Good evening.

We are all going to die. That simple, self-evident fact is perfectly easy to accept as an intellectual, objective proposition; it is much harder to come to grips with on a deeper, emotional and psychological level.

I’ve come to believe that one of our most important tasks in this thrilling, unpredictable, supremely delightful, horribly painful game known as life is not to obliterate our fear of death, but rather to learn to live with that fear — truly live with it — and be free at last from that ever-present undercurrent of anxiety and fear of our inevitable death. If we accomplish that, we have a chance at genuine happiness, and liberation: the freedom to live our life exactly as it is right now, rather than worrying about losing it.

This is much more easily said than done. In Buddhism they have a word for it: they call it Practice.
Nancy was not a Buddhist — not any kind of -ist as far as I could tell. But she surely had a Practice. I am convinced that on some level she understood and embraced the kind of worldview I’m describing — especially as she approached the end of her life, in which she was short-changed by who knows how many decades. Rather than trying to mention her many wonderful achievements and attributes, I will emphasize this: she had a fabulous sense of humor. Underlying that splendid humor was deep wisdom: though she was no stranger to pain and loss, she knew how to live and enjoy life. She knew how to appreciate life’s offerings. She knew how to have fun.

Over the 20 years I worked as one of the staff interpreters in the office she managed so ably, I must have had hundreds of conversations with her that followed a common pattern: they would begin with me poking my head into her office to discuss something or other, usually office business. She would always look up from her monitor and keyboard to greet me with her characteristic warmth. “Yes, mon cher?” Then one or the other of us would say something funny. And the conversation would end with both of us laughing. You know the way she laughed, with lots of nasal involvement.

We’re talking a lot this evening about Courthouse Follies because the deservedly legendary show was one of her signature achievements, possibly the most visible and well-loved. Entertaining as it is, the show is about so much more than just amusement. No, it is a matter of utmost importance to us all. As Nancy sometimes liked to quip, comedy is serious business. (Not sure whom she stole that line from.) Our job can be brutally stressful. We witness suffering and pain every day. We are all duty-bound to remain stuck in our rigidly defined roles, even at those times when our humanity cries out for us to do otherwise. Nothing is more important to our collective mental health than the Follies. At least once a year we need to sit in a room together and just laugh. Nancy was the leader of that noble project. It was she who put it all together and made it happen. (If this were a federal Sentencing Guidelines analysis, she would get an enhancement for being a leader, supervisor, manager…)
I remember one time when she addressed the cast just before a Follies performance, back stage. She gave us a pep talk in which she reminded us to pay attention and be where we were supposed to be at the appropriate time (incorrigibly ragged band of amateurs that we are, drinking our wine backstage before going on, she had to remind us of that!). She closed these remarks by saying something like: last but not least, have fun. Have fun.

Thank you, Nancy. Thank you for making such a positive contribution to the world and enriching our lives.

You know how she loved comedy. I’ll share this with you on condition of the strictest confidentiality, all 200 of you my closest friends, lest I incriminate myself: I sometimes do judge imitations. Especially when I’m just back from a courtroom assignment with a judge’s idiosyncracies still fresh in memory. Nancy absolutely loved laughing at these imitations. She would sometimes come up to me, eyes ablaze with that childlike, gleeful enthusiasm of hers — and urge me to to entertain the assembly with my imitation of Judge So-and-So. I would comply, and she would laugh and laugh, hoot with laughter.

I usually prefered to launch into an imitation spontaneously, that is, whenever the Muses moved me to it. So there were times when she would ask me to do an imitation, and I would decline on the grounds that I wasn’t in the mood, or some such nonsense. I now understand, and have learned this valuable lesson from Nancy: life is too short not to “do” one more judge. Even on demand.

Mysterious failure of Debian maxlifetime session cleanup, solved

Abstract a/k/a spoiler alert:  
Invalid directives in a php.ini file cause the silent failure of the cron job/shell script that Debian systems use to garbage-collect expired PHP session data files.

One of the things I do at my job is maintain a couple of LAMP servers for our office’s use. We recently upgraded them from a long-outdated Ubuntu server edition to Debian 7 and PHP 5.4.4. Among the duties of these boxes is running some archaic and crudely written PHP code, so I expected some compatibility nightmares. I was able to resolve most of the errors, warnings, and weird behaviors one way or another, but the session garbage collection would not work, and I spent too long trying to figure out why. I don’t generally blog about technical stuff, but this might save someone some pain in the future — possibly even myself, when I forget the lesson learned here.

If you’re familiar with Debian and progeny (like Ubuntu), then you know Debian likes to store PHP session data files in /var/lib/php5 and put permissions on it such that if you let PHP try to do garbage collection, it fails with an error like this:

session_start() [function.session-start]: ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)

And if your php.ini settings for session.gc_probability and session.gc_divisor are the defaults, this error will only occur 1% of the time, making it fun to debug. But you did your Google diligence and RTFM, and learned that out of the box, Debian sets up a cron job that once per 30 minutes removes session data files whose modification times are older than session.gc_maxlifetime/60 minutes old. The Debian way seems to be to disable PHP garbage collection by setting session.gc_probability to 0 and letting cron do its thing, as
we can see in /etc/cron.d/php5:

09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete

Fine. The Debian dudes know what they are doing, so I went with it. Before long, however, I started wondering why none of my session files were getting deleted ever. I am not a black belt in system administration, but I really scoured the logs and tried to figure it out, and Google was no help. So I took a closer look at that cron entry. What’s it doing? In essence, it is using the output of /usr/lib/php5/maxlifetime to determine how many minutes old a session data file has to be to be eligible for deletion. OK, then let’s have a look at /usr/lib/php5/maxlifetime. Not being fluent in shell scripting, I had to squint and scratch my head a bit to follow this.

#!/bin/sh -e
if which php5 >/dev/null 2>&1; then
for sapi in apache2 apache2filter cgi fpm; do
if [ -e /etc/php5/${sapi}/php.ini ]; then
cur=$(php5 -c /etc/php5/${sapi}/php.ini -d “error_reporting=’~E_ALL'” \
-r ‘print ini_get(“session.gc_maxlifetime”);’)
[ -z “$cur” ] && cur=0
[ “$cur” -gt “$max” ] && max=$cur
for ini in /etc/php5/*/php.ini /etc/php5/conf.d/*.ini; do
cur=$(sed -n -e ‘s/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p’ $ini 2>/dev/null || true);
[ -z “$cur” ] && cur=0
[ “$cur” -gt “$max” ] && max=$cur
echo $(($max/60))
exit 0

If you are new to shell scripting and would like to understand this, pay attention. Otherwise, skip ahead. We start by setting max=1440 — that means it will be our default if we don’t overwrite it in the code that follows. That first if condition tests whether there is a php5 binary installed someplace on this system. If so, then we iterate through the standard places where php.ini files are found, and use that php5 to load that configuration file, print out its session.gc_maxlifetime setting, and assign it to the variable $cur. Then we check to make sure we actually got a non-empty $cur before comparing it to $max. By the way, it appears that

[ -z "$cur" ] && cur=0

is a popular shell scripting idiom that is faster to type than the more verbose if construct. The stuff to the right of && only executes if the test on the left of it is true. In this case, the -z tests whether $cur is a zero-length string. This is kind of counter-intuitive to the uninitiated, because one might think the && really means and rather than if. It does mean and, but only if the expression to its left evaluates to true.

If $cur is greater than $max, we assign it to $max, and the result of this iterative processing is that the highest $cur we ever see will become our $max, as long as it’s greater than the initial 1440.

OK, and what’s with the next big else block? If we don’t find a php5 executable, we use sed — the Stream EDitor — to try to parse out the session.gc_maxlifetime value from the .ini file, and otherwise do the same thing as the preceding if.

Well, you may wonder, if they think sed is guaranteed to work, why not just do it that way in the first place? Frankly, I’m not sure. It turns out, as we’ll see, the use of php5 eventually alerted me to a misconfiguration that would not have been picked up had we used sed

So, what is the output of this damn thing, which the cron job is relying on? I ran it from the command line and found that it printed exactly nothing. So I made a copy, which I loaded into a text editor, and started applying my primitive debugging techniques, i.e., using echo statements just to figure out what was getting run and to see the values of things like $max and $cur. Pretty soon I determined that the script was choking on

cur=$(php5 -c /etc/php5/${sapi}/php.ini -d "error_reporting='~E_ALL'"
-r 'print ini_get("session.gc_maxlifetime");')

Then I started looking at the exit status. When I ran /usr/lib/php5/maxlifetime; echo $? from the command line, behold, our exit status is 127. Another consultation with Mr. Google reveals that 127 means “command not found.” What the hell is the command that isn’t being found? I was baffled.

Going back to the very top of this shell script, I wondered what the -e switch means at the shebang line. Back to Google to learn that it means “if not interactive, exit immediately if any untested command fails.” OK, then let’s remove the -e and see what happens:

10: [: Illegal number:
Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0

Maybe I am a little slow, but I had to think on this for a while. Who said anything about allow_call_time_pass_reference? Look again at the first thing that php5 command is doing: loading the configuration file indicated by the -c switch. It is puking because there is an invalid configuration directive in php.ini! The above output is telling us that php5 is complaining about that, and the shell script in turn is complaining because it expects a number in the comparison at line 10.

Why is allow_call_time_pass_reference even there in the first place? Because it’s my habit to recycle php.ini across PHP upgrades so I don’t have to hand-edit all my settings again. I fixed that setting and tried again, then got another complaint about register_long_arrays, another configuration setting that is no longer valid in PHP 5.4. Both of these really are things I can do without, so good riddance. The lesson is that if you are going to keep an old php.ini, you should test it after an upgrade with a php5 command that does what this does: load the config, set error reporting to the max, and see what happens.

But getting back to the cron job:

09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete

Now it’s clear that -cmin was getting an empty string, which will make find choke. But cron doesn’t email me the error output because 2>/dev/null sends it into the void.

The thing that made this adventure so much fun is that the cron job was failing because the shell script was failing because the php5 command therein was failing because of an obsolete php.ini setting that had no relevance to sessions — several levels of indirection — and error suppression was making it all the harder to track down.

A final weird note: I never did figure out why I was getting exit status 127. I tried to recreate the scenario while writing this entry, and couldn’t get it to happen again; instead, I got exit status 1. Something was different. That’s one mystery I can live without solving.

Think before you “embrace change”

I can’t help but respond to this blog post that appeared on the website of the National Association of Judiciary Interpreters and Translators. Jennifer de la Cruz’ thoughtfulness and good intentions are commendable, but underneath all this positive attitude and cheer I detect the sickly spirit of pessimism and defeatism so deeply internalized that it is all but unconscious — hence the analogy between austerity economics and tornadoes. The latter may be partly anthropogenic, thanks to global warming; but the former is entirely so, and there is a good deal more we can do about it. Employment security, education, housing, health care, retirement security, and even the enjoyment of culture and leisure are — guess what! — human rights. The fact that those who point this out are regarded as Bolsheviks attests to how far our entire political culture has shifted to the reactionary right. We are expected to bow down and be grateful to The Man for our crust of bread. The trade unions, by and large, are collaborationists who clamor for a seat at the table where they can participate in the slashing of wages and the gutting of benefits.
So we are told to embrace change and be positive as this attack is going on. No. We need to work on our political consciousness, clear the clutter from our minds and see the big picture. You know the facts. Income inequality has gone through the roof even as we are told there is no money for frills like education and health care, even as Wall Street and the war machine are still lavishly funded courtesy of the taxpayer.
As we speak, the Federal Defenders in Manhattan — a first-rate squad of extremely hard-working, committed lawyers who represent indigent defendants in federal cases — are subjected to furloughs tantamount to a 20% pay cut with no reduction in work load. As we speak, millions of federal workers like your humble servant are in their third year with no cost of living adjustment, even as the cost of living itself has risen — a de facto pay cut. As we speak, public sector workers in the judiciary, and elsewhere, are being furloughed or laid off. There are, of course, innumerable other examples, many of them even worse.
Economic inequality of fantastic proportions, hideous social problems (including mass incarceration, of which court interpreting is but one of many spinoff industries), environmental destruction: the word for this grotesque condition is capitalism, a system where virtually by definition, the needs of people are subordinated to private gain for the few. What we need is a worldwide socialist revolution whose aim is to invert these priorities and place the resources of the planet under the democratic, rational control of the working class, by which I mean at least 90% of the world population. No one is saying this is going to be easy. But the alternative is far more dire: quite possibly, species extinction; at a minimum, further deterioration of your material conditions and a shitty future for you and your children.
Dear reader, if you are snorting “good luck with that revolution thing,” then let us return to where we started. Defeatism and pessimism will get us nowhere. Rather than bowing down and “embracing change” with pop-psychological cheerfulness, we should be planning ways to resist and fight back. One idea that comes to mind is what I call the counter-furlough. For every furlough day that is meted out to workers, every worker strikes for one day, furloughed or not, and not just in the industry of the afflicted workers, but as far across the economy as we can manage. This action should be organized not under the aegis of a union, but by ad hoc rank-and-file committees of workers themselves. Do not wait to be saved by reforms implemented within the Republican/Democrat political framework because that, truly, will never happen.
Yes there is enough to go around. Please think about this and use your imagination to envision a world in which things like employment insecurity, hunger and poverty are all but eliminated — change of the sort we can truly embrace. If you are curious to learn more, I invite you to check out the Socialist Equality Party. You have nothing to lose but your chains.

On Becoming a Marxist

I grew up as the child of liberal parents in the 1960s. One was an astronomer who was active in the women’s movement against the Vietnam war; the other, a musicologist then working as a journalist and book critic whose scholarly reviews were sympathetic to lefty and liberal ideas. Both were committed supporters of the civil rights movement. My father insists that our phone was tapped during those turbulent years. I think that’s uncertain, but by no means implausible.
After going through a more or less apolitical period in my teens and 20s, I gradually became a political animal, watching public affairs ever more closely. And the more I paid attention, the more I understood that notwithstanding the occasional battle won by progressive elements, the United States is fundamentally not a participatory democracy, but rather is ruled by the wealthy and corporations. Not coincidentally, wages for the many have stagnated over the past few decades even while total productivity has increased, and of course economic inequality has skyrocketed. These propositions are not controversial, but well established by objective data.
Meanwhile, in the realm of foreign policy, we’ve seen such monstrous criminal misadventures as the Iraq war, with complete impunity for its perpetrators. Now, under Obama — the darling of so many liberals — mass surveillance of the population, indefinite detention without charges, and assassination have become institutionalized in the name of the so-called War on Terror. On the domestic front we have rampant unemployment and underemployment; millions in debt servitude for the sin of attending college; mass incarceration on a scale unparalleled anywhere else in the world; no sign of serious response from the Obama administration in the face of catastrophic climate change; and the list goes on.

Financial deregulation, and the spectacular display of greed and corruption that ensued, resulted in the meltdown of 2008, coming around the same time that candidate Obama was absurdly being called a socialist by the far right. I began to think, would that it were so. Capitalism is a disaster for most of the world’s population. True, the middle class generally has done pretty well during boom times when there’s enough to go around, and with a labor movement driving some reforms. But with the hegemonic power of the USA in decline, those post-World War II days are gone. So long gone, in fact, that millions belonging to the generations born in the 80s and 90s have never experienced those Leave It To Beaver days of prosperity, as my friends at the Socialist Equality Party point out in lucid detail. Hereagain, this should not be too controversial a proposition. Even the cream of global elites get together for their conference in Davos to worry about inequality getting out of hand and causing severe unrest. In a sense, capitalism is the victim of its own “success.” The more rich and powerful the top layer gets, the more its rigs the system so it can grab more wealth and power — in a vicious circle that has long since gotten out of control. Hence the crisis of capitalism.

But I still didn’t quite get it. I was in what I now think of as my middle-class protest politics period. For years I gave what money I could to progressive causes; emailed and called my elected officials to urge them to this or that; went to street demonstrations. Weary from the Bush years, I dropped to my knees and voted for Obama in 2008 even though I well knew both parties were owned by big business. In 2009, the uproar broke out around Obama’s much-acclaimed, much-maligned healthcare “reform” legislation. I got involved in Single Payer activism, and even suffered the inconvenience of spending a night in jail for doing civil disobedience — sitting in at the offices of a large health insurance company.

Of course, all that effort came to naught. The healthcare fiasco provided an instructive example. There were four main guys in the House and Senate who advocated for Single Payer during the Obamacare debate: Bernie Sanders, Dennis Kucinich, John Conyers, and Anthony Weiner (before he was disgraced for emailing pictures of his dick). When the time came, each and every one of them sold out and voted for Obama’s massive bailout to the profit-driven private health insurance industry, a piece of legislation substantially written by its lobbyists. This is just one case, but it illustrates an essential point that I have since come to understand: reformism doesn’t work. Capitalism subjugates social need to private profit, and it requires inequality — that’s how it works. To paraphrase Leon Trotsky, capitalism itself has to be abolished, not reformed.

I wondered: what’s the alternative? I knew about socialism approximately as much as the average reasonably educated US citizen who grew up in the Cold War: not much, really. I had never actually read anything by Marx or Engels. I stumbled across the World Socialist Web Site, started reading it regularly, and became even more curious. I had never seen anyone state the political truth with such unrelenting bluntness. Who were these guys? Just as my theoretical curiosity was thus aroused, my father happened to lend me Why Marx Was Right by Terry Eagleton, in which he assures us that if you haven’t read anything by Karl Marx, no worries, this book makes a good introduction. (I have since talked with serious Marxists who scorn Eagleton as a “Catholic Marxist,” but the book was nevertheless a useful introduction.) Then I took the trouble to read some texts by Marx, Engels, Lenin, and Trotsky to see for myself what they actually say, and was struck by their prescience and continuing relevance. I followed up with some more current writings, such as David North’s In Defense of Leon Trotsky, The Historical and International Foundations of the Socialist Equality Party, and the SEP Statement of Principles.

Once exposed to a bit of Marxist theory, I began to get it. The history of human social organization goes from slavery-based societies to feudalism to capitalism to… what? It is by no means a foregone conclusion that capitalism is the end point of the evolution of human society (Francis Fukuyama’s famous, now discredited, assertion to the contrary notwithstanding). If it turns out that capitalism is the final word, it will be because the human species extinguishes itself under capitalism, most likely by way of environmental catastrophe, before it gets its shit together.

So what sort of world socialist society do I envision? One in which the wealth of the planet is utilized rationally and democratically, i.e., with the priority on social need over private profit and accumulation — the inverse of capitalism. If that sounds somewhat vague, it is. I haven’t mastered all the implementation details. If it sounds ambitious, it is; history teaches that the struggle has been and will likely continue to be long and bitter. If it sounds like so much dreaming, it isn’t. Dreamers are those who think the human species has any chance of survival under capitalism.

Martin Luther King once said “the arc of the moral universe is long, but it bends toward justice.” Although his statement may have been partly rooted in religious faith, there is some objective historical evidence that the principle is correct. A few centuries ago, genocide and enslavement were commonplace. Now world opinion is in general agreement that genocide and enslavement are wrong, and people get upset when they happen. Some day people will likewise look back at history to an economic system where the many — i.e., the working class — suffered and were exploited so that a few could become fabulously wealthy, and they will find it appalling and unacceptable, just as we consider slavery appalling and unacceptable today. In the future, the revolutionary Marxists of today will be recognized as having been ahead of their time.

Learning from the 2012 Brooklyn Half

On May 19 I had the pleasure of running the hugely popular Brooklyn Half Marathon. This NYRR event sold out within a matter of hours after registration opened, and had over 14,000 finishers. The race starts in Prospect Park at 7:00 a.m., a fact for which I was grateful despite the inconvenience of having to get out of bed around 4:00 a.m. to get there in time from South Orange, NJ. The temperature was forecast to peak at around 80° F but it was about 58° when we started — quite reasonable. I was happy to avoid another scenario like the 2012 Boston Marathon, where the punishing heat made us renounce all ideas of any goal other than survival.
My goal here was to crack 1:30:00 for the first time. (By way of background: I am a week short of 54 years old and have been running seriously for about four years, after over 20 years of consistent but casual jogging. In the grand scheme, a 90-minute half is not spectacular but it is entirely respectable.) My previous PR was 1:30:24 set on March 4 at the E. Murray Todd Half Marathon, which I treated as a tuneup and diagnostic for Boston. Two weeks after that I set another PR for the 10K distance, using that tuneup race almost as a substitute speed workout. I approached both of those races with an enthusiastic but reasonably relaxed, let’s-see-what-happens attitude which I think served me well. Both were among my more disciplined races, with an even, realistic, quality pace most of the way and a slight pickup at the end — and I had fun. Then came the debacle of Boston, a disappointment that took me a week to get over, after which I set my sights on Brooklyn as a way to get some revenge. The months of work that went into Boston had not been adequately rewarded; I wanted to cash in.
Three of us South Mountain athletes set out before sunrise by car to Manhattan, parked in a lot and took a taxi to the start, arriving with little more than sufficent time to dump our official plastic bags with our personal effects at the baggage check and start standing in line to pee. One or two ritual trips to the Porta-Potty were not quite enough for me this time. Standing in my corral for 20 minutes prior to the start I was having doubts about whether I had sufficiently emptied by bladder, which usually gets me through a half marathon without complaint.
We got underway, and Mile 1 went by in 6:43, several seconds ahead of my target pace, but not too bad.
Upon seeing some available Porta-Pottys I made the fateful decision to drain it, and ran a 7:21 for Mile 2. Not good. I was 12 seconds behind the pace and needed to pick it up.
Mile 3 was 6:22, way too fast. I hadn’t meant to make up the deficit in one mile but it happened anyway — my feet were doing that left-right-left-right thing a bit too frequently.
Mile 4: 6:50. I wanted to see a number between 6:50 and 6:52, so this was splendid.
Mile 5: 7:01. Disappointing, but my watch said a total 34:17 had elapsed, a few seconds ahead of the goal pace.
Mile 6: 7:02. Now I was behind the pace again, and not sure why. There had been some hills, but I didn’t think they should have slowed me down so much. Demoralized, I wished I had a Metrocard or cash on me so I could quit and take the subway to the finish at Coney Island, get my gear and go home. Instead I picked up the pace.
Mile 7: 6:32, way faster than intended. What happened to my discipline and self-control?
Mile 8: 6:46. Acceptable.
Mile 9: 6:58, several seconds too slow. I was now paying for the excess of miles 3 and 7, getting fatigued, and looking forward to getting this over with. It’s probably not uncommon for runners in this condition to squint into the distance in search of the next mile marker.
Mile 10: 6:54. A little slow, but my watch read 1:08:29. Still on pace to meet the goal if only I can hang on.
Mile 11: 6:50. Excellent!
Mile 12: 7:01. Shit. From here on I was trying to give myself the “run faster” command but could not get myself to obey. There was no part of me that hurt particularly, and I couldn’t determine which component was giving out: legs, lungs or will?
The final 1.1 miles took me 7:40, a 6:59/mile pace. There is a short, steep ramp up to the boardwalk that surprised me when I ran this course two years ago, but this time I was prepared and charged it with furious anger, exhaustion or no. Over the last couple hundred meters the motivation of seeing the finish in sight was enough to get me to stop obsessing at long last and run much faster than at any point hitherto. But it was too late: my official time was 1:30:01. I had missed it by two seconds.
Failure to hold the pace in miles 12 and 13 killed me, but the chain of cause and effect leads back to miles 3 and 7 in which I squandered too much energy, and further back to the bathroom episode which brought about my anxiety about recouping lost time. Further still, and we come upon the real teaching point of this experience. There’s no doubt that my fitness was good enough to run the course in 1:29:59, and experience shows that I am capable of executing a plan. So what went wrong? At Boston a spectator was holding up a sign that said “Running is 80% mental and 40% physical.” We got a kick out of the joke, but like most good jokes, it points to the truth. My successful races in March were ones where my attitude was more relaxed; I ran for enjoyment, not just to achieve goals. In the days preceeding this race I created too much pressure by vowing to redeem Boston, and added an extra, unhelpful layer of uncertainty and doubt. For best results, this sport of distance running requires you not just to tune up your physical fitness but also your head — your other 80%, if you will.
That brings me to the happy conclusion, after all this hand-wringing and overthinking. Next time I will crack 1:30:00 by 10 or 15 seconds, because there will be nothing to worry about: I know I can do it. And I still have ahead of me the pleasure of passing this landmark.
P.S: It was a successful day, my sloppy performance notwithstanding. I beat my previous PR by 23 seconds and came in 22nd of 363 in my 50-54 age/gender group. But that’s not all. Five of us South Mountain Runners were in the race, and three set PRs. The unstoppable running machine Lucky John Parry (rightmost in the photo) ran 1:21:50 and was 9th, yes 9th of 554 in the men’s 45-49 age group in this competitive, massive field. Our own venerable head coach Bill Haskins posted a 125:18, 29th of 948 M40-44 (on the left on in the photo); Hamish Wright (next to Bill), 1:24:43 and 29th of 1339 M35-39; and two other locals not shown in the photo ran strong.
But wait, there’s more. This South Mountain team was 9th in a field of 63 in the men’s 40+ category. Translation: we kicked some ass. And we look forward to going back and kicking some more.

I survived the 2012 Boston Marathon

In December 2011 I started 20 weeks of training for the Boston Marathon on April 16, 2012. For this my fourth marathon my goal time was 3:17 to 3:18, a two or three minute improvement over my person record (PR) 3:19:55 that I ran Boston in 2011.
For those not familiar with the marathon game: this goal represents not a spectacular but a thoroughly respectable time for a man in his mid 50s For context, consider that a world-class male marathoner will run 26.2 in a few minutes over two hours, and the guy who won the men’s 50-54 age group last year ran a 2:34:52 — preposterous, but conclusively demonstrating that it is possible. From my point of view, anything under around 3:10 is seriously kicking ass, and getting much below 3:00 is unfathomable.
At my modest level of experience one has already learned that it is unusual for a training cycle to go smoothly from end to end. Injury, sickness, extreme weather, or a personal or work-related situation of some sort will often present challenges in addition to the expected physical and logistical demands of the mileage. I was therefore grateful that this time my training had gone remarkably well — mild winter, no death in the family, no more than a few days downtime due to a cold in February. Then, in the days just preceding the race, the organizers saw the forecast for temperatures in the upper 80s and began to email dire warnings to race registrants. As the forecast temperatures rose, so did the tone of alarm in the emails. In the last of these they urged anyone who was not extremely fit to withdraw from the race, and those who did not should slow way down, forget about racing and treat it as an “experience.”
I grudgingly revised my race plan. The PR goal was abandoned; instead, I decided aiming for a Boston-qualifying 3:30 would be acceptable, a full 30 seconds per mile slower than my ideal. But fear and uncertainty set in. During the last two days I had an persistent, unpleasant feeling that I could not quite identify — until 3:30 on the morning of the race, when I awoke in my hotel room to the realization that my problem with this enterprise was simple: I did not want to do it. Running 26.2 miles in the high 80s has never been on my list of things to do in this life. I must have understood that while this was unlikely to end in catastrophe, it was certain to be truly painful — even more so than your typical marathon effort. Hence my fantasies about running away rather than running the race.
We have a robust community of accomplished distance runners in the area where I live, and one of my running companions was also in this race — I’ll call him Patrick. When I mentioned to him that I was tempted to bail on the project, Patrick reminded me that we aren’t just in this for ourselves. All of us support and encourage each other so strongly that we are invested in each other’s success. I was never entirely serious about walking away, but this strengthened my resolve. It takes character to be insane.
The nervous early hours of race day morning went by quickly, and then we were in the starting area, already sweating in the sun at 10:00. The Boston Marathon has upwards of 20,000 runners, so the start is staged in three waves which in turn are organized into corrals based on expected pace. My friend Patrick and I were both assigned to the first corral of Wave 2. Patrick is similar to me in age, but a substantially faster runner, so I was pleasantly surprised when we spontaneously decided to run together. And off we went, at a pace a little below 8:00/mile for the first several, largely downhill miles, thinking this sufficiently conservative.
The first 10, 12, 13 miles went by in reasonable comfort. No longer attached to PRs, we made the ride as fun as possible, engaging with the crowds, entertaining ourselves, watching out for each other. We drank copious amounts of water and Gatorade, as did everyone; around the hydration stops we kicked our way through masses of discarded Poland Spring cups. We also dumped countless cups of water onto ourselves; our clothing, shoes and socks were saturated most of the way. And our 8:00/mile gradually gave way to 8:15, 8:30, 9:00, and beyond as we let the conditions dictate the pace.
Our friend and coach — let’s call him Bill Haskins — was monitoring our progress from afar via the Athlete Alert service, which sends to your phone or email address a snapshot of a runner’s pace and time as of 10K, 13.1 miles, 30K, and finish. Every time Patrick and I crossed one of the electronic timing mats together, I drew deep satisfaction from knowing we were sending the signal back home to Bill that his runners were hanging tough, and hanging together.
Around mile 17 the course takes you through about four miles of what are called the Newton Hills, the last of which is known as Heartbreak Hill. We ground our way up the first hill at a moderate but steady pace, and I felt encouraged. I was experiencing some pain, but nothing too extreme.
By the top of Heartbreak I felt like shit, and struggled to hold a pace faster than 10:00/mile. Every step was pain from my hips to the soles of my feet. I wondered if there might be some way of putting my foot down that did not hurt. In retrospect I realize there is indeed such a method: it’s called walking. Thousands of people were doing it, but we never seriously considered it an option.
A couple miles after Heartbreak, Patrick was suffering even worse than me; he bade me go forward without him, and I reluctantly complied. At long last, the right turn onto Hereford Street, then left onto the final stretch of Boyleston. For the last quarter mile I managed to increase my speed to something comparable to the 7:30 I had originally dreamed of averaging, and crossed the finish in 3:43:41. Unable to decide whether to puke or pass out, I did neither. Patrick showed up about a minute and a half later. We greeted each other with the greatest high five of all time, then staggered onward together to collect our medals and head home.
All of our running friends commended our courageous performance. It is gratifying that we had the fitness and the fortitude to get through this with dignity, and the intelligence to manage our pace and hydration well enough to avoid the hospital. But in terms of absolute performance, it was a terrific frustration and disappointment. Nobody wants to train for 20 weeks and 1000 miles just to be thwarted by a one-day spike in temperature (the days following and preceding were of course much cooler). The post-race challenge for me has been to get my head around what happened, accept it, and move on. This too, I realize, is part of this strange and wonderful sport of distance running.

Highlights from 2011

Here are a few salient events from another interesting year:

  • I won myself a trophy for third place in my 50-54 age/gender group in a half marathon in Monmouth County, NJ. This is remarkable because it was not long ago that the very idea was inconceivable. The trophy itself is hideously ugly, but I am glad to accept it nonetheless.
  • I ran my third marathon, in Boston. In short, it was a successful and rewarding venture. See this report if you want the gory details.
  • I won my age group in not one but two local 5K races — small ones, but still… The second was noteworthy because I was actually disappointed in my performance, feeling sluggish and uncomfortable and posting a slower time than I thought I should. Winning my age group and still not satisfied — have I lost my mind?
  • My stepfather died at the age of 93, in March. He was an accomplished astronomer who led a long and productive life, and is remembered with great admiration and affection by hundreds of people.
  • In May I crashed the shit out of my car, with two of my kids in the back seat. It wasn’t good, but could have been far worse.
  • My uncle died at the age of something like 88, in August. He too was a smart man who managed to get through his long life pretty much doing as he pleased, founding and running a successful aerial photography business.
  • One of our cats, Master Lin-chi, used up a couple of his lives. First he disappeared for a full week, during the summer. He had us grieving and stapling flyers to trees all over the neighborhood. Then he walked into the house, skinny and filthy but very much alive. We have no idea where the hell he was.

    As if that wasn’t enough, he then surpassed this performance by surviving an encounter with a car with nothing more than some bruises and abrasions. I took him to the vet (and what a splendid vet he is, Felix Escudero at the emergency clinic in Bloomfield, NJ) who pronounced him OK.

    I don’t remember if it was before or after that incident that I called him to come home one evening, when he hadn’t been seen for 24 hours. When he still didn’t show up I called a little louder, and heard a faint whimper in the distance. Following the sound, I located him in the back yard two houses away, trapped in what’s know as a “Have a Heart” trap — a cage that automatically closes when an animal enters to get at some bait, stepping on a metal plate in the process. It seems that our neighbor had set it to to catch some other creature that had been giving him grief, and then saw fit to leave for the weekend. Thus Lin-chi sat with no food or water, next to a little pile of his own shit, until I rescued him. I got him out and otherwise left the trap as I found it, shit included.Master Lin-chi

    (You may say, obviously this cat should live entirely indoors, and I wouldn’t disagree. But it’s not an easy policy to enforce, and I am of two minds about the issue of letting cats go outdoors — a topic for another day.)

  • Like so many others on the planet,we endured extreme weather, including tough snowstorms, a brush with a hurricane in late August, and a seasonally inappropriate winter storm in October that left us without power for a full five days.
  • Our four kids got a year bigger, all them thriving and developing and fascinating my wife and me.
  • My lovely wife and I observed another wedding anniversary, and are still crazy about each other. It’s a glorious thing.


when you awaken at some ungodly hour
ease your way around your dreaming spouse
to sneak through the house like a thief
and put on your running shoes
and even the cats look at you
as though you’ve lost your mind:
you will ask
why am I doing this?
because when you begin to run
down the street
your footsteps will echo
off the sleeping houses.