Here's my five latest blog posts - or you can browse a complete archive of all my posts since 2008.

Lunch'n'Learn with the Amsterdam Java User Group

I’m in the Netherlands. Last week was running some presentation training with a group at Info Support in Veenendaal, the weekend was catching up with friends in Amsterdam, and tomorrow I’m speaking at a student conference in Utrecht. One of the things about travelling for a living is that there’s no such thing as “out of office”, and the Todo List doesn’t stop just ‘cos you’re away for a week or two. My schedule said that today I’d be preparing examples and demos for a Zoom masterclass I’m giving on Thursday with the folks from Tech Cornwall.

A dozen or so developers sat around a table in a very Dutch-looking kitchen, drinking coffee and talking about the history of the web.

So when I got an email from Geertjan Wielenga, who runs the Amsterdam Java User Group, asking if I wanted to do a lunch’n’learn session, I naturally said “no” - mainly ‘cos I’d already have left Amsterdam for Utrecht. But, as Geerjan pointed out, the two cities are ridiculously close together… so I decided, what the hell. Usually, when I do in-person events, I bring something that’s prepared and polished: talk, slides, video… you know. What some folks call a “Dylan Talk”. Today, we did the complete opposite: all I brought with me was a list of topics I’m still working on, and after sandwiches and coffee in Geertjan’s kitchen, we spent a fun hour putting together demos, learning about the weird and wonderful edge cases of modern web standards (did you know border-radius can have EIGHT different values? 🤯)

Here’s a few links to the stuff we looked at:

and the code from the session is all up on GitHub:

Fun session. And a nice reminder that not every tech event needs to be rehearsed and polished - sometimes all you need is people, coffee and curiosity.

"Lunch'n'Learn with the Amsterdam Java User Group" was posted by Dylan Beattie on 24 March 2025 • permalink

's-Hertogenbosch

There is a place in the Netherlands called ’s-Hertogenbosch. Yes, that’s not a typo. Its official legal place name begins with an apostrophe. The locals all call it Den Bosch (and never, ever mention that you won’t find Den Bosch on a map ‘cos why would anybody possibly need to know that?)

And, seeing it on a railway departure board earlier this morning, it occurs to me that if there’s anywhere in the world that figured out a lot of database stuff right from day 1, it’s probably the good people of ‘s-Hertogenbosch.

