“Hey, foxy, how are you doing?”

Not well.

I’ve had so many blog posts that I’ve wanted to write, and even started drafting a few of them. I have an Area in Things with article ideas and they already number over 40. However, before I finish and post any of those, I wanted to give a small personal update on how this year has actually gone.

Hope springs eternal, at first

The first quarter of the year was marred by a variety of personal challenges. I had a rather bad flare-up of my sleep disorder, amongst other untold things. My older cat, Mr Gaz, injured his arm jumping off the top of his cat tree and required the assistance of a vet.

It wasn’t all bad, though. I was able to find a reasonably priced replacement for our aging car. We are all quite happy with it. I had my finances in order just enough to pay cash for it, at the end of March. No car loan here!

The terrible, no good, very bad, second quarter

On the first week of April, I had a double-whammy of horrors. My manager at IBM called me for a one-on-one. We usually had these sorts of meetings on a specific cadence. This was not anywhere near where I would have expected one.

This was not our regular sync-up.

I was laid off as part of the secondary IBM “resource action” in April. I cannot comment further on this matter, other than to say my direct and second line managers did what they could to lessen the blow. I appreciate them greatly.

Initially, I faced the lay off with high spirits, as the job market looked rosy and I had a number of recruiters interested in my profile. Unfortunately, for one reason or another, each one dropped off. Many of them had the positions themselves pulled, so I wouldn’t have had a future there anyway – perhaps a blessing in disguise.

Two hours after that meeting with my manager, I took my grandmother to a doctor’s appointment where she was formally diagnosed with Alzheimer’s disease. Needless to say, that was the single darkest day I’ve lived since May 2020, when my mum was diagnosed with cancer. Thankfully, she is still in full remission.

Meanwhile, on Father’s Day, Tulsa saw one of the worst weather systems we have seen in decades, with winds reaching over 100+ MPH. This disaster left our infrastructure in shambles and coincided with oppressive 100+ºF (40+ºC) heat. We had to evacuate 80 miles westward, to an extended stay hotel in Edmond, Okla., until the power was restored – a full eight days later.

We were blessed that the tree that came down next to us landed exactly 3cm from the window. Otherwise, I would likely be writing this article with shards of glass in my body, if at all. The office UPS, network devices, and refrigerator contents fared far less well.

Rounding third – they’re out!

I spent the majority of July cleaning up the aftermath of the storm, including replacing some of the damaged equipment. I had just about straightened everything out when, on the 23rd, the building’s air conditioning system failed. This was, of course, during yet another heat wave – one that set records across the country, including here in Tulsa.

The part needed to fix the system was on back order, and we tried to supplement with our portable air conditioners, to no avail. Suffocating in the oppressive heat and humidity – I personally measured a reading of 93ºF (34ºC) in my spare room – we began to pack for a hotel.

We did not make it to that hotel reservation.

Because my mum had a heat stroke.

One trip to the emergency department later – one that was only 60% covered by insurance (thanks, Blue Cross) – we set up shop in the hotel. We planned a three night stay.

Thirteen days later. Thirteen miserable, expensive, non-productive days, spent shuttling between the hotel and the flat to flip switches, report failures, and replace more parts. Finally, the air conditioner was fixed in our building.

I returned to a missed certified mail delivery. When I was able to make it to the post office to pick it up, I found it was a letter from my long-time doctor’s office. It stated that I was no longer a patient of his because I “refused medical advice”. I have no idea what that means; as a diabetic, I always follow medical advice when it is presented to me. As of the time of this writing, I still have not heard any response as to what they meant nor how I can resolve this matter.

Then, in mid-September, I was informed that Adélie Linux – the project I co-founded and poured years of my life into – would be shuttering if certain goals could not be met. They felt it was no longer feasible for it to continue on the trajectory it was on.

It was an exceptionally hard decision to make, but I searched my heart and could not in good conscience let it go. I have returned to full-time (and unpaid) development of Adélie Linux, and have done my best to remove as many roadblocks as possible in the process.

“It’s hard to play a good fourth quarter when the others went so badly.”

In early October, my mum was assaulted by an adolescent with a lack of direction. At the same time, I was given a lead on a very promising role, only for it to evaporate as well.

