This evening I completed (and passed) the Microsoft DP-900 exam, which makes – Microsoft Certified: Microsoft Azure Data Fundamentals the first certification I can cross off my Summer of Certifications list.

The exam itself was fairly straightforward. It felt like the natural follow-on to the general Microsoft Azure Fundamentals (AZ-900) certification I passed last year, and follows the same multiple-choice/select-the-right-phrase format as AZ-900. For the most part it meant knowing which Azure data service should be used in a given scenario, or what feature in a solution fulfils the need; for the most part it’s usually straightforward to spot, but occaisionally there’s a subtlty in the question which means the seemingly-obvious answer is not the correct one. But may that was just me.

To prepare for the exam I used mix of Microsoft Learn’s free online resources, supplemented by access to Percipio resources through my work, and WhizLabs practice tests. As someone who has been neck-deep in databases for years, I feel I had a bit of a leg-up on some of the more general topics – which meant it was really just the finer points of the specific Azure data solutions I had to learn.

Part of the exam syllabus covered Business Intelligence reporting using Power BI, which might be a good starting point for the next exam in my calendar: Power Platform Fundamentals (PL-900)!

A photo of the front cover of the book Alpharius: Head of the Hydra, by Mike Brooks, taken shortly after I had finished reading it.

Synopsis

Legends abound of the glorious or infamous deeds of the Emperors sons. Yet almost nothing is known of Alpharius, the most mysterious of them all, for the Lord of the Alpha Legion is unparalleled in the art of obfuscation. Such are his gifts of secrecy and deceit that even his rediscovery has remained an enigma until now. But when the tale comes from the serpent’s mouth, where does the deception end and the truth begin?

Thoughts

It’s felt like it’s been ages since I’ve read a Black Library book that I just can’t put down and end up finishing in a single sitting. Alpharius: Head of the Hydra turned out to be just that sort of book. Without giving away any spoilers: secrets and origins are revealed, and there are insights into one of the sneakiest and most enigmatic characters in the Warhammer 40,000 mythos are given.

Or are they? Alpharius is at his core a master of subterfuge, and Games Workshop make heavy use (personally I’d say overuse) of the “unreliable narrator” trope in their world building. So there is definitely scope to discount everything in this book as nothing but a gripping yarn woven by the narrator to distract from what really happened. But based on how the story is framed, I choose to believe that the events of the book are canonical fact.

Mike Brooks takes a character which is supposed to be largely unknowable and deceitful, and manages to make them a well rounded – and often sympathetic – protagonist. It’s not easy to do when the subject matter is a giant, genetically-engineered trans-human intended to be a demi-god for all intents and purposes. The biggest problem with a character like Alpharius is that they often come across as knowing everything and are fully in control, right up until the plot-point where they conveniently aren’t. There’s a popular meme – “just as planned” – where even in apparent defeat certain characters “win”. That meme could be tailormade for Alpharius under most circumstances, and while there are a few moments of that in this book, they’re minor and don’t get in the way of the rest of the characterisation.

Rating

Since last year I’ve made a point that whenever I feel a bit “neurofunky”, I try to do something to invest in myself. The last few days have been a thing so I’ve planned the pathways to my next certification(s), and set myself up with some of the resources I’ll need to get there.

Right now, the plan is to complete the following exams over the next 6 weeks:

  • Azure Data Fundamentals (DP-900)
  • Power Platform Fundamentals (PL-900)
  • Azure AI Fundamentals (AI-900)

At least 2 of those topics are pretty much brand new to me, so it’s going to be an interesting time…

I’ve already booked the exams, to give myself a set timeframe and deadline for each. My employer offers vouchers towards taking these exams, so it doesn’t cost me anything over and above the time and effort investments. Even if the exams hadn’t been free, then I’d have probably booked at least one of these (or maybe more, just spread out over months rather than weeks)

So we’ll see how it goes. I’m excited to learn some new things, but I am conscious I’m going to be under a bit of stress due to the timing.

