For lists of topics discussed in these weekly posts, see the 2018 index. At the bottom of that page, there is an essay which introduces this writing project, entitled “2018: My Year of Writing Maximally.”

2018 Week 2: The Week Ending Saturday, January 13th

Paul R. Potts

Monday

I didn’t get anything written yesterday, so here’s what happened: I slept late. Grace and I got up and I was going to make bacon and pancakes, but the kids had already gotten sick of waiting and made an oven full of fish sticks. So we had words about that — that was another dinner planned for this week that they ate up. I wound up doing some kitchen cleanup and then making the bacon and pancakes anyway. As the kids get bigger we are constantly having to adjust to how much food they want to eat. Our budget says we have to eat our planned meals, but their appetites say differently. And then there’s the arguments about foods, when we make a nice planned dinner and two of the kids won’t eat any of it and want to eat something else. This is all parenting 101 stuff, but with six at home we keep going through the same things, as new kids progress through the same stages.

Grace and I managed to get out for a while, with baby Elanor, to a Democratic Socialists of America meetup at the Common Cup Café on central campus. We met some friendly folks and tried to get a sense for what the Huron Valley chapter of the DSA is up to, and whether we might want to join with them and participate in some of their activities. I was also just looking to network, particularly for the purpose of finding guests for the podcast. I’m not naturally good at networking, but I’m trying. So we had back-to-back networking and organizing meetings on Saturday and Sunday.

A Fiestaware Festival

As planned, after that Grace took Veronica and Joshua, the kids who were getting most stir-crazy, and drove back to our friend’s house to pick up the Fiestaware. She brought home over 100 pieces!

This is an incredible haul. Of course, we don’t need this many pieces, but the big benefit is that there are a lot of duplicate pieces, so we can feel better about actually using the Fiestaware for everyday meals with the kids. We have had some in the past, but it was put away, because the kids were breaking so many pieces it felt like they were really blowing through a substantial amount of money. I think at one point Veronica was carrying a stack and they slipped from her hands, and so she broke 3 pieces at once. That may have been the incident that triggered us to put them away in boxes.

They are mostly the usual plates and bowls, but there was a butter dish with a broken top, a broken cup, an undamaged sugar and creamer set, and a spoon rest. I have glued the top back on the butter dish and glued the handle of the broken cup, and they are drying. I am a bit doubtful if they will hold up to actual use, but we’ll see.

All of these pieces are, we’re pretty sure, “modern” Fiestaware, that is, lead-free (and uranium-free). I think they are all from 1986 or later. Almost everything is stamped “lead free.” (Per some articles I’ve read, that means they are all dated to 1992 or later.) There were some vintage pieces including the old ivory color that we were not so sure about, including some with no visible maker’s mark at all (which I think may have been Fiestaware knock-offs, although I am not 100% sure of that). We left those behind. Grace’s favorite color is peacock, a rich blue color.

Note added in editing, September 28, 2018: when I first wrote this, Grace thought the color she liked so much was was the one called peacock, but it turns out that peacock (2005-2015) is a much brighter blue, almost a robin’s egg blue. We have a few pieces of peacock, but the color of the pieces she likes so much is actually evergreen (2007-2010).

I don’t have a single favorite but I am very partial to the one they call claret. That color was apparently only introduced in 2016. We got some other retired colors, including persimmon and plum. There were so many pieces that just running them all through the dishwasher took two and a half loads.

For now they are going into storage downstairs with our existing (recently purchased) Fiestaware (a much smaller number of pieces). There is not room for them in the kitchen cabinets. But at some point we will get our kitchen/dining room shelving needs sorted out, and we’ll figure out which colors to put into circulation. Personally if I’m setting a table, I like to mix them up, making color combinations that some might not consider “tasteful,” or even “sane,” but that’s just me.

So far, we have not made an attempt to date and catalog every piece but I’ve been taking pictures as we wash and sort them, so we’ll have a de facto inventory.

