The Miracle Sudoku

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

I first saw this video when it was doing the rounds three years ago and was blown away. I was reminded of it recently when it appeared in a blog post about AI’s possible future role in research by Terence Eden.

I don’t even like sudoku. And if you’d told me in advance that I’d enjoy watching a man slowly solve a sudoku-based puzzle in real-time, I’d have called you crazy. But I watched it again today, for what must’ve been the third time, and it’s still magical. The artistry of puzzle creator Mitchell Lee is staggering.

If you somehow missed it the first time around, now’s your chance. Put this 25-minute video on in the background and prepare to have your mind blown.

Some Days the School Run is Easy

A video, in which I rant about the challenges of carrying two-childrensworth of school gear while dragging our dog, herding somebody else’s dog, and trying to stop the kids from fighting. Some mornings it’s easy. Today… it was not. Also available on YouTube.

Pencil sketch, on lined paper, showing a scooter, rucksack, guitar case, two book bags, two water bottles, filled poop bag, and a small dog. Above is handwritten "You took your time!"
A friend said that this story sounded like it belonged in an illustrated children’s book and sketched this while on her first call of the morning.

Full transcript of the audio (except for the ocassional snorting sounds of our noisy Frenchie as she snuffles about in the background):

The morning school run is never effortless. But some days it’s easy.

Today was not one of those days.

It’s a Wednesday. So, for some strange reason, that’s the heaviest-laden day. And so, with the eldest child on her bike and the youngest on his scooter I set off, pulling the dog, and carrying a PE kit, two book bags, two water bottles, and a guitar.

I should have realised early on that today wasn’t going to be a day that the universe smiled on me when the dog immediately ran off into a ditch to take a dump and I had to clamber down into the ditch with a poop bag to fill it.

But while I’m coming out of the ditch I discover that the youngest child has zipped off up ahead in an effort to ram into his older sister and in doing so has inevitably flipped himself over the handlebars of his scooter and is now lying, crying, in the middle of the road.

So I go over to him dragging the dog and carrying a PE kit and two book bags and two water bottles and a guitar and a bag full of poop and as best I can, carrying all those things, console him and eventually, with some encouragement he’s able to get back up and carry on walking to school, but says he can no longer scoot, so I have to carry the scooter.

Now I’m dragging a dog and carrying a poop bag and a PE kit and two water bottles and two book bags and guitar… and a scooter… and that’s when the oldest child manages to throw the chain off her bike.

Now she’s had little experience, in her defence, of the chain coming off her bike. And so she does the absolute worst thing possible which is tries to pedal as hard as possible to solve the problem which makes it much worse. By the time I get there the chain is royally snarled between some of the sprockets and their housing, so I put down the guitar and the bag of poop and I hand the lead to the younger child so that I can try to unpick the older child’s chain from her bike, getting myself covered in oil.

And that’s when I notice the commotion up ahead. There are some workmen who are rebuilding the wall outside Letterbox Cottage, and – up ahead of them – barking furiously, is a small dog. This dog is Lovey, and she belongs to a friend of ours. And she’s probably the best example of whatever the opposite of nominative determinism is. Because Lovey is a truculent little bitch. Lovey is a tiny small yappy dog who will start a fight with other dogs, try to see off workmen (which is what she’s doing at the time), and she’ll bark at passing cars. And right now she’s running free, unattended, in the middle of the road. And one of the workmen says to me, “Oh, do you know who’s dog that is?” and I have to admit that yes, I do.

So, dragging our dog and carrying a PE kit and two book bags and two water bottles, a guitar, a scooter, and a bag of poop, I have to help round up this lost dog, who – if it gets too close to our dog will start a fight – and get it back to the house where it lives.

So the younger child and I manage to succeed in our mission and return this lost dog and get back on our way to school and it’s there that we finally catch up with the older child who’s gotten bored and cycled ahead. And when we catch up to the older child with me dragging the dog and carrying a PE kit and two book bags and two water bottles and a guitar and a scooter and a bag of poop… she looks up at me and says, “Ugh! You took your time!”