I finally decided it was time to upgrade my trusty TP-Link WiFi-N router to something a bit more modern. Even though it’s an older router, it’s been far more reliable and stable than just about any ISP-supplied router I’ve had the misfortune to use.

photograph of the Linksys Velop mesh wifi system

I finished setting up the fancy new “mesh” system in about 15 minutes. It was much easier than previous home networking gear I’ve used! Plug one node in, let the Linksys app do the work, then enter my ISP username and password. Once the first node is fully up and running, plug in the other nodes one by one and let the app do the rest. All the iOS devices “just worked” with the new network, apart from the HomePods – which needed to be “moved” using the Home app. Other than that: 2 LifX bulbs needed to be reset and readded, while the games consoles and Windows PCs needed the new password input (even though it was the same as on the old router).

WiFi connections seem to be rock solid throughout the house now, and browsing a few sites and services “feels” a bit snappier, but that could just be confirmation bias. There’s a parent node in the hallway, then child nodes in the busy areas – the living room and office – which ensure the whole house is well covered.

After installing a firmware update, the nodes all integrate with HomeKit, which is a nice to have. This lets me restrict HomeKit-compatible devices to only my local network, for security purposes. It’s not essential, but if it’s there, why not use it?

I guess the real test will come tomorrow when we’re both working and making Teams voice and video calls all day.

I got rid of my Hey email address last night. I really liked the “mental model” of how the app organised email, but there was never enough there to push me to fully switch over from Proton Mail. I couldn’t justify paying for 2 email services over the long term, so one had to go eventually. The furore and fallout of the last couple of days helped make the choice easier and sooner.

I’m not going to touch on the “no political discussion” topic, or the apparent executive power-grabs and other Bad Things which have come out recently. I have strong opinions on all that (the bits I’ve seen and read, at least), very little of it positive or flattering to Basecamp management, but it’s not what I’m writing about right now. Maybe later.

One of the less obvious details lurking in this seedy story is that Basecamp as a company seemingly can’t be trusted with customer data. That’s a dealbreaker for me. A list of “funny” customer names might seem innocuous at first glance, but it shows a petty disregard for your customers privacy, or who can access their information (never mind the basic disrespect of being made fun of). Every current and former Basecamp customer who has heard of the kerfuffle over the last few days will have probably asked themselves “was I on the list?”

If this list had been a short-lived “joke” by a bored employee abusing their access and privileges that would be bad enough, assuming management caught it in time and acted decisively in the customer interests. But the list lasted and grew for years. It was an institutional thing with many contributors over time. That in turn raises further concerns about oversight and tacit approval of a company culture which thinks it’s fine to abuse customer data and trust like this.

Apparently management didn’t know until someone raised concerns recently. That doesn’t pass the smell test for me. Something as apparently embedded into a workplace culture as this list isn’t magically invisible to The Boss, especially if it’s well known among the staff. They know what’s happening; they just know it’s better not to say anything so they can have “plausible deniability” when it inevitably and eventually goes too far. I’ve seen this sort of managerial behaviour too many times to believe any company – even one as supposedly enlightened as Basecamp – is immune.

But let’s suppose for a moment they were (as they say) completely ignorant – for years – of the list… what other abuses are they still unaware of? Are there other skeletons hidden in the closet? And how is that in any way supposed to inspire confidence in me, their customer, that they know what they’re doing to protect my data? Especially data as sensitive and far reaching as email?

No thank you. No amount of convenient email organisation is worth that. So: subscription cancelled, data exported, deleted1, and the app has been removed from my devices.


  1. Has it been though? I guess that’s something I’ll need to take on trust… 

  1. Write code
  2. Observe and test code as working
  3. Release to QA
  4. Receive defect ticket a day later
  5. Investigate issue and discover the code couldn’t possibly have worked under any circumstance, and it must have been a fever dream
  6. Return to 1.

Well, that turned out to be quite the adventure! After the tribulations of getting a Hue Smart Button linked to every light in the house, the next step was to get it configured to turn all the lights off, preferably without it turning them all on first.

