At the end of a work trip to Amsterdam, came out this morning to find a few geocaches before catching the train back home. Thanks for the history lesson! SL, TFTC.
My work team and I have been meeting in Amsterdam, but this is our “afternoon off” so we’re going to the maritime museum. I’m not convinced that the person I found was particularly
beautiful, but I appreciated the hint anyway! Dragged one of my teammates along. Greetings from Oxfordshire, UK (and around the world!).
Big thanks to the cache owner for their note, letting me know that the cache location is still accessible. Somehow I’d not
seen the obvious route. Followed a family of ducks and soon found the cache location. So excited I could jump for joy.
FP awarded in part for the lovely cache but mostly for the attentive CO who posted a note so promptly.
TFTC!
My work colleagues from around the world have gathered for a meeting at a hotel near here. I woke a little early this morning and so I decided to come out and try to find a couple of
geocaches before our team meeting starts.
After failing to find nearby GCA7Q4A “Elephant Parade” owing to construction work, I was hopeful of a find here.
The coordinates put me exactly on top of a likely hiding place, and with a little exploration (and some pretending to tie my shoes!) I had the cache in my hand. SL, TFTC.
Listened for water pumping but couldn’t hear any over the traffic noise, I’m afraid! Greetings from Oxfordshire, UK.
When we’ve not been out tackling escape rooms, finding geocaches, and eating curry, we’ve been doing a variety of
activities to help solidify our new team’s goals, priorities, and expertise: y’know, the normal things you might expect on a company away week.
I volunteered to lead the initial session on our first day with a couple of icebreaker games, which went well enough that I’m inclined to share them here in case they’re of any use to
you. The games we played are called Heraldry and Compairs. Let’s take a look:
Heraldry
I was looking at the coat of arms of Noord Holland, the province in which Amsterdam lies, and thinking about all the symbolism and propaganda that’s encoded into traditional heraldry,
and how much effort it takes to decode it… unless you just, y’know, guess!
I asked each participant to divide a shield into five quadrants and draw their own coats of arms, featuring aspects of (a) their work life, (b) their personal life, (c) something they
value, (d) something they’re good at, and (e) something surprising or unusual. I really wanted to keep the time pressure on and not allow anybody to overthink things, so I set a
5-minute timer from the moment everybody had finished drawing their shield outline.
Then, everybody passed their drawing to the right, and each person in turn tried, as best they could, to introduce the person to their left by attempting to interpret their
neighbour’s drawing. The known categories helped to make it easier by helping people latch onto something to start talking about, but also more-challenging as people second-guessed
themselves (“no, wait, maybe it’s sailing you’re good at and guitar you play in your personal life?”).
After each introduction is made, the person being introduced gets to explain their heraldry for themselves, congratulating their introducer on the things they got right and their
close-guesses along the way.
It’s sort-of halfway between “introduce your neighbour” and “pictionary”. And it worked well to get us warmed-up, feeling a little silly, knowing one another slightly better, and in a
space in which everybody had been expected to have spoken and to have made a harmless mistake (everybody managed to partially-interpret a shield correctly). A
useful place to be at the end of an icebreaker exercise is left with the reminder that we are, after all, only human.
Compairs
Next up, we played a game only slightly inspired by witnessing a game of Mr and Mrs the other week3.
I threw together a Perchance (which, in the nature of such things, is entirely open-source and you’re welcome to adapt it for
your own use) that generated a series of randomly-selected pairs of teammates and asked a question to differentiate the two of them.
Participants other than the two shown on the screen were challenged to guess the answer to the question. Sometimes the questions would have a definitive answer, and sometimes
not: the joy was in the speculation! “Hmm, I know that Dan’s done quite a bit of globetrotting… but could he actually have travelled further East than a colleague who lives much
further East than him?”
After a few seconds to a minute, once their colleagues had settled on an answer, the people listed on the question were encouraged to make their own guesses. Usually they’ll have a
better idea as they are one of the data points, but that’s not always true!
There’s no points, and you can play for as long as you like so long as it’s long enough that everybody gets at least one turn, so it’s a good “fill the rest of the time slot” game. It
follows Heraldry moderately well as an icebreaker double-feature because the former is firstly about learning things about one another (and to a lesser extent guessing), and
the latter is about the opposite.
I came out of both games knowing more about the humans behind the screens in my new team, and it seemed to open up the room for some good discussions afterwards, so the social lubricant
effect was clearly effective too. If you give them a go or adapt them into anything else, let me know!
Footnotes
1 Our absent colleague instead had to tower over us on an enormous projector screen.
2 The red (“gules”) upright (“rampant”) lion in the coat of arms possibly comes from the
heraldry of the city of Gelderen in Germany, but once part of the Dutch Republic. The lions striding (“passant”) to the left (“to dexter”) but turning to face you (“guardant”) come
from the arms of Fryslân (Friesland), and its rectangles represent the districts of Fryslân. Aren’t you glad you asked.
3 Also known as The Newlyweds Game after the US game show of that name and basically the same format, Mr and Mrs is a game in which a (typically newly) married couple are asked questions about one
another and their lives together which they answer separately and then those answers are compared. This induces a reaction of compersion when they’re “right” and in-sync and when the
couple disagree it results in amusement. Or possibly divorce.
I’ve recently changed team at work, so my new team and I have gotten together – from the UK, France, Poland, India and South Africa – here in Amsterdam to meet up in person and do some work “together” for a change: normally we work entirely
distributed. After our day of work we did an escape room together, then on our way to dinner I dragged them out of their way a bit to find this geocache.
Quick easy find, TFTC! Greetings from Oxfordshire, UK (and from many other corners of the
world, courtesy of Team Desire from Automattic!).
Even on a Monday morning the muggles are lining up to hold the trolley. Not me. As an actual magician, I’ve no
need for such frivolities. Instead, as I’m passing anyway on my way to a train to an entirely different magical land (The Netherlands), I just snapped a selfie with the sign visible in
the background. Easy peasy. TFTC.
QEF while out hunting for some breakfast this morning between trains on my journey from Oxford to Amsterdam for a work meetup. Lovely thematic cache container in a great spot. FP awarded. TFTC.
1 This being my 100th post relies on you using non-pedant counting, that is: allowing
“checkins” like this to count as fully-fledged blog posts. There’s more thought given to
this question in my blog post about Kev Quirk’s #100DaysToOffload challenge, but the short answer seems to be that the challenge’s
creator would count this as my 100th post of the year, so perhaps you should too. If you don’t, though, then I’ve so-far published 74 posts this year and – thanks to Bloganuary and a general renewed focus on blogging I’m probably still on-track to make 100. And if I remember to
do so I’ll post a footnote for you pedants when I do.
During a family holiday last week to the Three Valleys region of the French Alps for some skiing1, I
came to see that I enjoy a privilege I call the freedom of the mountain.
The Freedom
The freedom of the mountain is a privilege that comes from having the level of experience necessary to take on virtually any run a resort has to offer. It provides a handful of
benefits denied to less-confident skiers:
I usually don’t feed to look at a map to plan my next route; whichever way I go will be fine!
When I reach one or more lifts, I can choose which to take based on the length of their queue, rather than considering their destinations.
When faced with a choice of pistes (or an off-piste route), my choice can be based on my mood, how crowded they are, etc., rather than their rated difficulty.
The downside is that I’m less well-equipped to consider the needs of others! Out skiing with Ruth one morning I suggested a route back into town that “felt easy” based on my previous
runs, only to have her tell me that – according to the map – it probably wasn’t!
Approaching the Peak
The kids spent the week in lessons. It’s paying off: they’re both improving fast, and the eldest has got all the essentials down and it’s working on improving her parallel turns and on
“reading the mountain”. It’s absolutely possible that the eldest, and perhaps both of them, will be a better skier than me someday2.
Maybe, as part of my effort to do what I’m bad at, I should have another go at learning to
snowboard. I always found snowboarding frustrating because everything I needed to re-learn was something that I could already do much better and easier on skis. But perhaps if I can
reframe that frustration through the lens of learning itself as the destination, I might be in a better place. One to consider for next time I hit the piste.
My very first “ski-o-cache” was 9 years ago, down in La Tania: this was my second! Found the host easily at the
coordinates and found the cache in the third hiding place I tried. It’s quite stiff and hard to extract right now! Needed to wait to return it while some other skiers took pictures of
one another at the GZ, but got there in the end. Salutations d’Oxford, en Angleterre. MPLC!
A childhood move
Shortly after starting primary school my family and I moved from Aberdeen, Scotland to the North-West of England. At my young age, long car journeys – such as those we’d had to make
to view prospective new houses – always seemed interminably boring, but this one was unusually full of excitement and anticipation. The car was filled to the brim with everything we
needed most-imminently to start our new lives5, while the removals lorry followed a
full day behind us with everything less-essential6.
I’m sure that to my parents it was incredibly stressful, but for me it was the beginning of an amazing voyage into the unknown.
Live on Earth
Back in 1999 I bought tickets for myself and two friends for Craig Charles’ appearance in Aberystwyth as part of his Live on
Earth tour. My two friends shared a birthday at around the date of the show and had expressed an interest in visiting me, so this seemed like a perfect opportunity. Unfortunately
I hadn’t realised that at that very moment one of them was preparing to have their birthday party… 240 miles away in London. In the end all three of us (plus a fourth friend who
volunteered to be and overnight/early morning post-nightclub driver) attended both events back to back! A particular highlight came
at around 4am we returned from a London nightclub to the suburb where we’d left the car to discover it was boxed in by some inconsiderate parking: we were stuck! So we gathered some
strong-looking fellow partygoers… and carried the culprit’s car out of the way7. By
that point we decided to go one step further and get back at its owner by moving their car around the corner from where they’d parked it. I reflected on parts of this anecdote back in 2010.
The winner
At somewhere between 500 and 600 road miles each way, perhaps the single longest road journey I’ve ever made without an overnight break was to attend a
wedding.
The wedding was of my friends Kit and Fi, and took place a long, long way up into Scotland.
At the time I (and a few other wedding guests) lived on the West coast of Wales. The journey options between the two might be characterised as follows:
the fastest option: a train, followed by a ludicrously expensive plane, followed by a taxi
the public transport option: about 16 hours of travel via a variety of circuitous train routes, but at least you get to sleep some of the way
drive along a hundred miles of picturesque narrow roads, then three hundred of boring motorways, then another hundred and fifty of picturesque narrow roads
Guess which approach this idiot went for?
Despite having just graduated, I was still living very-much on a student-grade budget. I wasn’t confident that we could afford both the travel
to and from the wedding and more than a single night’s accommodation at the other end.
But there were four of us who wanted to attend: me, my partner Claire, and our friends Bryn and Paul. Two of the four were qualified to drive and could be insured on Claire’s
car8. This provided an opportunity:
we’d make the entire 11-or-so-hour journey by car, with a pair of people sleeping in the back while the other pair drove or navigated!
It was long, and it was arduous, but we chatted and we sang and we saw a frankly ludicrous amount of the A9 trunk road and we made it to and from what was a wonderful wedding on our
shoestring budget. It’s almost a shame that the party was so good that the memories of the road trip itself pale, or else this might be a better anecdote! But altogether, entirely a
worthwhile, if crazy, exercise.
2 Also, wow: thanks to staying up late with my friend John drinking and mucking about with the baby grand piano in the lobby of the hotel we’re staying at, I might be first to publish a post for today’s Bloganuary!
3 Strangely, all three of the four journeys I’ve considered seem to involve Scotland.
Which I suppose shouldn’t be too much of a surprise, given its distance from many of the other places I’ve lived and of course its size (and sometimes-sparse road network).
4 Okay, probably not for the entire journey, but I’m certain it must’ve felt like it.
5 Our cargo included several cats who almost-immediately escaped from their cardboard
enclosures and vomited throughout the vehicle.
6 This included, for example, our beds: we spent our first night in our new house
camped together in sleeping bags on the floor of what would later become my bedroom, which only added to the sense of adventure in the whole enterprise.
7 It was, fortunately, only a light vehicle, plus our designated driver was at this point
so pumped-up on energy drinks he might have been able to lift it by himself!
8 It wasn’t a big car, and in hindsight cramming four people into it for such a
long journey might not have been the most-comfortable choice!
There are video games that I’ve spent
many years playing (sometimes on-and-off) before finally beating them for the first time. I spent three years playing Dune II before I finally beat it as every house. It took twice that to reach the end of Ultima Underworld II. But
today, I can add a new contender1 to that list.
Today, over thirty-five years after I first played it, I finally completed Wonder Boy.
My first experience of the game, in the 1980s, was on a coin-op machine where I’d discovered I could get away with trading the 20p piece I’d been given by my parents to use as a deposit
on a locker that week for two games on the machine. I wasn’t very good at it, but something about the cutesy graphics and catchy chip-tune music grabbed my attention and it became my
favourite arcade game.
I played it once or twice more when I found it in arcades, as an older child. I played various console ports of it and found them disappointing. I tried it a couple of times in MAME. But I didn’t really put any effort into it until a hotel we stayed at during a family holiday to Paris in October had a bank of free-to-play arcade machines
rigged with Pandora’s Box clones so they could be used to play a few thousand different arcade classics. Including Wonder Boy.
Off the back of all the fun the kids had, it’s perhaps no surprise that I arranged for a similar machine to be delivered to us as a gift “to the family”2
this Christmas.
And so my interest in the game was awakened and I threw easily a hundred pounds worth of free-play games of Wonder Boy3 over the last few days. Until…
…today, I finally defeated the seventh ogre4,
saved the kingdom, etc. It was a hell of a battle. I can’t count how many times I pressed the “insert coin” button on that final section, how many little axes I’d throw into the beast’s
head while dodging his fireballs, etc.
So yeah, that’s done, now. I guess I can get back to finishing Wonder Boy: The Dragon’s Trap, the 2017 remake of a 1989 game I
adored!5
It’s aged amazingly well!
Footnotes
1 This may be the final record for time spent playing a video game before beating it,
unless someday I ever achieve a (non-cheating) NetHack ascension.
2 The kids have had plenty of enjoyment out of it so far, but their time on the machine is
somewhat eclipsed by Owen playing Street Fighter II Turbo and Streets of Rage on it and, of course, by my rediscovered obsession with Wonder Boy.
3 The arcade cabinet still hasn’t quite paid for itself in tenpences-saved,
despite my grinding of Wonder Boy. Yet.
4 I took to calling the end-of-world bosses “ogres” when my friends and I swapped tips for
the game back in the late 80s, and I refuse to learn any different name for them.[footnote], saved Tina[footnote]Apparently the love interest has a name. Who knew?
5 I completed the original Wonder Boy III: The Dragon’s Trap on a Sega Master
System borrowed from my friend Daniel back in around 1990, so it’s not a contender for the list either.
I’m sure I can’t be the only person who’s been asked “why can’t the (or ‘shouldn’t the’) WordPress post editor let multiple people edit post at the same time”. Often, people
will compare it to e.g. Google Docs.
Dawid summarised the challenging issues in any effort to implement this much-desired feature. Some of them are examples of those unsolved problems that keep rearing their heads in
computer science, like the two generals’ problem, but even the solvable problems are difficult: How does one
handle asynchronous (non-idempotent) commutative operations? How is the order of disparate actions determined? Which node is the source of truth? If a server is used, where is that
server (with a nod to quite how awful the experience of implementing a Websockets server in PHP can be…)? And so on…
I really appreciated Dawid’s reference to the various bits of academic literature that’s appeared over the last four decades (!) about how these problems might be solved. It’s a strong
reminder that these things we take for granted in live-updating multi-user web applications are not trivial and every question you can answer raises more questions.
There’s some great early proof-of-concepts, so we’re “getting there”, and it’s an exciting time. Personally, I love the idea of the benefits this could provide for offline editing
(perhaps just because I’m still a huge fan of a well-made PWA!).
James Giroux’s goal: that we all become more curious about and more invested in our team’s experiences, from a humanistic standpoint. His experience of companies with organic growth of
software companies is very, very familiar: you make a thing and give it away, then you need more people, then you’ve somehow got a company and it’s all because you just had an idea
once. Sounds like Three Rings!
James was particularly keen to share with us the results of his Team Experience Index research, and I agree that some of the result are
especially exciting, in particularly the willingness of underrepresented groups, especially women, to enagage with the survey: this provides hugely valuable data about the health of
teams working in the WordPress space.
“We have this project that we work with and contribute to, that we love,” says James, in an attempt to explain the highly-positive feedback that his survey respondents gave when asked
questions about the authenticity of their purpose and satisfaction in their role.
So, what do we do with these findings? How do WordPress-ey companies improve? James recommends that we:
Get better are showing what recognition, celebration, and career growth looks like,
Improve support and training for team leaders to provide them with the tools to succeed and inspire, and
Bridge the gap between leadership and team members with transparent, open dialogue.
Good tips, there.
The Big Photo
A WordCamp tradition is to try to squeeze every willing participant into a photo. Clearly with the size that these events are, nowadays, this requires some wrangling (and, in this case,
the photographers standing atop the roof of a nearby building to get everybody into frame).
I’ll have to keep an eye out for the final picture and see if I can find myself in it.
I always find that learning about bleeding edge CSS techniques makes me feel excited and optimistic, perhaps because
CSS lends itself so well towards a progressive enhancement approach to development: often, you can start using a new technique
today and it’ll only benefit, say, people using a beta version of a particular browser (and perhaps only if they opt-in to the applicable feature flag). But if you’ve designed
your site right then the lack of this feature won’t impact anybody else, and eventually the feature will (hopefully) trickle-down into almost everybody’s Web experience.
Anyway, that’s what Fellyph Cintra says too, but he adds that possibly we’ve still not grown out of thinking that browsers take a long
time between versions. 5 years passed between the release of Internet Explorer 6 and Internet Explorer 7, for example! But nowadays most browsers are evergreen with releases each
month! (Assuming we quietly ignore that Apple don’t sent new versions of Safari to old verisons of MacOS, continuing to exacerbate a problem that we used to see with Internet Explorer
on Windows, ahem.)
An important new development may come from Baseline, a project to establish a metric of what you can reliably use on the Web today. So a
bit like Can I Use, I guess, but taken from the opposite direction: starting from the browsers and listing the features, rather than the other way
around.
Anyway, Fellyph went on to share some exciting new ideas that we should be using, like:
object-fit and object-position, which can make the contents of any container “act like” a background
aspect-ratio, which I’m already using and I love, but I enjoyed how Fellyph suggested combining the two to crop images to a fluid container on the client side
scroll-behavior: smooth, which I’ve used before; it’s pretty good
clamp, which I use… but I’m still not sure I fully grok it: I always have to load some documentation with examples when I use it
@container queries, which can apply e.g. (max-width: ...) rules to things other than the viewport, which I’ve not found a need for yet but I can see the
value of it
@layers, which grant an additional level of importance in the cascade: for example, you might load a framework into a layer (with @import url(...)
layer(framework)) which is defined as a lower-priority than your override layer, meaning you won’t have to start slapping !important all over the shop
@media (400px <= width <= 600px)-style media queries, which are much easier to understand than min-width: if you’re used to thinking in a
more-procedural programming language (I assume they work in container queries too!)
It’s also worth remembering:
@supports, which is badass and I love and use it already (it was especially useful as display: grid began to roll out and I wanted to start using it but
needed to use a fallback method for browsers that didn’t support it yet
:has(), which I’ve long thought is game-changing: styling something based on what it contains is magical; not really suitable for mainstream use yet without
Firefox support, though (it’s still behind a feature flag)! Fellyph sold me on the benefit of :not(:has(...)), though!
Nesting, which again doesn’t have Firefox support yet but provides SCSS-like nesting in CSS, which is awesome
Scroll-driven animations, which can e.g. do parallax effects without JavaScript (right now it’s Canary only, mind…), using e.g. animation-timeline: and
animation-range: to specify that it’s the scroll position within the document that provides the timeline for the animation
And keeping an eye on upcoming things like text-balanced (which I’m already excited by), popover, selectmenu, view transitions (which I’ve been
experimenting with because they’re cool), and scoped style.
For my second workshop, I joined Google’s Adam Silverstein to watch him dissect a few participants’ websites performance using Core Web
Vitals as a metric. I think I already know the basics of Core Web Vitals, but when it comes to improving my score (especially on work-related sites with
unpleasant reliance on heavyweight frameworks like React, in my experience).
We talked a lot about render blocking (thanks to JS and CSS in the
<head>), thread blocking (by scripts, especially those reacting to user input), TTFB (relating to actual network
and server performance, or at least server-side processing), TBT (the time between FCP and TTI), and the upcoming change to measure INP rather than FID. That’s a lot of acronyms.
The short of it is that there are three pillars to Core Web Vitals: loading (how long until the page renders), interactivity (how long until the page
responds to user interaction), and stability (how long it takes for the page to cease layout shifts as a result of post-load scripts and stylesheets). I was pleased
that Adam acknowledged the major limitation of lab testing resulting from developers often using superior hardware and Internet connections to typical users, and how if you’re
serious about performance metrics you’ll want to collect RUM data.
I came away with a few personalised tips, but they’re not much use for your site: I paid attention to the things that’ll be helpful for the sites I look after. But
I’ll be taking note of his test pages so I can play with some of the tools he demonstrated later on.
I couldn’t liveblog this because I spent too much of the session applauding. A few highlights from memory:
Phase 2 (of 4) of Gutenberg is basically complete, which is cool. Some back-and-forth about the importance of phase 4 (bringing better multilingual support to WordPress) and how it
feels like it’s a long way away.
In the same vein as his 2016 statement that WordPress developers should “learn JavaScript deeply”, Matt leant somewhat into the idea that from today they
should “watch AI carefully”; I’m not 100% convinced, but it’s not been stopping me from getting involved with a diversity of AI experiments (including some WordPress-related ones)
anyway.
Musings about our community being a major part of why WordPress succeeded (and continues to thrive) unlike some other open source projects of its era. I agree that’s a
factor, but I suspect that being in the right place at the right time was also important. Perhaps more on that another time.
Announcement of the next WordCamp Europe location.