Suffice to say, it’s a good job I Iove those children.

×

Solving Jigidi… Again

(Just want the instructions? Scroll down.)

A year and a half ago I came up with a technique for intercepting the “shuffle” operation on jigsaw website Jigidi, allowing players to force the pieces to appear in a consecutive “stack” for ludicrously easy solving. I did this partially because I was annoyed that a collection of geocaches near me used Jigidi puzzles as a barrier to their coordinates1… but also because I enjoy hacking my way around artificially-imposed constraints on the Web (see, for example, my efforts last week to circumvent region-blocking on radio.garden).

My solver didn’t work for long: code changes at Jigidi’s end first made it harder, then made it impossible, to use the approach I suggested. That’s fine by me – I’d already got what I wanted – but the comments thread on that post suggests that there’s a lot of people who wish it still worked!2 And so I ignored the pleas of people who wanted me to re-develop a “Jigidi solver”. Until recently, when I once again needed to solve a jigsaw puzzle in order to find a geocache’s coordinates.

Making A Jigidi Helper

Rather than interfere with the code provided by Jigidi, I decided to take a more-abstract approach: swapping out the jigsaw’s image for one that would be easier.

This approach benefits from (a) having multiple mechanisms of application: query interception, DNS hijacking, etc., meaning that if one stops working then another one can be easily rolled-out, and (b) not relying so-heavily on the structure of Jigidi’s code (and therefore not being likely to “break” as a result of future upgrades to Jigidi’s platform).

Watch a video demonstrating the approach:

It’s not as powerful as my previous technique – more a “helper” than a “solver” – but it’s good enough to shave at least half the time off that I’d otherwise spend solving a Jigidi jigsaw, which means I get to spend more time out in the rain looking for lost tupperware. (If only geocaching were even the weirdest of my hobbies…)

How To Use The Jigidi Helper

To do this yourself and simplify your efforts to solve those annoying “all one colour” or otherwise super-frustrating jigsaw puzzles, here’s what you do:

  1. Visit a Jigidi jigsaw. Do not be logged-in to a Jigidi account.
  2. Copy my JavaScript code into your clipboard.
  3. Open your browser’s debug tools (usually F12). In the Console tab, paste it and press enter. You can close your debug tools again (F12) if you like.
  4. Press Jigidi’s “restart” button, next to the timer. The jigsaw will restart, but the picture will be replaced with one that’s easier-to-solve than most, as described below.
  5. Once you solve the jigsaw, the image will revert to normal (turn your screen around and show off your success to a friend!).

What makes it easier to solve?

The replacement image has the following characteristics that make it easier to solve than it might otherwise be:

  • Every piece has written on it the row and column it belongs in.
  • Every “column” is striped in a different colour.
  • Striped “bands” run along entire rows and columns.

To solve the jigsaw, start by grouping colours together, then start combining those that belong in the same column (based on the second digit on the piece). Join whole or partial columns together as you go.

I’ve been using this technique or related ones for over six months now and no code changes on Jigidi’s side have impacted upon it at all, so it’s probably got better longevity than the previous approach. I’m not entirely happy with it, and you might not be either, so feel free to fork my code and improve it: the legiblity of the numbers is sometimes suboptimal, and the colour banding repeats on larger jigsaws which I’d rather avoid. There’s probably also potential to improve colour-recognition by making the colour bands span the gaps between rows or columns of pieces, too, but more experiments are needed and, frankly, I’m not the right person for the job. For the second time, I’m going to abandon a tool that streamlines Jigidi solving because I’ve already gotten what I needed out of it, and I’ll leave it up to you if you want to come up with an improvement and share it with the community.

Footnotes

1 As I’ve mentioned before, and still nobody believes me: I’m not a fan of jigsaws! If you enjoy them, that’s great: grab a bucket of popcorn and a jigsaw and go wild… but don’t feel compelled to share either with me.

2 The comments also include asuper-helpful person called Rich who’s been manually solving people’s puzzles for them, and somebody called Perdita who “could be my grandmother” (except: no) with whom I enjoyed a conversation on- and off-line about the ethics of my technique. It’s one of the most-popular comment threads my blog has ever seen.