I do have a few prospects in my job search, but am still actively searching. If you are aware of someone looking for a highly motivated software engineer who is knowledgeable about many fields, please feel free to reach out. My CV and social contacts are on my personal Web site.

tl;dr

For all intents and purposes, none of what I wrote at the start of the year came to fruition.

The only things that keep me going at this point are my mum, my cats, my best friend Horst, and watching Bluey. Something about Bluey touches my soul in a way that I cannot describe. Honestly, in many ways, she reminds me of a younger me, and gives me hope that maybe I can find that in myself again some day.

And now I would like to leave you with a quote from a song that I’ve heard a lot this year.

I’m far from lonely, and that’s all that I’ve got.

Looking forward to 2023

(Note: This draft was being written when that Monday Night Football incident happened, so it was shelved for a bit.)

As this is my last day of holiday break, I thought I’d reflect a bit on what makes me the most excited for the coming year. Obviously, none of us know what the future holds, but these are some of my hopes for 2023:

Social stuff

It looks like Twitter might survive after all, but the fragmentation and millions of people going to the Fediverse intrigues me. I am very curious to see where the Fediverse goes now that it has so much more interest. I am hoping to see people like journalists and meteorologists start using it in earnest, which were some of my favourite follows on Twitter. It would be great to see the platform grow to new interests, since the majority of people there lean towards being in tech.

While their privacy policies and business practices still disturb me, this year will likely be the year I rekindle my Facebook account. There are still family members and friends of mine that use it, and some pretty nifty retrocomputing groups are on it as well. If you can’t beat ‘em, join ‘em, I guess. Any content that I post on Facebook would be mirrored to better platforms, so it wouldn’t be anything special for those of you who want to continue to stay away. I just don’t want to miss out on those connections that I could have just because of my aversion to late-stage advertisement capitalism.

Apple ecosystem

My iPad Pro is going to be seeing more usage this year as Stage Manager is finally available, bringing multiple app/window support. This is something that I’ve personally felt has kept the iPad from living up to its full potential, and something I remember seeing being done in the jailbreak scene for years, so I’m quite happy to see Apple finally putting it in official system software.

While I know rumours abound and there is no reason to think it would be released this year, I’m eternally looking forward to a wearable – like, say, an Apple Watch – that can also function as a glucometer. As someone with type 1 diabetes, it’d be a real boon to be able to have enough a rough estimate of what my blood glucose level is without having to wear a separate sensor.

It would be very cool, though unlikely, to see a MacBook Pro with a Dynamic Island like the iPhone 14 Pro.

Retrocomputing

I’ve received a lot of goodies, hardware and software, over autumn and winter. I can’t wait to put them to good use in the Retro Lab. I’m hoping to write a number of new articles in my Retro Lab series.

There are a number of software development projects I’d like to tinker with in the retrocomputng circle. I’m keeping details vague for now, as I don’t want to make any promises, but my focus as always will be on making classic Macs and Windows NT useful in the modern era.

Linux and libre software

I’ve been following the SPDX project’s continual drive to make automated tooling around discovering and managing licenses of software packages. It would be very cool to integrate some of these tools into package managers like APK.

The Qt project is still not in my good graces after their decision to make LTS releases commercial-only. This only became stronger when it was announced qmlsc, the QML compiler that would make QML apps into high-performant, non-interpreted C++ apps, is also only available for commercial customers of Qt. Maybe the KDE team will support a libre Qt 6 LTS branch in the same way they support 5.15?

Speaking of LTS branches of things with major versions of 6, the Linux kernel 2023 LTS edition should be pretty exciting. Linux 6.1 and 6.2 bring a lot more support of AArch64 boards, including the Apple M1 and Qualcomm 8cx Gen 3. When the Linux 6 LTS drops, it will be very exciting to dual-boot mainline Linux on my MacBook Pro M1.

I am personally hoping to have some time to devote to “traditionally opposite” endian projects. Specifically, I want to see if I can bootstrap an aarch64_be environment on my Pine A64, and similarly bootstrap a ppc64el environment. There are probably going to be a lot of false assumptions in code regarding aarch64_be.

