Helping When You Can’t Help Enough

Paul R. Potts

22 Sep 2019

I am a little bit startled to find that I have fourteen subscribers already! It reinforces my suspicion that people do often read my tweets and Facebook posts, although ninety-nine percent of the time I get no feedback to tell me this, so it often seems like I’m babbling into a barrel.

This week I want to write a bit on the subject of trying to do good – that is, trying to be one of those goddamn Social Justice Warriors or Do-Gooders – in a culture that has largely come to see such efforts as suspect, if not downright reactionary and harmful. Really, it’s an ideal way to receive the disdain of both self-identified conservatives and self-identified liberals, and to hear first-hand how their criticisms are nearly identical – a perfect example of how neoliberalism makes horseshoe theory real.

But first, a little bit of news from the past week.


It was a pretty good week at work and a pretty good week with the kids. Elanor, our two-year-old girl with Down Syndrome, had an appointment with the Pediatric Neurosurgery department at the University of Michigan. They were examining her to see if she had any of the issues with her cervical vertebrae that sometimes affect people with Down Syndrome. It turns out that her spine looks fine. It’s a fine spine. So there’s no need to handle her with kid gloves, as far as keeping her away from tumbling or rough play, which is good, because I’m not sure we could keep her from diving off things and over things and wrestling with her brothers even if we wanted to. The doctors will want to examine her in a few years to see if anything has changed, but for now her neck looks great.

Unfortunately the office was running two and a half hours behind schedule, so Joshua missed his second orthodontics appointment, but we were able to reschedule that.

By mid-week I had a bit of a low-grade fever and sore throat. Grace fed me some homemade elderberry tincture, and that helped, but I was definitely fighting some kind of a virus. So I took Thursday off to stay home and try to get some extra sleep. I really have to hoard my paid time off, since I don’t get very much. I have eight days left, which, I think, will allow me to take off the last two weeks of the year. I didn’t really have any sort of vacation this summer at all, unless you count Labor Day Weekend.

I felt well enough to go in on Friday, but by late Friday afternoon, when I made my usual run to Costco for groceries, I was definitely dragging.

I should mention the car. For the last few years we’ve been driving a Tahoe. It made it to almost 300,000 miles, but unceremoniously died without warning when it developed some kind of internal oil leak that didn’t set off any of the sensors or warning lights until it was too late. So over part of the last year we were getting by with one car.

On the day we managed to complete the sale of the old house in Saginaw, Grace and I were sitting in the parking lot getting paperwork sorted out when the phone rang. It was some friends of ours, and they were calling to invite us to come to dinner, and also to offer us a 2010 Suburban. Just, you know, casually and out of the blue. So suddenly we had a car that will hold everyone again!

We’ve had some warning lights and Grace had a small oil seal leak fixed the last time we got an oil change. This past week I noticed that it had a very rough idle. So, we had it looked over on Friday. The news wasn’t good. The rough idle problem, which I had been worrying about a lot, wasn’t actually anything very serious. But the engine is leaking many different bodily fluids: power steering fluid, transmission fluid, horn fluid (OK, I’m kidding about that last one). A whole lot of boots and seals are in bad shape. There’s a sway bar link actually missing. The brakes are in bad shape. This morning Grace and I went out to see it and the mechanic had us walk around underneath it and take a look at everything with a flashlight. I was startled by how corroded everything looked.

The 2003 Tahoe was, I think, built out of better parts – literally, out of a better grade of steel that wasn’t quite so prone to rust. It seems similar to the difference between my old Plymouth Reliant, and my Hondas. The Reliant needed brakes every two years and a new muffler every two years, and not just the muffler – whole chunks of the exhaust system kept rotting out all the way up to the engine. After that I had a Honda Prelude, and I’d take it in every year to have the brakes and exhaust system inspected, and they’d always say “it looks fine; there’s really nothing you need to fix.” The situation with my 2003 Honda Element has been similar. It’s been my daily drive since 2015. I’ve put over 60,000 miles on it. It’s needed barely any repairs.

The Suburban needs a lot of repairs. It’s had a lot of regular maintenance deferred. However, most of it doesn’t look like the kind of problem that is going to leave us abruptly stranded by the side of the road, so we’re going to have the brake work done, and nothing else at the moment. Maybe we’ll try to get a second estimate on some of the other work.

It’s Saturday evening. This morning I woke up before dawn and went into the bathroom. I didn’t have my glasses on. I sat down on the toilet. I noticed that the toilet was wet. I thought that maybe one of the kids had peed on the seat. Then I noticed that my foot was wet. I got up and turned on the light. It turns out that the toilet seat, and the floor around it, was covered with vomit. Someone had come in during the night and sprayed dinner all over. I’m shocked because I’m a very light sleeper; this all happened very quietly.