Satoru Iwata’s first commercial game has a secret

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Codex (YouTube)

This was a delightful vlog. It really adds personality to what might otherwise have been a story only about technology and history.

I subscribed to Codex’s vlog like… four years ago? He went dark soon afterwards, but thanks to the magic of RSS, I got notified as soon as he came back from his hiatus.

Yesterday’s Internet Today! (Woo DM 2023)

The week before last I had the opportunity to deliver a “flash talk” of up to 4 minutes duration at a work meetup in Vienna, Austria. I opted to present a summary of what I’ve learned while adding support for Finger and Gopher protocols to the WordPress installation that powers DanQ.me (I also hinted at the fact that I already added Gemini and Spring ’83 support, and I’m looking at other protocols). If you’d like to see how it went, you can watch my flash talk here or on YouTube.

If you love the idea of working from wherever-you-are but ocassionally meeting your colleagues in person for fabulous in-person events with (now optional) flash talks like this, you might like to look at Automattic’s recruitment pages

The presentation is a shortened, Automattic-centric version of a talk I’ll be delivering tomorrow at Oxford Geek Nights #53; so if you’d like to see it in-person and talk protocols with me over a beer, you should come along! There’ll probably be blog posts to follow with a more-detailed look at the how-and-why of using WordPress as a CMS not only for the Web but for a variety of zany, clever, retro, and retro-inspired protocols down the line, so perhaps consider the video above a “teaser”, I guess?

Geohashing expedition 2023-01-02 51 -1

This checkin to geohash 2023-01-02 51 -1 reflects a geohashing expedition. See more of Dan's hash logs.

Location

Muswell Hill, Piddington, Oxfordshire

Participants

Expedition

I bundled the dog into the car and drove out to Piddington, a couple of kilometres North of the hashpoint. Cherwell Council advertise a circular walk that seems to circle from the village (which looked like a good place to park) up to Muswell Hill, the summit of which is near the hashpoint.

She and I walked through Piddington, past the church, and up onto the path. A soggy kilometre or so later we quickly discovered that this was going to be more-challenging than I’d anticipated. We quickly got bogged down in a flooded field and needed to double-back. With my socks already soaking wet and the dog in a similar condition, we found a different route that looped around the entire hill and through an alpaca farm (or were they llamas?), then we worked our way up the South face of the hill, over the summit, and down to the hashpoint. We got there at 11:00 UTC, took a quick look around and pulled the closest thing a dog can manage to a silly grin, and then hacked our way back (by road) to Piddington for the drive home and some dry clothes.

Tracklog

Entire expedition

Walking part only

Photo

Dan - a man with a beard, wearing a grey fleece with a white poppy attached - crouches alongside his French Bulldog in a green field under a blue sky with a few wispy clouds.
Multi-species silly grin.

Video

Also available on YouTube.

Geohashing expedition 2022-10-24 51 -1

This checkin to geohash 2022-10-24 51 -1 reflects a geohashing expedition. See more of Dan's hash logs.

Location

Wharf Stream Way, Eynsham. I’ve visited this circular footpath many times to walk the dog or to take the children to swim in the river.

Participants

Plans

I hope to cycle/walk to the GZ about lunchtime? I’ve an opportunity to pass nearby the GZ between other errands this morning!

Expedition

I was excited to see this spot pop up on my radar, because it’s a lovely meadow that I’ve ocassionally walked my dog in, within comfortable cycling distance of my house. As it happened, I had an even easier route here because a drive this morning to drop the kids off at a half-term activity took me “close enough” to be worth stopping and walking from there.

I parked at The Talbot Inn, just West of the Swinford Toll Bridge (a bizzare old bridge that, for weird historical reasons, continues to use human operators to charge 5 pence per car to cross, which surely cannot be cost-effective!). From here, there’s a footpath along the back of the Seimens buildings in the nearby light industrial estate which eventually comes out into the Wharf Stream Way circular walk. It was pretty damp out here today and I quickly regretted my choice of light trousers which would have been fine to drive the kids to their camp and back but wasn’t really a good choice for stomping across the long grass of a damp meadow. Some way across I disturbed some grazing deer, but ultimatey it was following a deer-trodden trail that eventually provided the best route to the GZ.