We had pork chops and steamed cauliflower for dinner last night and managed to make it to the latest possible Mass in the area, at St. Mary’s student parish. We stayed up way too late, but that’s what happens when we try to get so much done on a weekend. The kitchen is kind of trashed. For our bedtime story, I finished re-reading the first chapter of The Hobbit. My throat is still a little touchy and I have to stop periodically to cough, but I seem to be coughing up less gunk.

Breakfast was black coffee, two fried eggs, and some leftover mushrooms and onions. It has warmed up dramatically, and is now over the freezing point. It is supposed to break fifty degrees on Thursday. My windshield washer pump started working again. It was apparently frozen up. That shouldn’t have happened — the wiper fluid is supposed to be good down to well below zero, and the half-used bottle I had stored in my car did not freeze. My best guess is that maybe the repair shop refilled my washer fluid with plain water, which wasn’t resistant to freezing. Grace had the same problem with her wiper fluid, and both cars were serviced in the same shop shortly before Christmas.

I see my doctor again this evening.

Tuesday

I went back to the doctor. I seem to be doing gradually better. Overall I’m coughing up less gunk, but it has been a very a gradual improvement. I still have brief coughing fits during the day, and they sometimes involve “whooping” sounds. I still have discomfort in my chest. This varies from day to day, but it still always feels tight, and it is difficult to fully exhale, and trying to exhale fully brings on coughing.

Since I’ve turned fifty, I got a prostate exam, and my doctor ordered a PSA test. I got a flu shot, too. So last night my asshole was greasy and my arm was aching. (Sounds like I just got back from quite the party, eh?)

Fiesta!

Yesterday during the day Grace brought all our old Fiestaware up from the basement, and we put our old pieces together with the new stuff we brought home on Sunday. Wow, it is a lot. The combined collection is an embarrassment of riches, honestly. We could have packed them up immediately, but we left them all sitting out organized by color. It’s somehow just very fun to have all these extra colors in the house for us to look at. They just aren’t colors one sees every day, and especially in January, it is both soothing and stimulating to have this extra color in the house, if that makes sense. It’s an optical antidepressant!

I’ve never been really into the visual arts all that much, and I usually try to spend as little time as possible thinking about things like the color of my clothes or paint colors; my work environments are mostly pretty neutral in tone. But I have to say that I love these colors and I look forward to the day we can have them on display in our kitchen or dining room, and set our table with them frequently.

I know just a little bit about ceramics because my mother taught ceramics as an occupational therapist, and I made some pieces as a child. I remember how the glazes I would paint onto the partially-fired pieces were grayish and dull, and how startling it is to see these dull glazes after they are changed into their final brilliant colors by the heat of firing. I know just enough to realize it must be quite challenging to get these beautiful colors to turn out consistently from batch to batch. I know it was often the case that pieces my mother made would surprise her when the glazes didn’t turn out quite as expected.

There must be people who work for the Homer Laughlin company whose jobs are all about achieving this amazing consistency and vibrancy of color. Some of the processes developed are probably trade secrets. The pigmenting elements used in in ceramics include aluminum, cadmium, calcium, boron, selenium, platinum, copper, iron, chromium, cobalt, tin, cesium, manganese, zirconium, titanium, zinc, vanadium, antimony, nickel, tungsten, yttrium, and even silver and gold — oxides, salts, borates, carbonates, halogenides, colloids, etc.—all kinds of compounds which are very sensitive to firing conditions. And not all of these are actually food-safe, so there must be many beautiful colors that aren’t suitable for dinnerware.

I think the factory tour would be très cool. Maybe we can do that someday.

As I mentioned, I really like claret — it’s a very rich reddish color, like an aged red wine, and Grace really likes evergreen. Some colors can be hard to distinguish. Juniper (1999-2001) is very close to evergreen. Apparently the parsing of fine variations between all the Fiesta colors, old and new, is a deep, deep online rabbit hole, and I don’t really want to go that far down it, but damn, these colors are beautiful. The Homer Laughlin company does not seem to have pictures of the whole spectrum of Fiesta colors on their web site. It looks like they have left that madness to the fan and collector sites. The closest thing I found online to a complete color chart, including all their historic colors, is this page from Texas Cooking. And this page has thumbnails of all the colors introduced since the company’s 1986 revival.

