Here I am at 5-something in the morning with a laptop on my lap in bed doing a bit of writing. Come to think of it, this was common for me back when Michelle was alive. She’d wake up a little after 5 and catch the TiVo-delayed morning news while I’d do a site post reflecting on and summarizing the previous day. Once she’d caught the news, she’d start worrying about getting the kids ready for school and I’d get up to prepare for work.

Happy New Year! After all of the joy of the Holiday Season, we’re now back in Ordinary Time. Here in New England it means firing up the wood stoves or cranking up your furnace, warm clothes, “where are my gloves?”, snow storms, etc. for a few months. It’s the time of the year where we more closely watch weather forecasts and try to plan accordingly.

Sometimes they get it right, and sometimes … not so much. When temperatures hover around the 30’s, it can be difficult for them to know: light fluffy snow, heavy wet snow, or just simple rain. It’s not as simple as being a weatherman in San Diego (the world’s easiest job).

Last weekend was an example. Saturday was predicted to get cold overnight and that was accurate. Sunday there was predicted snow. When I went grocery shopping with the twins on Saturday, the lines were longer than I’d ever seen. It took us about half an hour to get checked out. You’d think it was Christmas Eve or an hour before the Super Bowl.

Given that forecast some of the kids and I went to Saturday 4 o’clock Mass at St. Patricks. We then had a larger gathering at an Indian restaurant in Manchester to give Timothy a nice send-off before he flew back to college. Yes, it was very cold as we walked to and from our Manchester parking: a light breeze with temps in low teens. Brr!

We’d planned Sunday morning to meet once more with the girls for coffee in Bedford. I’d postponed it until 10am because of the way the forecasts looked. Turned out that it was nothing. We could’ve met earlier. All day the most we had was a misty rain. When Timothy and I drove to Logan airport, we made it in record time. While I’d been worried about his flights, everything was on time and there were no issues with his Minneapolis layover/connection. He started his second semester the following morning.

It was good having Timothy back for his semester break. I was glad that the start and end were sufficiently padded from the Christmas season that there was no Holiday rush/surge in travel on his flight dates. His ticket prices were very affordable, unlike my Thanksgiving visit.

He was pretty busy with his studies last semester and suddenly there were no pressures or academic obligations. Not content to just sit around, he used the time to study a niche computer language: Common Lisp. I was impressed by how quickly he was picking it up. Lisp isn’t common in industry, but the things it teaches you about computing concepts are valuable.

To sharpen his skills with it, Timothy did roughly 20 exercises from a cool site called Project Euler. It has hundreds of challenging programming exercises. If you create an account there, you can browse the challenges and attempt to solve them in the language of your choice. The nifty part to me as an observer is that once you submit a correct answer, it opens up a forum for that problem where successful submitters discuss their solutions. I loved to see the implementations. While one of the oldest computer languages, Lisp is also known to allow relatively elegant and abstract solutions. Others use trendy modern languages like C, Rust, Javascript, and Go.

My favorites were to see the “hard core” folks who did their solution in low level assembly language. I have a special place in my heart for assembly language. It was the second language I learned decades as a young teen, right after BASIC. While it’s exceedingly fast, it’s almost as low level as it gets because you’re thinking about the raw instructions that the computer hardware actually executes. Almost everything else is an abstraction layer above it.

I’ve been trying to learn the assembly language of modern Intel/AMD processors, but it can be tricky because the architecture has evolved so very much since the days when I helped create an Intel 8086 clone. At least having some familiarity with it is helpful for me when I’m tasked with profiling our code and seeing where we can eliminate performance bottlenecks. I also write GPU assembly a handful of times per year when we’re implementing a new hardware feature that our compiler developers won’t implement for several months.

Alas I need to publish… I’ve got to shower up and get ready for morning Mass. My cat, Jingle, is curled up next to me here and probably won’t like that I’m getting up. Sorry buddy.