I reached the GZ at 09:19, took a selfie, and then turned around to go and get to work. I also shot a video covering the whole expedition which is presented, unedited, below.

Tracklog

My GPSr kept a tracklog; note that this was an “on the way” stopoff so the start and end point isn’t the same!

Map showing a journey from Witney to Stanton Harcourt via Wharf Stream Way meadow, East of Eynsham.

Photos

Dan makes a silly grin while holding a GPS receiver in a damp grassy autumn meadow, on a grey and drizzly day.

Video

× ×

Beating Children at Mastermind [Video]

This post is also available as an article. So if you'd rather read a conventional blog post of this content, you can!

This video accompanies a blog post of the same title. The content is basically the same – if you prefer videos, watch this video. If you prefer blog posts, go read the blog post. You might also like to play with my Mastermind solver or view the source code.

Also available on YouTube and Facebook.

Dog; Person [Video]

This post is also available as an article. So if you'd rather read a conventional blog post of this content, you can!

This video accompanies a blog post of the same title. The content is basically the same – if you prefer videos, watch this video. If you prefer blog posts, go read the blog post.

Also available on YouTube and Facebook.

Note #20304

After talking about impulse control, our “puppy school” OABT half-jokingly issued homework to photograph our dogs waiting patiently next to their initial, written in treats. #holdmybeer

Do What You’re Bad At [Video]

This post is also available as an article. So if you'd rather read a conventional blog post of this content, you can!

This video accompanies a blog post of the same title. The content is basically the same – if you prefer videos, watch this video. If you prefer blog posts, go read the blog post. If you’re a superfan, try both and spot the differences. You weirdo.

Also available on YouTube or on Facebook.

Say… “Cheese?”

For lunch today I taste-tested five different plant-based vegan “cheeses” from Honestly Tasty. Let’s see if they’re any good.

Prefer video?

This blog post is available as a video (here or on YouTube), for those who like that sort of thing. The content’s slightly different, but you do get to see my face when I eat the one that doesn’t agree with me.

Background

I’ve been vegetarian or mostly-vegetarian to some degree or another for a little over ten years (for those who have trouble keeping up: I currently eat meat only on weekends, and not including beef or lamb), principally for the environmental benefits of a reduced-meat lifestyle. But if I’m really committed to reducing the environmental impact of my diet, the next “big” thing I still consume is dairy products.

My milk consumption is very low nowadays, but – like many people who might aspire towards dropping dairy – it’s quitting cheese that poses the biggest challenge. I’m not even the biggest fan of cheese, and I don’t know how I’d do without it: there’s just, it seems, no satisfactory substitute.

It’s possible, though, that my thinking on this is outdated. Especially in recent years, we’re getting better and better at making convincing (or, at least, tasty!) plant-based substitutes to animal based foods. And so, inspired by a conversation with some friends, I thought I’d try a handful of new-generation plant-based cheeses and see how I got on. I ordered a variety pack from Honestly Tasty (who’ll give you 20% off your first order if you subscribe your favourite throwaway email address to their newsletter) and gave it a go.

Bree

Dan eats some Bree.
It’s supposed to taste like Brie, I guess, but it’s not convincing. The texture of the rind is surprisingly good, but the inside is somewhat homogeneous and flat. They’ve tried to use mustard powder to provide Brie’s pepperiness and acetic acid for its subtle sourness, but it feels like there might be too much of the former (or perhaps I’m just a little oversensitive to mustard) and too little of the latter. It’s okay, but I wouldn’t buy it again.

Ched Spread

Dan eats Ched Spread.
This was surprisingly flavoursome and really quite enjoyable. It spreads with about the consistency of pâté and has a sharp tang that really stands out. You wouldn’t mistake it for cheese, but you might mistake it for a cheese spread: there’s a real “cheddary” flavour buried in there.

Blue