All together, when we combined our existing dishes and the estate sale haul from this weekend, we found that we have 19 modern colors. There are two single pieces in our collection that seemed like they did not quite match any of the modern colors, although it was hard to tell under the LED lighting in our kitchen. But this morning in daylight, the colors were much more distinct — and the difference daylight makes is quite dramatic. We’ve got three modern shades of green (lemongrass, chartreuse, and shamrock) that are quite distinct, and an older yellow-green gravy boat that is not quite any of these other greens; it is vintage chartreuse (1951-1959). We’ve got representatives of a number of blue shades, too, including cobalt, periwinkle, turquoise, and sea mist. Really, I think sea mist could be called either a green or a blue, as it is right on the line between the two, and whether it looks more bluish or more greenish depends a lot on the what kind of lighting you have. We’ve also got a single creamer that does not quite match any of them, and its color is vintage turqoise.

Disclaimer: looking at the names and pictures of the different colors online, they seem to vary a lot — color reproduction on the web, on a typical computer and with a huge variety of digital cameras in the chain, is just not as precise as one might like. So I should admit I am not entirely sure I have them right. After all, the plates and bowls don’t have the name of the color printed on them. But after picking through a lot of pictures online, I think we have determined that we have the following colors — all modern, post-1986 revival colors except for two vintage colors:

  1. peacock
  2. claret
  3. cobalt
  4. rose
  5. apricot
  6. tangerine
  7. sunflower
  8. daffodil
  9. marigold
  10. persimmon
  11. lemongrass
  12. chartreuse
  13. shamrock
  14. periwinkle
  15. turquoise
  16. sea mist
  17. vintage chartreuse (just one piece)
  18. vintage turquoise (just one piece)
  19. scarlet
  20. plum
  21. evergreen

While they are almost all modern (from 1986 or later), quite a few of the colors are retired, including rose, apricot, persimmon, chartreuse, and peacock. With my naked eye, by daylight, the colors are pretty distinct, but when I take a picture of them next to each other, it seems like in the resulting picture on my iPad or cell phone the distinction is not as clear. And some of the colors on the screens look very noticeably shifted from what the eye sees, especially the red tones (film photography also has difficulties with some red tones). There are a few more colors I’d like to have, eventually, like chocolate (2008-2012) and the rich blue sapphire and lapis colors, but I’m not in any hurry.

Finally, I should point out that no, none of the red pieces in our collection are the beautiful orange-red colors that contained radioactive uranium or depleted uranium oxides — although I would love some of those pieces to keep behind glass on display, or to use for science class. But people get collectible prices for those pieces now, and the whole point of this estate sale haul was to take home a big trove of beautiful dinnerware for a bargain price.

Even some of the colors other than orange-red, such as ivory, contained uranium. We decided to err on the side of caution and leave some vintage ivory pieces behind, when sorting through the estate pieces, because some of the old colors could leach uranium or lead when used. There are still plenty of very pretty colors that can be achieved without using uranium in the glaze, although those vintage uranium-based colors really are gorgeous. And finally, in my reading, I learned that Fiesta was not the only brand to contain uranium oxides in its glazes — not by a long shot.

Lost Backup Drives

Somehow during the move, I seem to have lost a few items. I am not sure exactly what happened, but I think it is possible a box was taken from my car while I was loading boxes in Saginaw. The items I’m missing include two small external hard drives that I was using to backup the Mac Mini.

That Mac Mini is the machine that I am currently using for recording podcasts. I wouldn’t be all that concerned, because the podcast recordings wind up copied to another computer, but the Mac Mini also holds Grace’s old account, migrated from her long-retired white MacBook. This includes a lot of old files and her entire old e-mail archive, so I want it backed up in at least two places.

