article
Software Before Hardware
This article was originally written for the June 2022 edition of Hemispheric News, delivered as part of the Hemispheric Views podcast member bonus program, One Prime Plus.
Another WWDC has come and gone, and Apple have released the M2 and a new MacBook Air to go with it. Apple’s hardware continues to be refined and it’s hard to argue that they are not knocking all their new machines out of the park.
The thin and colourful iMac, the Studio with ports on the front, MacBook Pros and now the Air. Add on beautiful iOS devices and every piece of Apple hardware looks (and works) brilliantly.
Apple software, on the other hand, is not going well. I don’t know whether to blame the new design guy that took over from Jony Ive, the business managers who are trying to create consistency across platforms in the name of efficiency, or that SwiftUI seems to be entirely incapable of acting as the supporting infrastructure for feature rich applications (or even utilities).
The latest kerfuffle arrives in the form of the proposed “Setting” application in macOS Ventura. It’s ugly, it’s not optimised for the platform it’s operating on, and it feels like a regression from the “Preferences” panel that came before. Given that the Preferences panel was universally seen as “not great”, it is a sad indictment on Apple’s current ability to build good user-facing software that the rewrite is turning out to be worse.
There are other examples, such as the vertical orientation of notification panels in macOS, the notifications system on all platforms, and even larger software efforts such as GarageBand never embracing podcast editing, Podcasts app continuing to be average, etc.
The strange thing is, Apple is insanely great at developing low-level core frameworks. That they transitioned the entire macOS fleet to APFS without anybody realising is amazing. They built Metal - which goes chronically underused by game developers - but still they did it. Rosetta emulation is a masterpiece to aid the transition from Intel to Apple Silicon.
I suppose no company can ever be perfect. Apple is doing great on the engineering side: highly technical work and manufacturing process management. They are not doing great on the softer design side. I think they need to take a new approach to software design, and that probably starts by changing their vision of what good software looks like. To me, it doesn’t mean everything looks like an iOS element. To me, it means embracing complexity where that complexity is beneficial to the user. There is no point making something look simple, if in using that simple design things get harder.
A Relationship Well-lived
“So it goes”
— Kurt Vonnegut, Slaughterhouse-Five
I met Hannah Beazley in 1999.
We married on 19 March 2005.
Innumerable highlights (and lowlights), some of which include:
- Establishment of a business, which together we ran for 5 years, then sold.
- Multiple overseas trips. Vietnam, Hong Kong, Italy, USA, Croatia, Singapore, Bali. Each of these trips with their own massive collection of memories and experiences.
- Hannah’s chronic medical challenges, which resulted in near death, as then virtually unknown hypereosinsophilia ravaged her body.
- Two children, when for the longest time we figured that number would be zero because of the aforementioned medical issues.
- Home ownership.
- Political campaigns, culminating in her becoming the Member for Victoria Park.
18 years of marriage.
Now, that chapter comes to a close.
Life is long. People grow and change. Wants and needs change and morph.
I will never have another marriage, or even relationship, like the one I’ve had with Hannah. My heart sings with happiness about the time we’ve had together. I look forward to continuing to work with Hannah on our shared lifelong project of parenting our two beautiful boys. The time for romantic love, however, has come to an end. In its place is admiration, respect and appreciation for a friend who has been there through the highs and lows, and will continue to be there for our children as they experience the highs and lows of their own lives.
Stoicism has been a helpful support over the past few months. Concerning myself with the controllables, and letting everything else be, has been a great help. I thank my friends and family for their support. Emotions are hard and having shoulders has been a blessing.
Despite the massive change this change of relationship status entails, I feel sanguine. A life is long. I have been rewarded with a successful relationship that lasted 24 years. This is a thing deserving of marvellous celebration. An end is not a failure. Our relationship brought two new incredible people into a world that needs more incredible people in it. Now that relationship closes, and I feel appreciation and kindness towards the one I shared it with. I am so grateful there is no domestic violence, hatred, drug abuse, or other negative elements. The relationship ran its course and ended well. That is a good thing.
Now, Hannah and I both enter new phases of our lives, and we work to ensure our children understand that this can be a good thing for us and them.
For me, it’s an opportunity to once more spread my wings. To try new things, meet new people and explore the world on my own terms. There will be hard, lonely and depressing times. I know this to be true. But there is a chance for a recreation, a rebirth.
I look forward to what comes next as I strive to live my best life.
Oiling the Deck
There are some household jobs that I procrastinate over. Oiling the deck is a new one I can add to the list. Our deck was installed a couple of years ago as part of a backyard renovation. I knew at the time this would be a necessary maintenance job that I would despise. I dutifully entered it into OmniFocus as a task for the future.
That OmniFocus task has been deferred for about 9 months. I did the prepartory work of buying the expensive Cutek Extreme CD50 oil and the fancy Deck Boss applicator. The task of actually oiling the deck, though? That sat for a long time. Most of the time because of my own laziness. Sometimes because of the weather. I contemplated outsourcing the job but knew deep down within myself I wouldn’t trust anybody else to care enough to do it right.
Finally, the time came and I went for it. The first step was to clean the deck a couple of days before the oiling. That went well. I used Cutek Quickclean.
A few days after the clean, it was time to oil. The weather was hot - over 32ºC. I had to do the work in two shifts: one in the morning and one in the evening. The morning shift came to an end when I almost vomited from exertion in the heat. I’m too white, too old, and too unfit for manual labour in the burning sun.
This is how I looked after the first shift — just a touch pink:
I completed the second shift, and the job, with a minimal amount of oil left in the can. Maybe there’s enough to do a second coat on areas that look to need a little more. There is definitely not enough remaining to do a complete second coat. I think I’m okay with that.
Now I have to schedule the next maintenance coat into OmniFocus…
Quality Tech Support from Indie Mac Developers
How good is the Mac indie developer community?
I have been a long-time user of the SearchLink service developed by Brett Terpstra. I use it so regularly that I have it tied to a button on my Stream Deck, as well as keyboard shortcut, ⌃ + ⌘ + L
.
Last night I attempted to use SearchLink while typing in the all new MarsEdit 5. Instead of it working as it always has, I received a confounding error:
The action “Run Shell Script” encountered an error: “-e:1778:in `scan': invalid byte sequence in UTF-8 (ArgumentError)
from -e:1778:in `ddg'
from -e:987:in `parse'
from -e:2147:in `<main>'”
This was beyond me. I knew that MarsEdit 5 had a new foundational text editing platform, so I assumed whatever had changed was probably a bug related to that. I also tried SearchLink in BBEdit (another great Mac app made by legendary Mac developers, Bare Bones Software) and the problem appeared there too - which shot somewhat of a hole in my MarsEdit theory.
Nevertheless, I emailed Daniel Jalkut, developer of MarsEdit, with a support request. He quickly responded saying that he doesn’t use SearchLink, but would look into it.
I also sent a support request to Brett. Very quickly Brett asked a further diagonostic question, then while I was asleep (welcome to Australia-USA relations), he emailed me through an updated version of the SearchLink script. Brett had determined that DuckDuckGo, the engine powering SearchLink, was suddenly providing results in a zipped format. The new version 2.2.27 fixes the issue.
So within hours of noticing a problem with SearchLink, I again have a working version that supports the all-new MarsEdit 5 — and every other Mac-assed Mac app1 that works with services2.
The Mac indie developer community is amazing. I thank them, and encourage you to support them by buying and using their products. Let’s keep this thing alive.
-
Kudos to you, 1Password, for registering the domain macassedmac.app in defense of Electron-based 1Password 8. I don’t know what to think. ↩︎
-
I’m looking at you, Electron. ↩︎
Web App Barbarians
This article was originally written for the April 2022 edition of Hemispheric News, delivered as part of the Hemispheric Views podcast member bonus program, One Prime Plus.
I love to use native software but it feels like I’m the last of the troops that has been put on the final line of defence, guarding against the marauding ‘web apps’.
It appears that most users are more than happy to load a copy of Google Chrome and run a bunch of web apps in fullscreen mode. This is what I see in my day job, as companies use Xero, Hubspot and any other number of web apps to run their companies.
On a personal level things aren’t much better with Google Apps, YNAB, etc. sharing the platform with a growing number of Electron apps such as Discord, 1Password and Slack (and, of course, Obsidian).
So I end up feeling like one of a declining number of people who prefer an app that utilises the native architecture of the client platform. Either people don’t care or they actively prefer web apps.
I actually think it’s the former (users not caring) combined with development houses caring more about cost management and not actually putting the user first. If they were willing to invest development resources in native applications I am sure people would enjoy them. But they don’t care enough to force developers' hands.
So we end up with the best app to meet profit targets — not the best app.
As much as Apple invests in outlandishly fast and impressive hardware, what’s the point if all it means is that the platform can successfully run more Chrome tabs? Is that really what we have arrived at?
Apple is not helping by not investing in their own first platform applications, either. They are creating meh apps across macOS as they attempt to consolidate development efforts through shared Swift/Catalyst implementations. Nothing seems better or more powerful than it was a decade ago.
I hope that now Apple has its hardware house in order, that it can focus on its software.
I’d love to hold off the web app barbarians at the gate just a few years longer.
We Need a New Approach to Social Platforms
The Elon-gate’d Man | Jared White:
Jared White mounts a solid argument as to where we have gone wrong with big tech celebrity, and talks about how me might be able to do better in the future.
with this maturity has to come broader awareness that Big Tech can’t simply act like 21st century echoes of the robber barons. Either the tech sector must demonstrate its ability to police itself and show good corporate governance and a willingness to let bottom-up creativity and entrepreneurship flourish in the marketplace of ideas, or we must call for increased regulatory scrutiny on all fronts.
…
And for the love of all that is holy, we must rid ourselves of this absurd myth that a single person just shows up one day with a skip in their step and a spark of genius in their brain to change everything overnight. Never again should we fall for an Elizabeth Holmes. Never again should we fall for an Adam Neumann. Never again should we fall for a Sam Bankman-Fried. Never again should we fall for a Mark Zuckerberg.
Doing the same thing again, with a different company, a different founder offering a story of salvation, a different VC backer… any of that will only take us to the same place we’ve been, and has been proven to fail.
Let’s build something different. Let’s build interop.
I'm Out on Twitter 🫡
“The standard you walk past, is the standard you accept.”
— Lieutenant General David Lindsay Morrison AO
Upon reflection, I have determined that my values are inconsistent with those of Twitter’s post-acquisition by Elon Musk.
Rather than continue to use the service - even within my safe #NBL23 bubble - I believe the correct and appropriate action is to cease use of the platform.
I am available on Mastodon @canion@social.lol
and micro.blog @canion
🫡
Musk Has Destroyed His Own Mythos
Ed Zitron has published “The Fraudulent King”, a marvellous explainer on the latest happenings at Twitter, but at the same time, outlined what a petulant, unimpressive person Elon Musk is — and how the world now knows it.
There were so many great lines in this article, it was hard to know which to highlight as an extract:
…we are in the process of watching said timeline wholesale reject Elon Musk and his ideology. Musk has paid $44 billion to purchase a website that has all told him to go fuck himself.
…
Under the largest spotlight in the world, Musk has proven himself to be a petty charlatan who lacks any meaningful skills necessary to run a company. While we may have been able to fool ourselves that Musk could have successfully run three or four companies at once, the truth is more likely that SpaceX and Tesla have survived his tenure as CEO rather than thrived under his leadership.
…
When given absolute power and the world’s undivided attention, Elon Musk has managed to economically destroy his company, publicly (and repeatedly) humiliate himself, ostracize most of Silicon Valley’s engineering talent, and dispel any belief that he is a Tier 1 Genius Operator.
Honestly, read the entire article.
Twitter Circling the Bowl as Employees Leave
Elon Musk walked into Twitter HQ carrying a sink; in hindsight it should have been a toilet, because Twitter is now circling the bowl.
Elon Musk eases return-to-office order - The Washington Post
One Twitter staff member said the numbers of employees seeking to leave had alarmed Twitter’s managers, who had formed “war rooms” to determine which employees should be asked to stay on.
Resignations and departures were already taking a toll on Twitter’s service, employees said. “Breakages are already happening slowly and accumulating,” one said. “If you want to export your tweets, do it now.”
Hate speech and other abuse was also likely to spike, employees said. Most of Twitter’s Trust and Safety team, consisting of up to 40 people, was expected to resign.
Is it surprising that engineers are opting to leave and take a 3-month severance package, as opposed to staying where they have to work extensive hours for a mercurial owner, without the joy of working with colleagues?
Musk really doesn’t seem to understand that employment is a two-way street. These people are not indentured servants. If the deal isn’t good, they can/should/will walk.
Last one out, please switch off the lights.
What’s the bet that in a couple of months, Twitter is employing remote-work engineers working out of India?
Twitter News: Don't Criticise the Owner (But the Owner can Criticise You)
Musk fires Twitter engineers after critical posts on Twitter and Slack:
Musk had already tweeted Monday that he had fired at least one engineer who publicly criticized him on Twitter. The latest terminations come in the wake of Musk’s decision to let go of about half of all Twitter employees in a bid to cut costs.
Some Twitter employees confirmed the layoffs on their verified accounts.
“Looks like i just got fired for s—posting too ✌️” one wrote in response to another person who said they had been let go.
It’s never smart to criticise your employer in public, although some of this criticism was published on an internal Slack. A mature manager would probably look at the recent unrest and seek to counsel their employees. Not Elon, who has shown not maturity to date and continues to exhibit none. He fired the complainers, and gloated about it publicly afterwards:
“I would like to apologize for firing these geniuses,” he (Musk) wrote on Twitter. “Their immense talent will no doubt be of great use elsewhere.”
Good to see he can criticise those individuals publicly without recourse, hey?
Shooting Hoops
Recently we have installed a cool basketball hoop in our front yard, ostensibly for our kids to play as they grow into their teenage and teenage years.
An unexpected benefit has been for me – Dad. I used to play basketball. You may be aware that I now host NBL Pocket Podcast, have media accreditation for NBL, and commentate games for NBL1.
When I was younger, I was an athletic guy who could slam dunk and knock down 3s. Age, however, shoots 1.000 and I no longer have the leap I once did. In fact, my knees are basically destroyed.
Installing this hoop, however, has proven to me that a jump shot (or maybe a standing shot now) is like riding a bike. You don’t forget how to do it. You also don’t forget the love. There is something about shooting a basketball that is immensely soothing for me. Nothing else eliminates the worries and stresses of day-to-day life than hearing the shwoosh of a basketball ripping through a net.
I wish I had installed this basketball system a decade ago. Nevertheless, I remind myself that while the best time was 10 years ago, the next best time is now.
I have my now. I am shooting hoops. In my mind, I am young once more.
The Twitter News Cycle Moves Fast
Not even a day, and there’s a new item of craziness I can add to my earlier list.
Elon Musk's First Email to Twitter Staff Ends Work from Home - Bloomberg:
The new rules, which kick in immediately, will expect employees to be in the office for at least 40 hours per week…
At least 40 hours per week? The standard working week in Australia is 38 hours. So if Twitter were an Australian firm (or perhaps for the remaining Australian Twitter staff), Musk is asking them to work in the office for more than the typical working week. And since it is “at least”, one presumes additional work would be required at home beyond those 40 hours?
Maybe he should have announced this before the firings. That might have minimised severance costs while still reducing head count.
Once again, we are provided evidence that wealth and intelligence are not inextricably linked.
Fun and Games at Twitter
Update 10 November: Now Elon is requiring employees to work at least 40 hours per week in the office.
Twitter is a clown show. But I have an irrational fear of clowns, and not Twitter, so maybe it’s better described as a dumpster fire.
Anyway, let’s see if I can get this straight. In a few short days, Elon has:
- Fired half the company, including ones who knew what they were doing.
- Introduced the blue tick for anybody - at a price ($20, nah, $8 - USD anyway).
- Seen impersonation happen (surprise!) and created random rules about not being allowed to do that.
- Implemented a new grey, “official” checkmark for people who sort of used to be the blue tick people (but not quite).
- Removed the grey official checkmark:
I just killed it
— Elon Musk (@elonmusk) November 9, 2022
There’s move fast and break things, and then there’s fly by the seat of your pants doing random shit because you can’t think even 1 step ahead.
Further evidence that there is false equivalence between wealth and intelligence.
The Great Correction?
Are we now experiencing “the great correction” in the tech world? Meta has announced layoffs of 11,000, we just had now privately-owned Twitter reduce headcount by 7,500. Stripe let go of 14% of its people, and Sketch had to let a bunch of it’s employees go recently as well. These are just the ones I recall off the top of my head - I’m sure there are others.
Higher interest rates reduce the availability of cheap venture capital; leading to increasing pressure to run a business to deliver profit and return to shareholders; and a number of these firms are behemoths that may have reached the end of their natural growth potential.
Social media in particular is a business that relies on ad revenue above all else. If interest rates continue to increase, people will buy less, and thus advertisers will have less free cash flow to put towards advertising. Ultimately this will result in more pressure on revenue for the social media companies.
Good luck everybody; I think the tech seas are about to get rough for some time.
I Hate Entropy
This article was originally written for the March 2022 edition of Hemispheric News, delivered as part of the Hemispheric Views podcast member bonus program, One Prime Plus
Things break down and that causes me stress. I know that everything in the world is gradually corroding, eroding and disintegrating but that doesn’t mean I have to like it.
The root cause of my problem is that I don’t like fixing things. I have zero interest in hardware, maintenance and DIY projects. I’m more capable of worrying about making things worse, and the ramifications of not fixing something than I am about actually getting a thing repaired.
I think I put too much mystique into infrastructure. When a repair person comes around who knows what they are doing, inevitably there is futzing around, bashing things, and basically forcing it to work. I have a mindset that things should elegantly function - that they shouldn’t have to be pushed into working as designed.
My latest adventure has been a hydrochloric acid dispenser for my swimming pool. It uses a peristaltic pump system to draw the acid from a bottle and doses it into the pool. The control unit monitors the pH of the pool water and runs the peristaltic pump on a regular basis to inject small volumes of acid into the pool. According to my research, peristaltic pumps are simple and reliable. According to my real world experience, they aren’t.
A few weeks ago it stopped dosing. I played around with the rubber hosing, asked the retailer for help, and eventually managed to reseat it in a way that must have made it happy, because the dosing worked once more.
Fast forward to now, and a few additional weeks of entropy, and the pH levels were again elevated. This time the control box is telling me to replace the tube. Fine, I do this thinking that a worn tube must be the root cause. Of course, this small piece of tubing was $42.
I manage to remove the old one and install the new one. I seat it back into its peristaltic pump in a way that looks right. I prime the tube. I let it run for a few hours. Has the pH level come back down? No, of course not. Because hardware doesn’t love me. Will it resolve over the next day or two? I don’t know. I don’t even know if the pump is pumping - there is no way to see if there is any fluid flowing. Of course, this is made a little more dangerous by the fact that the fluid is hydrochloric acid.
Another day passes and the problem is still there, so now I have to call out the guy who knows what he’s doing. Turns out the pump spinner had suffered entropy of its own—eroding such that it didn’t create a strong enough pulse in the piping to effect peristalsis.
I hate that entropy exists in the world, such that equipment can’t be relied upon for a longer period of time. I hate that I’m not a more capable handyman.
Addendum
Today, one of my outdoor taps broke. I managed to find a replacement part - after visiting 4 hardware stores, and get it changed out. So while I fixed it, it’s still more household entropy.
NBL Blitz Day 1
I am in Darwin this week as the National Basketball League is holding its pre-season Blitz tournament. All 10 teams competing to win the Loggins-Bruton Cup. I am attending all the games as accredited media, representing the NBL Pocket Podcast.
These are my brief notes from Day 1.
A venue where the first NBL volunteer I meet is a friendly Darwin lawyer by day, basketball fan by night.
Plenty of NBL staff scurrying around 90 minutes before tip-off, getting score benches ready.
One of the cup namesakes, Cal Bruton, strolls into the stadium. Later in the night, I would speak to said man. This man who dazzled me I was 9 years old and he played for the Perth Wildcats.
Unlike the pre-season of two years ago in Tasmania, where beanies and hoodies were the go, here in Darwin is shorts all the way.
Players warm up on court, Craig Randall II draining many threes from NBA range, but shooting with less accuracy from NBL 3-point range. Having played G-League and with a dream of making the NBA, this shouldn’t be a surprise. That’s the range he’s been practising for years.
The crowd filled in and were genuinely excited to be here. They were getting into the cheers, and were 100% behind Kai Sotto. This support for Sotto remained evident after the game, when a scrum formed around him to take photos and be in his presence.
The broadcast had scoreboard issues. I became a defacto score updater for viewers via Twitter. At half-time I shared a printout of the half-time box score that I obtained from the score bench.
Professional Realism - I'm Not Who I Was
Tonight I have been noodling around on LinkedIn. It’s the curse of working in our current world, that I must maintain a LinkedIn account. The whole site feels incredibly superficial — a ‘social network’ devoid of true humanity, but full of humblebrag posts and small talk comments in something which amounts to little more than a business-suited circle jerk.
Yet there I must be. Truth be told, for the last few years I’ve mostly used it as an avenue for promoting Hemispheric Views because if there is a podcast that deserves more listeners, it is that.1
So as I was on LinkedIn tonight, removing connections to ancient Groups that I’d not interacted with for years, updating my profile with current URLs, etc. I took a look at my profile picture used on the site.
The photo was nice. It was taken by a professional photographer at a time when I was more intensely involved in “corporate” work. I was wearing a nice tailored suit. I was 20 kilograms lighter than I am now - and 10 years younger. It was the kind of photo that you keep on a site like LinkedIn in some odd attempt to demonstrate a youthful verve that never fades.
Looking at that photo tonight I realised that it was no longer me. That it was a photo of a different Andrew. It was an Andrew who was still trying to climb a ladder, impress those above him, and show capability.
I’m not that Andrew anymore. I’m at a point in my life where I’m interested in doing work that interests me. I don’t want to climb a ladder. I don’t feel a need to try to exude competence.
I am competent. More importantly though, now I’m confident. I know who I am. I’m relaxed and more aware of the need to build human connection ahead of corporate achievement. To that end, I knew that the Andrew in that LinkedIn photo was not the truth. It was the truth, but not anymore.
So I changed my photo. Now I’ve got a mug shot that shows me with a slight smile, my hair longer, stubble on my face, and a few more wrinkles and signs of ageing. This is who I am now. It’s the photo I’m already using on my personal sites, because it’s how I identify with myself.
As for LinkedIn, if you want to do business with me that is fantastic and I’m excited to explore opportunities. If you don’t, that’s fine. I’m walking my own path now.
-
Please, tell your friends. Let’s boost those listener numbers! ↩︎
Choosing a Twitter Client
This article was originally written for the February 2022 edition of Hemispheric News, delivered as part of the Hemispheric Views podcast member bonus program, One Prime Plus
Update as of August 2022: I have basically settled on Twitterrific on iOS/iPadOS and Twitter on macOS.
I don’t love Twitter, but I use the heck out of it for one reason only: following the Australian National Basketball League (@NBL) and the community of passionate fans around it.
For a normal person with this use case, they would use the company-issued Twitter app and be done with it. But you know that I’m not normal (and not Martin Feld) so default apps are not generally in my wheelhouse. So it is with Twitter.
The best thing about a third-party app is the lack of in-line ads, and the chronological timeline. They bring other benefits (and some deficiencies) but these are the two reasons why I don’t accept usage of the Twitter app.
For the past year I’ve been using Tweetbot, but as is my wont, I elected not to auto-renew my subscription. They got a year of income from me, but the implied agreement with a subscription app is that I can (and should?) walk away at the end of the term to consider my options and assess the broader market.
A couple of months ago I purchased Spring. I like that this app is a one-time purchase, and it unlocks the app on all platforms (iOS, iPadOS, macOS). I’ve been using it in tandem with Tweetbot to see how it works. It’s… fine? I don’t like the way it shows the thread of a retweet within the context of the main timeline. I end up seeing the same tweets over and over, and it bloats the timeline. This is probably because I’m a timeline completionist. I can imagine that if one was dipping in and out, the additional context might be welcomed. I also struggle with the UX flow of the app. I think I understand its logic, but I find myself having to think about it. I don’t want to think that hard about Twitter.
My next option is Twitterrific. I used this many, many years ago. I’ve once again downloaded it for iOS but have yet to buy the subscription. I don’t like that the subscription doesn’t unlock the macOS version. That seems less than ideal. I have a memory of developers Iconfactory saying this was going to change, but I can’t confirm that, and as at the time of this article, it isn’t the case. So I will judge based on what is in front of me.
I like the airy, spacious feel of Twitterrific. Its big thing is the unified timeline where it puts replies and mentions inline with everything else. This seems less revolutionary these days.
I honestly don’t know what to do. Are there other options out there that I’m neglecting?
Which app do you use? Which one should I use?
Help!
And if you want to see lots of random comments about NBL basketball, follow @andrewcanion.
Adventures in SoftRAID
I’ve had an adventure with my OWC Thunderbay 4-disk drive array this week. I’ve emerged the other side, ultimately unscathed, but the journey certainly could have been easier. Let’s take a look.
It all started when I reached the capacity of my RAID-5 formatted array of 4 x 2TB drives. The 6TB of storage this provided me was almost full. This array sits in a cupboard connected to a headless M1 mac mini, so all operations need to be managed through screen sharing with Screens or SSH.
Incidentally, for many months now this RAID-array, with SoftRAID as the management software has been causing hardware panics and reboots on the M1 mac mini it’s connected to. My winding adventure has also been able to resolve this problem - although word is Ventura will eliminate some macOS bugs that were the root cause.
Preparing the Way
Back to the story… the SoftRAID software has a neat feature within it that allows the user to resize a RAID volume if the disks have additional capacity than is used by the volume. RAID 5 allows any one disk to be removed at a time and continue to operate. This feature I would use to my advantage to grow the size of my array.
I bought four new 4TB disks. One at a time, I removed an existing 2TB disk - setting the array to a degraded mode. I dropped in a replacement 4TB drive, and the Thunderbay took a day or so to rebuild the array using 2TB of the new 4TB. I did this same thing four times. It took days, but I ended up with my existing array of 4 x 2TB but now it was on 4 x 4TB disks.
No Resize for You ⛔️
Now I could use that nifty feature to upsize my volume to 12TB. I happily clicked the button and tried to enter my new volume size. Nothing. Nada. Zip. It wouldn’t let me go beyond the current 6TB. Oh no.
Off to the SoftRaid website and support forums I go. I eventually find a support note - and random threads in the forum - that there is a known bug in SoftRAID 6.3 that prevents resizing and growing RAID arrays. The solution? Use SoftRAID 6.0.3. Cool! I’ll do that. But SoftRAID 6.0.3 is only compatible with Big Sur. Not Monterey. Hmm. All my Mac’s are upgraded and I don’t fancy trying to downgrade any of them.
This is a dead end. There is no resolution. Except one. Erase the RAID array and start again, formatting the drives and going from scratch. ARGH! On the bright side, by formatting the drives I could select a 64kb stripe size instead of the recommended and preferred 16kb stripe size the RAID array was using now and that was causing the kernel panics on any macOS version less than Ventura for M1 Macs.
Belt and Suspenders
So I needed to find a way to backup 6TB of data.
I bought a USB 3.1 hard drive caddy. My friend Nick allowed me save some dollars by lending me two 6TB drives which I could use as backup media.
So now how to actually undertake the backup in a way that was resilient to failures, kernel panics and restarts? Running rsync
from the command line was one option - but I’m not a command line guru and was worried I’d get my flags wrong and not properly copy metadata. Aha, I have a license for SuperDuper! That’ll do it! Except my license had expired so I couldn’t use it. Before I bought a new license, I checked in on Carbon Copy Cloner, which I know other people praise. Not only does it feature a more up-to-date (and informative) user interface, it offers a fully-featured 30-day trial. Brilliant!
I setup CCC to create a clone of my RAID. Off it went. It took about 24 hours. This was extended because what I did forget to do was erase the Time Machine backups that were on the array. I shouldn’t have kept them, but oh well, I left it alone.
Nick recommended I actually make two backups, because he couldn’t verify the quality of the disks he’d lent to me. Despite no errors being reported from the first backup, I did as suggested - setting CCC to do a repeat backup (but this time I deleted the Time Machine backups first). Another almost 24 hours passed.
Erase and Restore 😱
Now, onto erasure of the RAID array itself. This was the ‘gulp’ moment of the process. No going back from here. I re-initialised the drives and reset the volume, and thankfully, was able to choose a volume size of 12TB. And, as mentioned, I went with the 64kb stripe size to avoid kernel panics (even though I will probably regret that once Ventura is released with support for 16kb stripes).
RAID array ready, it was time to restore from my backup. Queue another long process. The next day, I check the completed restore, which… had errors. Nick, this is where I thank you for suggesting the ‘double backup’ strategy. While the backup drive had no errors writing content, it had troubles reading it. This is also where I was very thankful to have chosen Carbon Copy Cloner which offers a clear and helpful log file showing the failed files. There was only about a dozen that didn’t work, so I was able to restore all of these successfully from the second backup.
With this done, the RAID array was back! And almost everything picked up from where I left off. As I had transferred some invisible BackBlaze configuration files, I had to re-associate the new drive with my account, which was an easy toggle. I had to reset the Time Machine settings in the MacBook Airs that back up to it, so they would find the new drive. Finally, I had to reinitiate Content Caching on the mac mini by turning it off and on again.
After a week, I’m up and running once more.
Will I do all this again when Ventura is released and I want to leverage 16kb stripe sizing? I don’t know if it’s worth it, to be honest.
Me in 1 Chart
After listening to myself interviewed by Martin Feld on Really Specific Stories I started thinking about the strange mixture of interests I have.
For fun, I thought I’d grab the main categories and represent them in graphical form.
Basketball is predominantly represented by NBL and NBL1 - not NBA.
Podcasting incorporates listening, and producing NBL Pocket Podcast and Hemispheric Views.
Productivity and IT & Tech almost bleed into one another to an extent. Productivity is about finding optimal ways of working, creating time and space through efficiency and clever use of technology where appropriate. This can be applied at a personal level or a corporate level. Application of effective productive measures is how I can often add value with companies I support as part of my day job. The IT & Tech portion has shrunk over the years, as this area has become commoditised and it becomes harder to tinker. Nowadays my focus is mainly on using Apple platforms to build nice workflows to support my own productivity improvements. I will let IT & Tech also capture the small amount of computer gaming I do.
Finally, politics encapsulates mainly Australian Federal politics and Western Australian State politics. I used to work in State politics; my wife is a State Parliamentarian, so I guess this checks out.
I wonder if there are any other people out there with a similar cross-section of interests?
Meeting Australia’s New Prime Minister
Yesterday we attended an event in South Perth with Australia’s new Prime Minister, The Hon Anthony Albanese MP.
It was an opportunity for him to introduce the newly elected Labor Members of Parliament from WA, and thank the volunteers that worked as part of the campaign.
My wife is a State Member of Parliament, representing Labor in the Seat of Victoria Park. In 2019 she ran for the Federal Seat of Swan. Hannah’s father and Prime Minister Albanese were colleagues in earlier Australian Parliaments (when Kim was Opposition Leader). As a result, Hannah has known Anthony Albanese over a long period of time.
This level of familiarity was captured, somewhat hilariously, in these three photos. My wife looks besotted! Should I be jealous?
The best thing about this event was how it was managed. It was held in a public open park. The area wasn’t restricted to only those specifically invited. I saw a couple cycle past, and stop to watch when they realised the Prime Minister was there. Apart from obvious police and security personnel scattered around, the event was open and welcoming. No metal detectors. No areas cordoned off.
The Prime Minister was amidst everybody else. He met and said hello to our two kids.
I love that I live in a country where this can happen. We don’t have any great fear of random shooters arriving. Our elected leader can mingle among the everyday people. This is what is great about Australian culture, society and laws. Preventing people from having guns means we can have a more integrated society. It builds democracy. It builds people’s rights; it doesn’t impinge upon them.
It is great to say that I’ve met Australia’s 31st Prime Minister. It’s even greater to say that I live in a country where I can.
Rebuilding Drafts
I’ve been a long-time user of Drafts, but my subscription is due to expire next month and I have been thinking that I’d let it go. I’ve been using Tot more these days, and Drafts had become an intimidating mess that I didn’t enjoy using.
However, after listening to a Mac Power Users podcast featuring the Drafts app and an interview with its developer, and then reading a blog post by Jason Burk about his Drafts setup (plus a personal conversation with him), I realised that it wasn’t necessarily Drafts that was the problem - it was what I had done to it.
That’s the thing, Drafts is almost endlessly customisable to enable it to fit different users and use cases. I had created so many Actions, Action Groups, and sections that the app had become confusing and overwhelming. I had duplicated actions across different groups, I was having to think too much whenever I wanted to use the app.
As I said to Jason, actual use beats good intentions. My Drafts configuration had become so bloated with convoluted actions that I thought I might use someday that it put me off from using the simple actions I will actually use today.
I’ve taken my myriad Action Groups and boiled them down to a single set. Now the only Actions that confront me are the ones I am likely to use and I don’t need to think about switching between different Action Groups.
I’ve also kept a couple of additional Action Groups but set them only as Action Bars - essentially an additional layer of text editing commands that sit at the bottom of my editing window. These are for formatting text, as opposed to taking action on them.
In terms of Workspaces, I’m keeping that as I previously had configured, but have clarified my thinking about them. I have workspaces dedicated to:
- Untagged
- Blogging
- Podcast
- Work
- Templates
These are populated through smart searches based on a tag I apply to each note.
The Templates Workspace is specifically for OmniFocus project templates that I send to OmniFocus using the scripts that Rosemary Orchard created. I continue to use this system because it allows for date math (for example, a task will be deferred 6 months from the date the project is created).
I’m now feeling much more positive about Drafts after this cleanup. The Drafts editor is great, it supports all the Mac niceties (Services, smart markdown link insertion/pastes, etc.) and now I don’t feel overwhelmed when I load the app. Of course, Drafts also offers that great unique selling proposition of a blank field that is ready for text entry immediately. This is especially great on iOS.
Homebrew
This article was originally written for the December 2021 edition of Hemispheric News, delivered as part of the Hemispheric Views podcast member bonus program, One Prime Plus
Are you a Terminal wizard? A command line guru? A shell superstar? No, neither am I.
From time to time I attempt to teach myself. It never sticks. As a result I know just enough about the macOS (and Linux, I suppose) terminal (bash/zsh) as the faded memory of a series of beginner courses permit. I’ve resigned myself to this, and have found a happy medium of mostly using the GUI - but using the terminal for a few specific and useful things.
Introducing Homebrew
If you do nothing else with the terminal, it’s worth taking a look at homebrew(https://brew.sh/). Homebrew is a package manager for macOS. Put another way, it provides an easy way to install a whole bunch of Mac applications with a simple command.
To my mind, this is actually easier than finding the product website, downloading a .dmg file, dragging the application to /Applications, unmounting the .dmg and then putting it in the trash.
All of these steps can be replaced with the command brew install "appname"
where app name could be zoom
or microsoft-edge
or marta
. Brew then does all the hard work of grabbing the file and installing it in the appropriate location.
If you aren’t sure what the app is called, use brew search searchterm
. It’s that easy.
Updating Apps
Brew can update apps as well. It’s a two-step process, with two commands:
brew update
to get the latest version information.brew upgrade
to perform an upgrade of all installed apps.
Best Brews
Using the command brew list
I have checked out what I’ve got installed via brew at the moment.
Remember, Jason made me erase my iMac, so I’m back to a short list at the moment, but highlights include:
- Firefox
- FMail
- Maestral
- Mailtrackerblocker
- Marta
- Netnewswire
- Zoom
As you can see, that’s a mix of commercial and indie software.
Casks or Formulae?
Carrying on the theme, Brew has the concept of casks and formulae. All the apps above are casks - which eliminates the .dmg dance I described earlier.
Formulae are the instructions that tell a Homebrew what is needed to be downloaded to get a working app on your machine.
As a user, you don’t really need to worry too much about it.
Is it Safe?
Yes, it’s as safe as installing any other app on the internet. That is to say, the major apps will be fine. Microsoft Edge has had 32,214 installs via Homebrew in the last 30 days.
I believe there is a submission process for apps to be included in the homebrew directory, although don’t quote me on that. All the non-cask apps are open-source, so there is a degree of protection there in that you (or others) can read the code and identifying bugs or nasties if they so wish.
I’ve never had a problem, and I believe that Homebrew is just nerdy enough not to be an attractive vector for bad actors.
Knowledge Management: A Fool’s Errand?
CJ Eller – @cjeller on micro.blog – had a take on Personal Knowledge Management that resonated with me, in his articleGarbage Heap:
I’ve bounced off of personal knowledge management tools like crazy. Wikis? Digital gardens? Zettelkasten systems? Nothing sticks.
I’m a nerd, and I love the idea of capturing all the things I read, the information I learn, and being able to harvest it later for some great good.
I have tried all the software tools. Some stick more than others. Some of the time I end up knowing I have information, but not knowing which software silo I stuck it in. Am I getting value from these attempts at capturing everything I know? Probably not, at least most of the time.
To illustrate the point of being driven crazy by ‘knowledge’, Eller quotes a short story Funes, His Memory by Jorge Luis Borges:
Without the ability to generalize and abstract away his memories, Funes is left with a garbage heap that keeps piling up. “Funes, His Memory” is a story not of a gifted individual but a cursed one, trapped in an endless web of memories with no way out. A nightmare.
Is there a point to capturing every piece of information that passes us by? Probably not, but there is something enticing about the idea of being able to somehow extract ‘knowledge and wisdom’ from disparate sources of ‘information’.
I think that CJ has it right; it’s a fool’s errand.
Is Discord the New Online Meeting Place?
With the probable demise of Twitter, it will join other social networks that have already met their demise (MySpace, Facebook, Instagram) with me, I am not that worried.
Micro.blog will remain my generalised blogging location, allowing me to post whatever I like (and optionally cross-post to Twitter if I feel I must).
What I’ve also found more recently is that Discord has become an unexpected surprise hit for focused communities. I only participate in four, and I wouldn’t want it to grow much beyond this, but they have each delivered an excellent place for virtual gathering, without anybody portraying negative behaviours, trying to sell NFTs, or undertake any other annoying actions that one sees elsewhere online.
My Discord communities are:
- Hemispheric Views (the podcast I host with Martin Feld and Jason Burk) has built a great community of listeners - if you listen to our show, please join our Discord.
- NBL Pocket Podcast is the other podcast I host together with Joe Corr, where we break down the Australian National Basketball League. A whole bunch of hardcore hoopers are joining this relatively young server that I set up on a whim. Even better, is now the management of the server has been shared across a couple of users - community supporting community.
- Neatnik - the developer of omg.lol has a Discord instance for users of his service.
- Lumon Industries is a Discord server for fans of the AppleTV+ show, Severance. A whole bunch of amazing fan conversations, theories, and art and craft exists in here.
These Discord servers have a bonhomie that I don’t see on other social networks. They are private and fun. They embody the good spirits of the internet. I love them.