(obviously and shamelessly stolen from https://xkcd.com/327/ so if you like it go and buy one of Randall’s books or something. The anniversary edition of What If? is particularly good.)

"'s-Hertogenbosch" was posted by Dylan Beattie on 23 March 2025 • permalink

An Interactive CSS Flexbox Playground

CSS flexbox is fantastic… but it’s also incredibly complicated. A flex container has half-a-dozen different CSS rules which control how content will flex and flow within the container, and figuring out the exact combination that you’ll need to implement a particular design can be a lengthy and error-prone process.

A screenshot of Dylan's Interactive CSS Flexbox Playground

So I built a thing to make it a little easier to see what’s going on. It’s an interactive CSS flexbox playground. Based on - and with visuals inspired by - Chris Coyler’s excellent CSS Flexbox Layout Guide over at css-tricks.com, it’ll let you pick different values for all the various CSS flex properties and see how they affect your layout.

Check it out here:

https://dylanbeattie.net/tools/flexbox/

If you like this kind of thing, I’m running a couple of events next week talking about web standards - HTML, CSS, JavaScript, native browser APIs; all the cool stuff that used to require thousands of lines of JavaScript frameworks and polyfills that just works now because browsers are getting better all the time

On Monday 24th March I’m doing a ‘lunch & learn’ in Amsterdam:

https://www.meetup.com/amsterdam-java-user-group/events/306823736/?eventOrigin=your_events

then on Thursday 27th March, I’m running an online session with Tech Cornwall. 11:00-13:00 on Zoom, it’s free for members and £99 (+ VAT and booking fees) for non-members: check that out here:

https://techcornwall.co.uk/training/modern-fundamentals-of-web-application-development-masterclass/

Hopefully see you a few of you there.

"An Interactive CSS Flexbox Playground" was posted by Dylan Beattie on 22 March 2025 • permalink

Metaphors

Back in 2020, when we all had a lot more time on our hands, I would occasionally hang out on /r/WritingPrompts. I stumbled across this old post today and figured I’d post it here. You know. For posterity.

Writing Prompt: You’re on a space ship with a bunch of your crewmates. You’re the only human, and apparently metaphors are a strictly human behavior. You’ve learned to cope with this, but today you’ve decided to speak in only figures of speech as a prank on the others.

“Good morning, Harzz. I feel like death.”

“Captain, you cannot feel like death. Death implies the absence of perception - and furthermore, is an experience with which you, unlike me, cannot be familiar.”

Ah, Harzz. Great science officer… pain in the ass before I’ve had my morning coffee. I should have known better. I’m about to explain when… no. You know what? This is my ship, this is my crew, and I’m tired of having to break everything down into logical, literal phrases the whole time. Today, just for once, I’m going to talk how I want to talk. They can figure it out.

“Don’t worry, Harzz. I’m just yanking your chain. I’m just a bit wiped out today, that’s all. I’ll be as right as rain after I’ve had a cup of joe.”

I head to the galley, leaving the bemused Harzz staring after me. You know, this could actually be fun…

We’ve been out here six weeks, along the edge of the disputed zone. One of those missions that feels like more of a box-ticking exercise than anything else - the “dispute” turned into more of a cold war decades ago, we’ve surveyed every rock in this place a dozen times over. No settlements, no life signs, no hostiles… HQ thinks having a couple of ships along our edge of it keeps things under control, and so far they’re right. Looks like today’s gonna be another long, dull day of empty space and blank scopes.

Sometime around ten, I wander into the mess to find the crew gathered there. Harzz, Djanik, Kjin-ti… time to have a little fun. I pour myself a cup of coffee and sat down.

“Welcome, captain. We were just reviewing today’s mission telemetry. Would you like a report?”

“No, Djanik, that’s OK. I’ll review it later. I was just thinking, you know, us out here together all these weeks, maybe it’s time we got to know each other a little.”

“Are you concerned about the crew’s performance, captain?”

“No, nothing like that. Just… you have to admit, this mission isn’t exactly keeping us busy. Thought maybe we could swap a few stories, help to pass the time. Did I ever tell you about my parents?”

“Your parents, captain?”

Here we go. This was gonna be fun.

“Yeah. You probably know my dad - he’s a big cheese, was one of the top brass for a while. It wasn’t always easy for him - he was always the kind of guy who called his own tune, y’know, marched to the beat of his own drum.”

“Captain, forgive me, I had no idea your family were musicians. I thought your father was an officer in the Federation.”

“Yes”, interjects Djanik, “and I had always believed your species was carbon-based. I did not know it was possible to create sentience from dairy products and metal alloys.”

I go on. “Well, he was a real high flyer back in his academy days - gave him a reputation as a bit of a hard-ass”

“I was unaware that altitude affected the composition of your species’ buttocks, Captain. This is fascinating.”

I catch Kjin-ti whispering to him “don’t be an idiot, Djanik! The captain already said his father was top brass - that explains the altitude and the composition!”

I’m already struggling to keep a straight face. “One night, dad and some of his classmates head out - they got some shore leave, decide to go out, paint the town red, see if they can pick up some birds”.

“Your father’s dedication to urban maintenance and wildlife conservation must have impressed the examiners at the Academy, captain”

“Perhaps, Djanik. Perhaps. Now, you gotta realise, my dad was normally an early bird - up at the crack of dawn most days…”

(I overhear Kjin-ti again: “Djanik, I have never heard the dawn crack… is this an Earth phenomenon?”. Djanik replies “I am confused as well, Kjin-ti. The captain’s father is now a bird made of brass and cheese. I am finding the aerodynamics difficult to calculate.”)

“…but my mum was a night owl; the kind of woman who was always burning the candle at both ends. Well, story goes, their eyes met across a crowded dance floor.”

“Their eyes? Did the rest of their bodies meet as well, captain?”

I laugh. “I guess you could say that, Kjin-ti. They were like glue after that night.”

Djanik nods. “Your mother must have used the heat from her candle to catalyse the proteins in your father and create an adhesive. I hope her feathers were not damaged during the process.”

Just as I can’t hold it any more, the alarm rings out. Djanik’s face is impassive. “High alert, captain. All stations.”

“Wait.”

The crew stop and stare at me. This was irregular.

“High alert, Mr Djanik? How high?”

“I… do not understand the question, captain.”

“Djanik, you said there was a high alert. I would like to know: how high is the alert?”

“I… captain, it is a high alert. We should respond at once!”

“Computer, cancel alert.” The crew are all staring at me now. “I’m sorry I deceived you. There is no alert. I was merely trying to make a point. When the alarm went off, you all recognised it as a high alert, correct?”

They nod.

“But that doesn’t mean anything, really, does it? The alert doesn’t actually have a height.”

They’re still staring, but the penny is starting to drop (I must remember to try that one on them later.)

“So… a high alert is more serious than a regular alert… yes?”

They nod again.

“Why do you think that is?”

Kjin-ti figures it out first. “Gravity, captain. Your species evolved language on a planet with gravity. You associate height with magnitude - size, scale, danger. For your ancestors, big things were high, and big things were dangerous.”

I smile. “Go on…”

“…and…” the leap in cognition is right there. She goes for it. “…and your language is built on comparisons. This is why you speak of turning up audio signals and turning down invitations, when neither of these involves a change of altitude.”

Djanik is deep in thought. “So, you say your father was a big cheese… and large things are important in your society. Was your father made of cheese, captain?”

“No, Djanik. We humans don’t just use spatial metaphors about size and height. We use images from nature, from our surroundings. Among my ancestors, to own a large piece of cheese was a sign of wealth and affluence, at a time when many humans had insufficient food.”

“And your mother… was not really an owl.”

“No, Harzz. She was 100% human, same as my father, same as me. But the owl was a nocturnal bird back on Earth, so people who stayed up past dark were called night owls.”

“I see. Captain, your species’ style of communication is highly illogical… but I begin to see how, in the absence of telepathy or pheromones, it may have given you an evolutionary advantage. Fascinating.”

The crew sit in contemplative silence for a few minutes. I pour another cup of coffee and return to the bridge, check the readouts, lay in a course, and the ship thunders to life, tongues of flame licking from her engines, an arrowhead streaking through the heavens, the stars around us an infinity of diamonds scattered across the velvet darkness of space.

"Metaphors" was posted by Dylan Beattie on 16 March 2025 • permalink

"Open Source, Open Mind" - A Free Meetup with Info Support in Veenendaal

On March 19th, I’ll be speaking at a free meetup in Veenendaal in the Netherlands, hosted by the wonderful folks over at Info Support, all about the history - and future - of “free software”. We’re coming up on half a century of folks giving their code away for free, but we’re still not entirely sure what “free software” is, how it works - or whether it’s possible to create a truly sustainable ecosystem around free and open source software.

A promo banner for the meetup "Open Source, Open Mind Met Dylan Beattie"

Come along and hear about the history of open source, free software, the GNU project, Commander Keen, WordPress, FluentAssertions, Redis… and more.

Sign up here: https://www.infosupport.com/open-source-open-mind/

See you there!

""Open Source, Open Mind" - A Free Meetup with Info Support in Veenendaal" was posted by Dylan Beattie on 04 March 2025 • permalink
dylan beattie dot net