So, that’s how our morning went.


These paragraphs gets a little bit techical (OK, a lot technical), so skip ahead if you are uninterested.

Things have continued to go pretty well at my job. I’ve been writing low-level C code for a small microcontroller that is going into a forthcoming Thorlabs product. By “small” I mean that it has 48 pins, 64KiB of SRAM, and 128KiB of flash memory. I’ve also worked with much smaller chips recently, including one that has only 32 bytes of SRAM, but which can still play a very useful role in a product.

We have a framework of code for bigger a bigger chip, with eight times more flash memory and twice as much SRAM, but because this one is so much smaller and slower, I am revising it heavily as I port it. A few years ago we hired a contractor to write the bootloader for that product. It worked, but it was ugly, and it used way too much memory, so I’ve taken the opportunity over the past few weeks to completely rewrite it. So there’s a new flash memory driver layer, with an interesting feature: because the chip itself has a built-in page buffer, it is possible to write this driver without using any large memory buffers at all. It has an “incremental” API that lets me send data to flash memory word-by-word, and when the page buffer is full, it writes it. This is incredibly useful because it allows me to feed the chip an updated firmware image right across a wire, either over USB or a serial cable, and I don’t have to have enough memory to hold the whole thing before writing it to flash. it is streamed to flash the way that you can stream TV shows now.

Updating the program while the program is running is a kind of juggling act. I have three main areas of flash memory. The smallest one is the bootloader. That’s what always runs when you turn on the chip. The bootloader looks to see if there is a usable application in flash memory. If so, it jumps there. If not, it waits for you to install an application. So the second area of flash memory is where the application goes. The third area is a backup application. It works like this: when the bootloader is running, and I send the chip a file containing a new application, the bootloader first streams it into the backup area. If all the checks and verification steps pass, then it copies the application from the backup area into the main application area. If that all goes well and all the checks and verification steps pass again, then the chip is ready to run the application.

The idea is that even if certain things go wrong, like installing the application fails, it should always be possible to reboot the product and try again; the device should never be turned into a useless brick. In theory, at least.

The fourth area of flash contains “metadata” – information about what is in the backup area and the application area. The chip can use this to verify, at startup, that everything looks OK when it powers up. If the application is bad but the backup application is good, it can copy from the backup to the main area. If both are bad, it can flash an LED to indicate that the device needs to be reprogrammed.

All this is possible because the chip can run code out of one area of flash while writing things to a different area of flash. So it isn’t quite like changing the tablecloth and dishes out from under the people who are eating the meal; it’s like setting up a meal for people in the next seats over without disturbing the diners.

But what if you need to update the bootloader itself, the thing that you are running? This actually can be done, but it is tricky; you can load parts of the code into SRAM on the fly, and then erase the flash where that code was, and receive a new bootloader over USB or serial. Essentially, you lift everyone’s plates off the table while they are eating, and replace everyhing on the table, and hope like hell that no one drops anything.

Did I mention this is tricky? In fact, it’s generally not advisable, so it probably won’t be included in the product. At least, not in the first version. The problem is that if the battery goes dead or the power goes out during the update, the user will have a brick, and will have to send it back to us to fix. But on the other hand, writing tricky code like this is just the kind of programming challenge that sends shivers of joy up and down my spine, so I might try it at some point, if only for my own edification.

This whole layer of the code doesn’t really contain any proprietary algorithms or special sauce that makes it unique to this product. I’d like to think that my implementation is uniquely clever, though. I’d love to be able to open-source this layer of the software. I’m thinking over how to approach my bosses about that possibility.


It’s been quite a week. There’s another round of Russiagate going around; Ukrainegate, now? The Very Qualified Pundits are all saying that this time, the President’s behavior is Surely so Very, Very Egregious that it will Indeed Be Necessary for Someone to Do Something.

I’ve been vocal in criticizing this point of view for a long time. President 45 has been in violation of the Constitutional strictures against corruption since his inauguration, and he’s certainly been guilty of all kinds of financial crimes since well before that. The emoluments violations alone are impeachment-worthy. Any “resistance” or “opposition” worth the name would have opened up impeachment proceedings on day one.

There’s a scene in The Return of the King, the movie, in which Denethor has lost it and is running around Minas Tirith screaming “Run! Run for your liiiiives!” as Sauron’s massed forces approach the city. Gandalf comes up behind him and clunks him over the head with his staff, giving him a look of both pity and disgust as he topples. Then Gandalf starts issuing orders to defend the city, and everyone knows that finally – FINALLY – someone wise is in charge, and things are going to be very hard, but there is hope for the future.