To fix this I wound up ordering a Voyager S3 hard drive dock and three 500 megabyte 2.5-inch hard drives from Other World Computing (also known as macsales.com). These drives are quite slow and they would not be my first choice for backing up my Mac Pro, but the Mac Mini has only a 320 megabyte internal hard drive, so I think I can get away with these smaller, slower, and cheaper drives intended for laptops (they were only $40 each). In this context I don’t really care if it takes a whole night to run the backup, as long as it gets done. Hopefully nothing has gone wrong with the drive’s file system since the last snapshot, taken a year ago, might be irretrievably lost.

I should look into cloud backups, I guess, although I’m still uncomfortable with the implications, and would rather keep physical hard drives that I own, on-site and off-site, rotating them periodically.

If things go ironically, as they often do, I’ll now discover that the original drives aren’t lost at all but were just misplaced in a box buried in the garage or basement. Then I’ll have more backup drives than I can use, but that’s better than not having enough. Maybe I’ll find my missing Reloop DJ controller. It would be fun to get that going again. I had hopes of using it to mix music tracks for my audiobook projects.

T-Mobile

Grace and I were looking into changing our cell phones from a pay-as-we-go plan to a monthly plan, but apparently I need to find our PIN numbers for both our accounts. I think I may have gotten them back in 2000. This could be a little difficult, although I’m told there is an option to change them online. So I’ll try to get that straightened out somehow.

Story Time

Last night’s story was chapter 2 of The Hobbit. Before breakfast I made a little progress in Borne, then at breakfast I started Existence by David Brin. Existence is a line-jumper — I have so many books lined up, but I came across this one in a box downstairs, while I was looking for something by Ballard, and realized I had bought it quite some time ago (probably in 2013 when the paperback first came out). I think I’m looking for something a little bit escapist amidst all the heavy politics, economics, and climate stuff. Although if I know Brin, it’s probably got… heavy politics, economics, and climate stuff. Oh, well. At least the very fact that it is set 40 years in the future suggests that the human species will still be around, doing reasonably well. To me that counts as optimism.

Wednesday

When I got home from work last night, the kids had apparently made cookies just an hour or two earlier, and eaten them, so no one there was very hungry for dinner, except me. I didn’t need a lot, so Grace just put some sweet potatoes in the oven to bake. Grace had packed most of the Fiestaware pieces, but left out plates representing each color, and so we sorted through them while looking at web sites and debating just which colors they were. Grace did not feel great yesterday — she is fighting a virus, it seems, like I was on Saturday, when I took an extra nap. I brought up a bottle of Glenfarclas 12 scotch whisky from the basement and we drank some fine scotch while we debated the plate colors (although the bottle has been open too long, so the flavors have faded a bit, and the cork broke in half and fell into the whisky). We ate sweet potatoes with butter for dinner.

The Hobbit by J. R. R. Tolkien, Chapter 3: “A Short Rest”

Bedtime was unusually difficult for some reason. I read chapter 3 of The Hobbit (called “A Short Rest”). There are some interesting details that I’m noticing in this re-read. It’s interesting that Tolkien describes the elves both as full of “nonsense,” but also mentions that thinking them foolish “is a very foolish thing to think.” There is some wording about Elrond as “elf-friend,” and the story mentions “the wars of the evil goblins and the elves and the first men in the North,” but it is not mentioned that Elrond is half-elven (he is the grandson of the human Beren and the elf Lúthien, which sets the stage for his daughter Arwen’s romance with Aragorn). Did Tolkien conceive of Elrond as half-human, at the time he wrote The Hobbit? I’m not really certain.

Disappointingly, Elrond also doesn’t know what Durin’s Day is. Thorin says:

“We still call it Durin’s Day when the last moon of Autumn and the sun are in the sky together. But this will not help us much, I fear, for it passes our skill in these days to guess when such a time will come again.”