Adélie continues to improve regularly, and hopefully this will finally be the year of the release of Adélie Linux 1.0. Yes, I am taking on a somewhat more active role again, and no, I do not want to comment 😉

Lastly, it will be exciting to see where the GCC Rust front end goes. Hopefully this will lead to significant improvements in Rust’s bootstrap story, which will help make it more useful and approachable by people who cannot use, or do not want to trust, the Mozilla-provided binaries.

Personal

I want to take photography seriously again. Photography can tell a story, document history, and transport others to a new perspective. I really enjoy taking these kinds of photos and hope to have some great snapshots to share throughout the year.

In addition to the retrocomputing projects, there are a few others non-retro-related software development and library improvement projects that I hope to spend some time on this year. Some of them are Wayland on Power, Zig on big-endian Power, and adding better compression support to APK Tools.

In conclusion

That is an overview of what I hope to devote my time to in 2023. What do you think? Are there cool developments that I should be looking at that I missed? Are you excited about some of these too? Feel free to discuss in the comments!

My feelings about the Queen (are complicated)

Something that many don’t know about me is that I’m Welsh (despite living in the US). Being Welsh gives me a very interesting relationship with Britain and the monarchy.

The United Kingdom provides us with a lot of good things, but Britain has also traditionally treated us pretty poorly at various times and under various reigns.

Still, it has made me quite upset at a visceral level to see how much the Internet and Twitterverse appears to hate the Queen and her family personally. A lot of what I see revolves around either colonialism or misunderstandings perpetuated by the media rags of the day.

While I definitely agree the Queen and the royals in general should have done more to give reparations to those who suffered under British colonial rule, I don’t agree she should shoulder all or even most of the blame.

Under the reign of her father and herself, many of the former colonies became independent republics. And it’s not like the Tories in power for the majority of her reign would have approved appropriate reparations anyway. I do wish they would have done more for Africa, and hope to see the new King doing work on that.

While the royals have done some pretty terrible things in their time, they’ve also done a lot of good. They are all big proponents of helping the climate, and the younger royals especially take after Lady Di in wanting to help the impoverished.

Speaking of Diana, let’s not forget that in her capacity as a royal, she helped to destigmatise HIV/AIDS at a time when many others in high places were happy to let those suffering from the disease rot.

Could they do more? Absolutely. Are they as flawless or squeaky clean as they’d like you to believe? Not even close.

But I highly disagree with the level of vilification happening online in the wake of the Queen’s death. I mourn her and the legacy of good things that she has done, while still acknowledging she was a flawed being and there were things she should have done that she did not.

Compiling XIBs with CMake without Xcode

I’ve been enjoying using the JetBrains IDE CLion to do some refactoring and improvements to the Auctions code base. However, when I tried to build the Mac app bundle with it, the app failed to launch:

2022-07-30 19:54:15.117 Auctions[80371:16543044] Unable to load nib file: Auctions, exiting

The XIB files were definitely part of the CMake project. I later learned that CMake does not automatically add XIB compilation targets to a project. It relies on the Xcode generator to do that.

I found a long-archived documentation page from CMake on the Kitware GitLab that described a method to build NIB files from XIBs, and have modified it to make it simpler for Auctions.

You can see the change in the commit diff, but I’ll include the snippet here for posterity.

First, you define an array with the XIB file names with no suffix. For instance, I’ve done set(COCOA_UI_XIBS AXAccountsWindow AXSignInWindow Auctions) for the three XIB files presently in the codebase.

Then we have the loop to build them:

find_program(IBTOOL ibtool REQUIRED)
foreach(XIBFILE ${COCOA_UI_XIBS})
add_custom_command(TARGET Auctions POST_BUILD
COMMAND ${IBTOOL} --compile ${CMAKE_CURRENT_BINARY_DIR}/Auctions.app/Contents/Resources/${XIBFILE}.nib ${CMAKE_CURRENT_SOURCE_DIR}/${XIBFILE}.xib
COMMENT "Compiling NIB file ${XIBFILE}.nib")
endforeach()

Now it starts correctly and works properly when built from within CLion. This was surprisingly difficult to debug and fix, so I hope this post can help others avoid the hours of dead ends that I endured.

Until next time, Happy Hacking!