An awful lot of folks who should know better seem to still believe that there are Adults in the Room with President 45, and at some point he’s going to say something egregious enough to cause one of these Very Serious Persons is going to say “you’ve gone too far, sir!” and do the clunking-over-the-head routine, and President 45 will loudly fill his adult diaper and go down in a heap, and everyone will cheer. Gandalf will start issuing orders, and we’ll get back to the business of steering the great Ship of State.

This shouldn’t be news to anyone, but that isn’t going to happen, and I really wish the pundits would stop pretending. If the Republican candidates are the Uruk-Hai, the orcs bred by Saruman, the Democrats are all, somehow, variations on Grima Wormtongue. The media is united in complaining about how, despite drawing huge crowds at all his public appearances, Gandalf should drop out because he’s a raging misogynist and shouts all the time. And besides, he’s never held a real job.


The world is changed. I feel it in the water. I feel it in the earth. I smell it in the air. Much that once was is lost; for none now live who remember it.

Sean Spicer went on Dancing with the Stars to flounce around in a chartreuse blouse. That’s a thing, that happened. And Nancy Pelosi remains opposed to impeachment, saying

The Founders could never suspect that a president would be so abusive of the Constitution of the United States, that the separation of powers would be irrelevant to him and that he would continue, any president would continue, to withhold facts from the Congress, which are part of the constitutional right of inquiry.

Got that? We can’t impeach this President because his abuses of power are so egregious that he’s made it impossible. But also,

She fears it could alienate swing voters ahead of next year’s elections and imperil moderate Democrats who were critical to her party’s taking back the House last November.

Ah yes, that all-important large population of “swing voters,” voters who would really like to vote for a Democrat next year, but will find themselves unable to do so, if the Democrats impeach Trump.

And she wants to write some explict laws about indicting sitting presidents so that we’ll have “some laws that will have clarity for future presidents.”

It’s good to know where we stand.

Helping When You Can’t Help Enough

Last week I mentioned taking in guests. Grace and I have long wanted to live in intentional community of some sort. She’s always been inspired by Dorothy Day and the Catholic Worker movement. We’ve opened our home to people a few times, but we never could get much traction on this sort of project in Saginaw.

Shortly after moving into our new house Grace heard through her grapevine of friends that a young woman with children needed child care while she gave birth to her next child. We met with her and we kept her kids while she gave birth. A few months ater we learned that she was being thrown out of the shelter where she and her children were staying, because they had a strict time limit on residency. So we offered her our upstairs.

We thought that this arrangement might last six months, while she and her boyfriend got back on her feet.

It didn’t work out that way. Eighteen months later we put her and her kids on a plane to to California, to another situation that will likely be temporary. Trying to help her and her kids had turned out to be a far harder and more daunting project than we planned, for us, and for her, and for her kids. And hence the theme: helping, when you can’t help enough.

We couldn’t get her and her kids into a house or apartment. It wasn’t for lack of trying. Grace was in touch with every social services organization we could think of. The best we could do was to get her onto waiting lists, some years long. There was no chance, we learned, of getting her housing assistance within Washtenaw County.

It was all we could do to try to patch together some of the egregious holes in the public safety net – to help her navigate getting and keeping food benefits and medical benefits. The medical benefits were particularly important; on a tight budget ourselves, we simply couldn’t manage being on the hook for arbitrary medical expenses, which included another birth. The “holes” we had to patch up included being on the hook for the expense of emergency dental surgery, despite our best efforts to help get her care via the University of Michigan Dental School and other local organizations that could allegedly provide this kind of care for someone who could not pay for it. (If you don’t know, the “dental care loophole” in most health insurance coverage is big enough to shove a debilitating or even fatal infection through).

A lot of the story of the mother and children who stayed with us isn’t really mine to tell, though. So while I feel like a lot of the specifics are interesting, and it really should inform our thinking as to what kind of help we can offer people in the future, I’m instead going to write about another guest, who is something of a public figure.

[Note: although it appeared in my e-mail newsletter, I have removed a section of text from the publicly available archived version, to protect the anonymity of our guest.]

A Distinct Lack of Succinct Conclusions

So, what has this taught us? I have reached very few concrete conclusions. One of them is not even a conclusion. I opened discussions with both our guests trying to get clarity on what we were offering and what we weren’t. I feel like what we were offering was so simple and yet so radical that it was difficult to understand. We offered them a place at our table alongside our family. We weren’t able to offer them their own tables, or their own refrigerators, or kitchens, or apartments. We weren’t offering to be landlords. We wound up being a ride service sometimes, although we could barely keep our cars going enough to meet our own needs. We wound up being amateur social workers sometimes, although we weren’t qualified to play that role. I still think of it as exactly what I said: a place at the table.