I would expect that Elrond knows enough astronomy to make this calculation, or at least to look it up in a book, but he says nothing, leaving Gandalf to reply only “That remains to be seen.” Does this mean that Gandalf knows the date of Durin’s Day, but doesn’t want to discourage the party, because it is coming up soon? Or does it mean that he knows no one now alive can figure it out?

Later, in chapter 4, we read:

They had thought of coming to the secret door in the Lonely Mountain, perhaps that very next last moon of Autumn — “and perhaps it will be Durin’s Day” they had said. Only Gandalf had shaken his head and said nothing.

So, what is going on here? Why does Tolkien signal that Gandalf is holding something back, in these two conversations? Gandalf knows that many things can still go wrong on their journey, and it is a fraught business to try to predict what might happen. But of course the party actually will happen to be in exactly the right place to see the keyhole illuminated by the last ray of sun on Durin’s Day. And so I think Gandalf’s deliberate avoidance of a clear answer in both these cases actually suggests that he knows more than he is letting on — he knows the party will likely be successful, but only after coming through great peril. Perhaps he’s had a vision, or perhaps he just has a feeling, that the unfolding events are being guided to a pre-ordained, but still fragile, outcome. Tolkien doesn’t spell it out in The Hobbit, but this theme of divine intervention in the events of Middle Earth — the unfolding of the great themes originally sung in the Music of the Ainur — is more prominent in The Lord of the Rings.

One can get deep down a rabbit hole about lunar and solar calendars and whether astronomy works in Middle Earth exactly as it works in our world today, but I’ll leave that to you. See: http://www.glyphweb.com/arda/d/durinsday.html. The salient point seems to be that the Dwarves used a lunar calendar, but to avoid it drifting away from the solar calendar, since the lunar year is only 354 days long, they reset it each year, choosing to restart the year at a point when they can match up the calendars (the “first day of the last moon of Autumn,” where Autumn is determined by the solar calendar). Thus Durin’s Day would vary from year to year, but it seems like someone rich in elf-lore should know all about it and be able to predict the date.

The phrase “Durin’s Day” is also used to mean “back in the days when Durin was alive,” although that also is a bit confusing — because there were a whole lot of Durins. That’s a whole other rabbit hole. In the lore, these Durins may in some sense be the first Durin, either reincarnated in new bodies, or even the first Durin himself, in the flesh, restored from death. I’ll stop there except to say that Tolkien’s whole Legendarium rewards study much more deeply than the work of just about any other author.

Anyway, after the story, Benjamin wanted to make things difficult for us — he wanted to stay up and watch movies. Elanor, also, was unusually rambunctious, and did not want to nurse and go to sleep, but wanted to climb and wrestle with us instead. Finally we got Benjamin to go to sleep by stuffing him in bed with us. Four in the bed is never comfortable. He didn’t go to sleep quickly, but spent quite some time kicking and shoving me. So it wasn’t the best night’s sleep, which means it wasn’t the best morning. I overslept, and was quite late for work, but tried to make the morning a bit better by making myself even later, and blending up mugs of bulletproof coffee for me and for Grace.

Thursday

Every morning I think “maybe this is the day I’m finally done with this coughing.” I haven’t been coughing up green goo for a few days so I dared to hope maybe the green go was gone. Nope. There was fresh green goo this morning. Not a huge amount, but it’s discouraging that it is coming back. My energy level seems a bit better, though, and the general discomfort in my chest is less today than it was Monday and Tuesday.

The Hobbit by J. R. R. Tolkien: Chapter 4, “Over Hill and Under Hill”

Last night was pretty uneventful. There wasn’t even much in the way of tantrums and screaming. The bedtime story was chapter 4 of The Hobbit, “Over Hill and Under Hill,” in which the title makes a hill out of the mountains, and the party is waylaid by goblins. At the end of the chapter Bilbo falls from the dwarf Dori’s back and hits his head, and is left unconscious in the dark. If all goes well, tonight I will read the famous chapter 5, “Riddles in the Dark.”

Friday

