# Summer Mornings

I’ve been skimping on writing lately, so I feel I must make amends with a sort of brain dump.

First off the top of my mind is that my eldest gave us quite a scare (and got himself what promises to be a fairly noticeable scar) by tripping and falling headfirst against a steel bedframe, so we’re re-assessing our entire schedule for the summer break.

That and a persistent earache that’s been playing hell with my ability to concentrate have made a sizable dent on a feeling of highly improbable optimism that I managed to attain (despite an ongoing fracas concerning Portuguese banking and cross-investments that I really don’t want to get into) by dint of forcing myself to become a morning person.

That, I’m proud to say, I’ve somewhat managed to accomplish by repeatedly attempting (and mostly not failing) to get up at 6:30 every morning.

The trick to achieve that is much easier than I expected, and largely revolves around going to bed earlier rather than worrying about getting up early. Getting the knack of that is both easier and harder than it looks, since these days I’m all too eager to just lie down and read a book rather than spend the evening coding.

There is a sizable catch, though. It turns out that I tend to let time fly as I wolf down one chapter after another (leading to my looking up and realizing it’s nearly 2AM) or decide to scratch some intellectual itch of mine and code little proof of concept projects (leading to mostly the same, or worse).

Given that those little projects are nearly always vastly more interesting than what I’m doing at the office these days, it doesn’t take a genius to figure out that I haven’t been sleeping that much lately.

So I’ve been turning things around and doing my little projects in the morning, giving myself half an hour to reach a pre-set goal just before I leave for work. And it seems to work fine – so much in fact that I’m feeling tempted to get up a little earlier still and make it a whole hour.

The side benefits to this approach are also worth mentioning – provided I’m properly rested, I arrive at work at a higher state of alertness, in a much better mood and without needing to spend half an hour getting myself up to speed. After all, I’ve been awake for almost three hours and am usually still feeling the warm buzz of having achieved something1.

So I’ve been doing some fairly low-level hackery with my little menagerie of ARM devices and getting them to coordinate via MQTT to do some data munging.

I got a tip to try out Node-RED and absolutely love it (which is a lot more than I usually say about anything based on NodeJS these days), but it’s a bit fiddly when it comes to integrating with authenticated services and a little slower than what I was aiming for.

But Go turned out to be perfect, and over a few post-breakfast sessions I ported a number of things (including quite a large chunk of my Python code) and made them vastly more efficient2. The only real problems I’ve been facing are a relative lack of higher level abstractions and a lot of common, run of the mill “boring” chores that need attending to. But at least I came across golearn, which has been rather useful.

Another track I’m following is trying to find a nice enough match between Clojure and Spark that doesn’t entail much pain or waiting around (nothing like using low-end ARM devices to give you a fuller appreciation of the word “optimization”), and finding new and exciting ways to make Hazelcast crash JDK 1.8 on ARM.

All nice, wholesome pursuits. And to keep things interesting, I’m also turning to hardware-related projects for a hobby.

But more on that later, I have to get up early tomorrow.

1. Dilbert fans, of course, realize that it’s all downhill from here. ↩︎

2. A rather fun sideline was that I could target my ageing, effectively obsolete Synology NAS as well (using GOARM=5), turning it into a quite efficient data store. But I digress. ↩︎