My initial theory was that a custom scene could be created, where every light was turned off, and pressing the button would trigger that. This turned out to be wrong; a scene created in the Hue app must have at least one light turned on. So that was a dead end.

I mentioned in the first post that the button isn’t fully HomeKit compatible. This turns out to be a little confusing, but it’s ultimately where I found the solution. The button appears in Home, and it can be set with an action on press, but this happens in addition to what is configured in the Hue app. There’s an option in the Hue app to “configure in another app”. This brings up a menu which specifically says “Home app not supported”, along with a button for any other compatible app you might have (I don’t have any other apps installed). At this point I wasn’t feeling too hopeful about achieving what I wanted.

Figuring I had nothing to lose, I decided to try out what happens if I clicked the option for configuring in another app. No app opened up, unsurprisingly, but something interesting did happen: all Hue actions and scenes were removed from the button. It was effectively a connected clicker at this point. However! The button could still be configured in Home – opening up the option to run the Home “on press” action without also running a Hue scene. This was exactly what I was looking for!

So a few taps in the Home app later, I had the button setting the status of every light in the house to “off” whenever it’s pressed, including the non-Hue bulbs. So simple and straightforward… eventually.

So in summary, this is the steps I needed to get the Smart Button to turn off all my lights (and only turn them off):

  1. Use the Hue app to connect the button to your network.
  2. Make sure the button is synced with HomeKit and appears in the Home app.
  3. Back in the Hue app, go to Settings > Accessory Setup > your Smart Button
  4. Scroll to the bottom. Tap “configure in another app”. Then tap the same option on the menu that opens up.
  5. Wait for the screen to reload. All scenes and actions will have been removed.
  6. Open the Home app, find the button, then long-press to open the button options screen
  7. Assign whatever devices or scenes you want to the Single Press action

The “downside” of this approach is that your button can only do one thing, and it’s not a toggle, so pressing a second time won’t set your devices back to their previous state. That’s exactly what I wanted, but it might not be what you want.

I’ve been scratching my head since yesterday, trying to figure out how to get a Hue Smart Button to turn off all my lights with a single button press. Every night I ask Siri to “turn off all the lights,” and it would be nice to have a physical button to achieve the same thing – especially for those times Siri just refuses to understand what I’m asking it to do. I eventually found part of the solution, I think, but it took some digging.

The Smart Button’s product page on Amazon (affiliate link) specifically calls out switching off all of the lights in the house as a use-case for the Smart Button, so I was surprised it wasn’t completely obvious. If the Smart Button had been fully HomeKit-enabled (disappointingly, it’s not) this would have been incredibly easy to configure in the Home app. Unfortunately it needs to be configured in the Hue app instead, which is an app I’ve tried to avoid using where possible. The main issue I was confounded by was the Smart Button – and other Hue devices – can only be assigned to a single room, which in turn limits what it can control to that room. I looked into creating a custom scene as well – again, it’s limited to a single room.

In the end, the answer to “how do I control the whole house?” was a feature of the Hue app I’d completely forgotten about – Zones. Zones allow you to group multiple rooms, and control them all at once. Creating a Zone is done in the same place as creating a Room, it’s just made less obvious. The Smart Button can then be configured to control a zone (again, buried at the bottom, below the list of Rooms). Prior to this there were no mention of Zones when configuring the Smart Button.

It would have been useful for Signify to include some sample setups/guides in the box, or easily findable through the Hue app; if it took me overnight to figure this out, woe betide anyone coming into the Hue ecosystem for the first time. There are a few How-To’s in the “Explore” tab, but none specifically about this accessory, and the only other possibly-related video is about HomeKit options that don’t exist for this particular button.

I still need to figure out setting it so the button only turns off lights. I don’t want it to toggle the whole house on/off with each press, just turn everything off. I suspect the answer here lies in a custom scene of some description, but that’s still to be seen.

Finally, there’s also the complication that I have a couple of LifX bulbs in the house which should also be turned off by this button. They can’t be set directly through the Hue app, but I think I have a solution for this involving HomeKit Automations.