Yesterday afternoon I started to get some real leverage in refactoring part of the code for the Thorlabs MX family of instruments. The hunk of code in question is the code that handles all the analog-to-digital (ADC) converters. The motherboards for these instruments use a combination of built-in converters and external converters (separate chips). Some signals are multiplexed (that is, switched by a “mux,” or multiplexer, which is a switch that routes one signal to different outputs). This allows the code to sample up to eight different voltage sources with a single converter channel. We have multiple muxes.

All together, we currently read 78 different voltage levels, taking over a thousand readings a second (we could run it faster than that, but this seems sufficient, and leaves more time for other tasks to run). We read all of these voltages in order, round-robin style, starting over again with voltage 1 immediately after finishing with voltage 78, at different sample rates, using multiple communication protocols and multiple data formats, handling a number of different interrupts, and averaging multiple readings over time to get smoothed voltage readings.

This hunk of code is one of the more complex pieces of code in the application, although far from the most complex. It is hard to come up with a single metric to rate complexity. The file containing the ADC code is under 2,000 lines long, with comments and generous whitespace, and many of other files in the application are much longer. It uses only a single task, which is simpler than many of the modules. It uses several different interrupt handlers, but so do many of the modules. What’s complex about this module is not the code itself, but the data structures.

Modeling Clarity

When writing something like this, there’s always the danger of making it hard to understand, either for yourself or for another future maintainer. I have very detailed comments in the code, but comments can only do so much. Ideally the code itself should be a model of clarity. One tries various strategies. For code that represents a complex process, sometimes rather than just writing a main function that is very long, one might decide that the main function should essentially become an interpreter, and run a program. Then one tries to make the program explain what is going on, as clearly as possible.

In this case the program is not actually a program, but a big data structure, a table of actions to take in a specific order. The table is heavily commented and it is arranged the way it is so that everything happens in the most efficient order possible: the muxes are always set in advance of reading them, the various pins that control the ADC chips are always set the way we want them before the next reading is taken, every voltage is sampled as often as possible so that the readings this module makes available to other modules have low latency, but yet are averaged to be reasonably well-smoothed, etc.

This means the main action table has to be able to specify a number of different kinds of actions. So it becomes a table that refers to entries in another table, which refer to entries in yet more tables. For type safety, we want everything to be as specific as possible. For example, if I want a table to refer to a second table containing four entries, I use a type that specifies that it has four entries of a specific entry type. That way, if I accidentally make a mistake and refer to a second table containing two entries, the compiler can say “hey, this is the wrong type.” The C programming language is not very safe, as languages go, but if you use typedef to make distinct types out of every kind of data structure you want to use, modern C compilers can help. It’s not Ada, or Pascal, but there is some type-safety to be had, if you work at programming in that style.

The Programming Challenge

The challenge this week was to figure out how to support a second motherboard design.

The fact that the original code is driven by tables makes it possible, in theory, to just provide a second table. Then at startup, one could tell the ADC module which hardware version it is running on, and the code would start running a different “program,” the table that describes what to do on the second motherboard design. My decision to use a table-driven design makes this possible.

But in practice, it was not quite as flexible as one might want it. A few things were hard-coded for the initial motherboard design, because in embedded programming one goes to war with the hardware one has, or thinks one might have in the foreseeable future. One picks certain points of abstraction and avoids becoming an “architecture astronaut,” and doesn’t necessarily design for a view from low earth orbit. One doesn’t necessarily waste time writing code that will support any hypothetical future hardware. Getting a product finished and working reliably is just about always more important than making it easy to support future versions of the product — that is, more important than minimizing future work.

Anyway, the hardware is changing, and so some of the data structures are going to change. Some assumptions made in the original code are now wrong, and so the code has to sprout some new options. Data structures that were designed for the old hardware may have to change. Tables may need to have different lengths, or need to have some different members. This means that the types I originally used to provide some type-safety are now too “tight.” So I have to loosen them up. In some languages, such as Dylan, I could say “this table must be of type A or type B,” and the runtime system would enforce that. But the C programming language is low-level, designed for maximum efficiency, and not that flexible. You usually have to either be very specific with your types, or allow genericity — using union types, with your own run-time typing, or void pointer types, which means casting pointers based on your own run-time typing scheme, or using pointers instead of arrays, which endangers array safety. In either case, you’d better be sure that your objects always have the type the code expects, at all times, because you’re going to be telling the compiler to trust you, and limiting its ability to check the code for you.

