Andrew Cairns
banner
acairns.co.uk
Andrew Cairns
@acairns.co.uk
Using metaphors and analogies to explain Software Engineering in fun ways: https://youtube.com/@metaphoricallyspeaking

Staff Software Engineer. Passionate about DDD, CQRS, Event Sourcing and Distributed Systems.

Kayaking, too.
Easter egg on my Pipe Operator post:

Both the donut preview and code examples are projections of an event stream. You were able to see the event stream if you knew what to click.

It was a little too hidden, so now it's automatically visible at the bottom of the post if the stream isn't empty.
August 30, 2025 at 6:33 AM
This little guy will soon replace one of the largest assets on my site:
August 7, 2025 at 8:35 AM
You can't create a flipping circle without turning it into the coin from Mario.

I think there's a rule... or something:
August 3, 2025 at 8:52 PM
Flipping looks nice when you animate rotateY:
caniuse.com?search=rotateY

I'll need to figure out how to give the appearance of an edge, but love how simple this was!
August 3, 2025 at 7:10 PM
Animating elements already mounted to the DOM is one thing... but I'll need a lot of interactivity.

Took a minute to get this working how I wanted:
August 3, 2025 at 2:53 PM
I know I'll need the ability to play/pause individual components on mouse enter/leave.

Mobile would need a different solution. But this is working fine for web:
August 3, 2025 at 1:18 PM
I'll likely set a global playback rate for an article, with sensible steps.

But, for now, I'll embrace the crazy:
August 3, 2025 at 11:23 AM
Creating a Sprite component has been challenging, so taking a break to look into an adjustable playback rate:
August 3, 2025 at 9:37 AM
Revisited the first example using the paths.

Was quite tricky getting all these things to pause and resume at the same time - but think I've figured it out.
August 2, 2025 at 4:20 PM
There we go!

I'll use animations like this to show relationships between components a lot. ERDs, flow charts, etc.
August 2, 2025 at 12:22 PM
If you think this dot will follow the path of the star, you are going to be disappointed! 😅

Not quite sure what I've got wrong here, I'm sure another ☕️ is the answer.
August 2, 2025 at 11:08 AM
Eeeh, kinda got SVG morphing working...
Needs quite a lot of work to be reusable, though:
August 2, 2025 at 9:01 AM
So far so good - a simple animation I can play/pause which also loops.

I imagine this will be the core of what I'll need.
August 2, 2025 at 8:09 AM
Very pleased with how this article is turning out!

Looking forward to publishing it.
July 24, 2025 at 10:44 AM
Finally! 😅

I've solved the pain with dynamic code blocks without breaking syntax highlighting.
July 21, 2025 at 7:23 PM
Composite is a Design Pattern that can be used to treat single objects, and collections of objects, in the same way.

Here's an example:
March 28, 2025 at 11:51 AM
Have you ever wondered how strategy games like Red Alert 2 manage hundreds of units on screen without crashing?

The secret is the Flyweight Pattern:
March 27, 2025 at 10:23 AM
The Adapter Pattern is useful when you want to own the interface you want to use:
March 6, 2025 at 2:20 PM