Dan eats 'Blue' Veganzola.
This is supposed to be modelled after Gorgonzola, and it might as well be because I don’t like either it or the cheese it’s based on. I might loathe Blue slightly less than most blue cheeses, but that doesn’t mean I’d willingly subject myself to this again in a hurry. It’s matured with real Penicillium Roqueforti, apparently, along with seaweed, and it tastes like both of these things are true. So yeah: I hated this one, but you shouldn’t take that as a condemnation of its quality as a cheese substitute because I’d still rather eat it than the cheese that it’s based on. Try for yourself, I guess.

Herbi

Dan eating Herbi.
This was probably my favourite of the bunch. It’s reminiscent of garlic & herb Boursin, and feels like somebody in the kitchen where they cooked it up said to themselves, “how about we do the Ched Spread, but with less onion and a whole load of herbs mixed-through”. It seems that it must be easier to make convincingly-cheesy soft cheeses than hard cheeses, but I’m not complaining: this would be great on toast.

Shamembert

Dan serves a Shamembert.
If you’d served me this and told me it was a baked Camembert… I wouldn’t be fooled. But I wouldn’t be disappointed either. It moves a lot like Camembert and it tastes… somewhat like it. But whether or not that’s “enough” for you, it’s perfectly delicious and I’d be more than happy to eat it or serve it to others.

In summary…

Honestly Tasty’s Ched Spread, Herbi, and Shamembert are perfectly acceptable (vegan!) substitutes for cheese. Even where they don’t accurately reflect the cheese they attempt to model, they’re still pretty good if you take them on their own merits: instead of comparing them to their counterparts, consider each as if it were a cheese spread or soft cheese in its own right and enjoy accordingly. I’d buy them again.

Their Bree failed to capture the essence of a good ripe Brie and its flavour profile wasn’t for me something to enjoy outside of its attempts at emulation. And their “Veganzola” Blue cheese… was pretty grim, but then that’s what I think of Gorgonzola too, so maybe it’s perfect and I just haven’t the palate for it.

× × × × ×

Gutenberg versus Elementor – the beginners challenge

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

What happens when you give Gutenberg and Elementor to complete Beginners? In this challenge, Meg and Lily (two of my daughters) are tasked with re-creating a webpage. They’ve never used Elementor or Gutenberg before, and I only gave them 30 minutes each.

Jamie of Pootlepress challenged his daughters – who are presumably both digital natives, but have no WordPress experience – to build a page to a specific design using both Gutenberg and Elementor. In 30 minutes.

Regardless of what you think about the products under test or the competitors in the challenge (Lily + Gutenberg clearly seems to be the fan favourite, which I’d sort-of expect because IMO Gutenberg’s learning curve is much flatter that Elementor’s), this is a fantastic example of “thinking aloud” (“talkalong”) UX testing. And with (only) a £20 prize on offer, it’s possibly the best-value testing of its type I’ve ever seen too! Both the participants do an excellent job of expressing their praise of and frustration with different parts of the interface of their assigned editing platform, and the developers of both – and other systems besides – could learn a lot from watching this video.

Specifically, this video shows how enormous the gulf is between how developers try to express concepts that are essential to web design and how beginner users assume things will work. Concepts like thinking in terms of “blocks” that can resize or reposition dynamically, breakpoints, assets as cross-references rather than strictly embedded within documents, style as an overarching concept by preference to something applied to individual elements, etc… some as second nature once you’re sixteen levels deep into the DOM and you’ve been doing it for years! But they’re rarely intuitive… or, perhaps, not expressed in a way that makes them intuitive… to new users.

“DOONT” — A Bad Lip Reading of Dune

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

You may remember that I was excited to hear about the upcoming release of Dune (which I suppose should be called Dune: Part One). It turns out to be excellent and I’d recommend it to anybody.

But once you’ve seen it and while you’re in the two-year wait for Dune: Part Two (argh!), can I suggest you also enjoy this wonderful creation by the folks at Bad Lip Reading, whose work I’ve plugged before. Note: minor spoilers (amazingly) if you haven’t seen Dune yet.