It’s part of my job to know where to make certain trade-offs between flexibility and safety, and where to avoid them.

Paying Back Technical Debt

In that rush to get the product out the door, things often come up late in the process. When working under deadline to add features, a programmer doesn’t always get the luxury of optimizing the design for each required set of changes. Things can get a bit cluttered, and grow a few hacks, or workarounds. This is called “technical debt” — the programmer has borrowed a little time from his future self, or from the next maintainer — for the sake of expediency. When it comes time to create version 2 — well, that’s usually when one has to pay back the loan.

So that’s what I’ve been up to this week: changing my code to support a major hardware revision, and also paying back the technical debt. This kind of programming, fixing and improving existing code, often called “maintenance programming,” is, I believe, the kind of work that separates the truly experienced from the less experienced. But even to an experienced programmer, it is often not very easy. One has to get one’s head back into a piece of code written years ago. After a year or two, the fact that I am the one who wrote most of the original code doesn’t necessarily make it all that much easier. I have to understand, in detail, the how and why of each little design “cheat.” It’s time to figure out how to remove them and make the design work without them. That’s not always easy. If there had been an easy way to make the code work without the little hacks, they probably wouldn’t have been stuck in there in the first place.

Maintenance Programming

So, this week I’ve had my headphones on, and my head down, making pages of notes, paying back my technical debt and trying to refactor the code in places, so that the design is clear, clean, and flexible again. I have found the best way to do this is often to break selected pieces of the code in obvious ways that will make the compiler complain, and then fixing everything that broke.

Last night I was close to a minor design breakthrough. One’s understanding of the code while doing this sort of work doesn’t always increase in a linear way. This tends to be the point when an eight-hour work schedule breaks down a bit. I knew last night that I was very close to being able to remove one of the most confusing hacks, and finish paying back most of the technical debt. I had to stay pretty late to do it. (At fifty, I don’t work 16-hour days anymore, but still occasionally work 12-hour days.) Fortunately, I managed to nail it. Thirty-some years of programming in C can pay off at times. It’s fixed, and it worked. Since I have been breaking only small pieces of the code at a time, making small refactorings and fixing things as I break them, and checking changes into Github every time I got a set of changes working, there was no “big bang” required. But my family did have to eat dinner without me.

They left a plate out for me. But we had no bedtime story last night. Dinner was a hash made out of various vegetables, shredded, stir fried with some egg, and served on top of brown rice with cashews and a little sriracha sauce.

Today at work I will try to finish a few more small refactorings and fixes, and test the ADC code as best as I can. The new hardware will not be ready to test for some time, but I’m trying to be as ready for it as I can.

The Freeze-Up

Yesterday in Ypsilanti it was 59 degrees, with a low of 48 (average high and low are 30 and 16, so a pretty significant deviation). Today, suddenly, the weather is seasonal again. It’s 21 degrees now. We had rain overnight, freezing up, and so driving is dangerous today. I get paid on Fridays, and it’s also my day to go get a load of groceries at Costco on the way home. But we’ll see — if the roads seem very bad, I might just drive home through downtown, instead. Slowly. And maybe we’ll get groceries tomorrow.

I don’t have an ambitious agenda for the weekend, but I am hoping to make some progress on organizing the basement. At a minimum, I want to help Grace finish packing up the Fiesta dinnerware and get that secured in the storage room. I’m also hoping we’ll get some time to work on future podcast episodes, since we’re supposed to have a new episode up on January 21st. Our little hiatus has gone by much too fast!