It’s hard, to be honest, to join the Potts family for dinner when there are eleven children also at the table. Not many adults who aren’t already parents of young children would want to willingly subject themselves to that. But from the beginning I felt it was very important that we eat together, at least sometimes, because that was the forum and context in which to talk about food, and the acquisition of, preparation of, eating of, and cleaning-up of food is to me the core of a shared community; in fact, just about everything else branches outwards from that. We tried to share other activities, including chores, and things like movie nights, but the sheer number of children involved always made that very demanding. It’s hard to organize just about anything when there are toddlers and newborns all bringing the chaos that toddlers and newborns bring; we had six children in the house under the age of five.

I’m still scratching my head wondering what to do in the future. I hope to have both more and less to offer guests in the future: more order, less chaos, more peace, less noise, more help, less trauma, more experience doing this kind of thing, less confusion, and more resources to do it with – and I hope we can do it better.

One Good Thing: the Citations Needed Podcast

I’m running short on time this weekend and already in the neighborhood of five thousand words, so I’m only going to include one good thing. I want to mention one of my favorite podcasts, the Citations Needed podcast. If you know how to use an RSS feed, you can find the actual podcast feed here – put that link into the window that pops up when you select “Subscribe to Podcast” in iTunes, or some other program that can handle podcasts.

I have not listened to all that many episodes of this show, and they engage my interest unevenly, but I would like to point out several that I think are especially good.

Episode 64 is about Mike Rowe, subtitled “Mike Rowe’s Koch-Backed Working Man Affectation.” If his persona has always rubbed you the wrong way, the way he has rubbed me, you might be sympathetic to this takedown, describing how,

“Through a clever combination of working class affectation and folksy charm – often exploiting real fears about a decline in industrialization – Rowe has cultivated an image that claims to be pro-worker, but primarily exists to line the pockets of their boss.”

I also really enjoyed episode 72, about Jon Stossel and his career. I grew up watching him on the television show 20/20 and always found his libertarian perspective repugnant. This episode describes how

“With hour-long specials and a weekly segment on the ABC program 20/20, Stossel built his brand as muckraking Truth-Teller against Big Government and out of control”political correctness”, along with an empire of high school “educational” videos, distributed by libertarian billionaire-funded front groups to tens of thousands of American classrooms.”

Episode 77 was also very good. It’s about the ideology of shaming those in poverty, particularly millennials, and the false claims made about their allegedly extravagant lifestyles:

“Everywhere in American media we are told if only we engaged in simple, no-nonsense discipline we can retire at 35… but what is the political objective of this popular mode of journalism? More than just generating clicks to sell investment instruments to the credulous, this genre has a distinct ideological purpose: to obscure generational poverty, largely brought on by the legacy of racism and Jim Crow, and make being poor the result of a series of moral failings rather than a deliberate political regime decided on by powerful actors.”

It’s not all about unearthing the libertarian billionaire backing of so-called conservative figures, although that is truly a rich seam to mine, since there is so much money involved. Citations Needed covers plenty of other topics, and I recommend the show highly.

Until Next Week!

This morning’s homily was on the parable of the Dishonest Servant. We read that to our kids last December, when we read them the book of Luke. It’s a hard one to understand fully. Fortunately our priest at St. Joseph, Fr. Pieter, is actually a theology instructor, so he did a nice job of explaining what we know about the meaning of the parable and what we don’t. That ambiguity and complexity makes it one of my favorite parables to ponder, but one part at least is unambiguous:

No servant can serve two masters. He will either hate one and love the other, or be devoted to one and despise the other. You cannot serve God and mammon.

I was thinking about this today, as I read about how Mike Pence visited Mackinaw Island, and brought a phalanx of black vehicles to the traditionally car-free resort.

It’s Sunday afternoon, and we’ve got to get laundry done, and get a plan together for dinner (some delicious heirloom tomatoes will be involved), and then in a few hours I have to run our oldest daughter out to her church youth group meeting, so things are going to get busy shortly. I hope you have a great week!

About This Newsletter

This newsletter by Paul R. Potts is available for your use under a Creative Commons Attribution-NonCommercial 4.0 International License. If you’d like to help feed my coffee habit, you can leave me a tip via PayPal. Thanks!

Subscribe via TinyLetterYear IndexAll Years IndexWriting Archive