I didn’t sleep very well last night, worrying a bit about the weather and listening to the freezing rain come down. Also, Grace’s phone kept waking up, as she got Facebook notifications, and the screen would light up, and light the room enough to wake me up. So it was not a great morning. I did not eat breakfast or even get a cup of coffee at home. Instead I left late, drove slowly, and stopped at Biggby’s coffee on Jackson to grab a large coconut milk mocha and a couple of bagels with butter. I realize this is not the most exciting news.

Friday Night

Because I stayed late Thursday, and got some code finished, I did something I rarely do — I left work early (before 4 p.m.). I wanted to try to get to Costco for our groceries and then home, hopefully avoiding heavy traffic, worsening road conditions as the air temperature dropped, and darkness. I managed to get to Costco before traffic was heavy. I was hoping to get a shopping list from Grace via text message, but she didn’t get back to me until I was in the checkout line. I wound up buying some snacks to take to work, and a few extra treats to celebrate going home early, including some bagged popcorn and a box of Godiva chocolate to eat after dinner. We ate our usual Friday dinner entree, Costco’s ready-to-cook salmon Milano. We usually make a pot of rice, but instead we cooked some frozen edamame.

It’s 9:00 and we’re watching episodes of Star Trek: The Next Generation. We’re just finishing up the two-parter “The Best of Both Worlds,” which forms the end of season 3 and beginning of season 4. We’ve been following the episode guide here.

Saturday

Star Trek: The Next Generation Season 4, Episode 2, “Family,” and Episode 11, “Data’s Day”

We finished several Star Trek: The Next Generation episodes including “Family” and “Data’s Day.” I had forgotten how much I enjoy some of these episodes. There are a lot of bad and mediocre shows in The Next Generation, but these are some of the good ones.

“Family”

In “Family,” the relationship portrayed between Picard and his Earth-bound brother is terrifically complex and ambiguous. The two end up having a fistfight in the mud among the grapevines, then getting drunk together on vintage wine left by their father.

“Data’s Day”

“Data’s Day” is a little more uneven, pitch-wise, cutting between serious and light-hearted plot lines, but it has a lot of nice little little touches. When Dr. Crusher has to leave Data to finish his dance lesson without her, he conjures a holographic dance partner who isn’t played by Denise Crosby, but looks eerily like Tasha Yar — who was Data’s first, ummm, “dance partner.”

There are a number of funny little easter eggs, things going on in the background as we follow Data around. In the barbershop there is a strange alien we’ve never seen, with a strangely shaped head and elaborate ’do, getting some kind of high-tech dye job with something that looks like a medical scanner. In another scene someone is working on a replicator and what looks like a giant stuffed rabbit materializes. Is that the Enterprise gift shop?

This sequence gives us a nice series of hints that there are things we have never seen before going on aboard the Enterprise, on any given day. I imagine the producers had a fun time coming up with them and the actors playing these small supportive roles had a good time trying to distract the main cast (and the audience) with these odd little vignettes.

I made breakfast this morning: press pot coffee with canned coconut milk, toasted English muffins and multi-grain bread, some fried eggs, and some scrambled eggs. I add some pre-made guacamole and butter and make a fried egg sandwich. Pippin won’t eat eggs, so he had only bread for breakfast. We’re not quite sure what to do with that kid.

It has stopped snowing but it is quite cold today, about 17 degrees. There is no wind, so we were considering going out for a hike, but it is also overcast. I think if it was sunny, a walk would be nice, but without the sun it will feel cold. So I’m not sure what we’re going to do today. We might stay here and work on chores, even though the kids are going a little stir-crazy. They were playing Set, the card game, on the dining table for a while. Benjamin tore apart one of Grace’s vintage beaded Christmas ornaments. She’s quite unhappy about that. It’s unfortunately typical of Benjamin.

Books, Music, Movies, and TV Shows Discussed This Week

This list does not include books, chapters of books, or other works that I only mentioned briefly in the text above.

Pittsfield Township, Michigan
The Week Ending Saturday, January 13th, 2018

Creative Commons Licence
This work by Paul R. Potts is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.