MoreRSS

site iconThomas RigbyModify

A Gen-X/Millennial cusp (Xennial), currently a creative technologist at Havas Lynx Group.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Thomas Rigby

Book Review — Silverview by John LeCarré

2025-06-04 02:29:55

Common sense. Whatever you do, don’t just go with the flow. Go deep. Smell right. Never go solo if you can be part of the crowd. If you’ve got a treff in Warsaw and there’s a faculty bus going, take it.

Infested with interminable, impenetrable prose, such as the above, Le Carré's final_finalv2 (posthumous) novel bears all the hallmarks of man who knows his craft too well.

I have read a grand total of two Le Carré novels; the other being (naturally) his breakthrough, "The Spy Who Came In From The Cold". While I appreciate the detail, it can be overbearing and come across a little "clever".

Perhaps the feelings of bewilderment come from having taken a two decade break from Cold War spy novels, the inherent esotericism of the genre acting as a natural barrier.

Perhaps when I've re-read a handful of Deighton novels, it'll all come flooding back!

Junited 2025

2025-06-03 13:24:58

Inspired, as so many are, by Robert, I'm going to attempt #Junited2025 — sharing one link to another blogger every day to celebrate some of the excellent writing out there.

I may not make it but we can but try.

3rd June

Of course, I still made mistakes. I picked the wrong films for the light, and I made mistakes loading film. Still, I felt that these mistakes were helping me learn.
Analog.Café, How Photography Helped My Mental Health: Especially Analogue

2nd June

Unfortunately, poor Google are strapped for cash and can’t afford to pay developers. Desperate times calls for desperate measures.
David Bushell, "Baseless"

1st June

Rather than address the causes of migration, poverty, exploitation, collapsing ecosystems, or conflict (frequently made worse by powerful nations themselves), the response is to build walls, fund patrols, and criminalise movement.
Adële's smolweb site, So much money to protect nations… from the people who need help

Calculating yearsSince using a Nunjucks filter in Eleventy

2025-06-02 16:13:57

There are a few places on this website where I say how long it has been since something happened. One example is on the homepage — "I have been making things for the web for more than ₓ years."

Up until today I was importing date-diff which is a lovely package and Just Works™ but probably overkill for a "years since" functionality.

Marc Amos shared his Years Since shortcode for use in Eleventy sites using Nunjucks. I also run Nunjucks in Eleventy so this was of interest. I also bloody love deleting dependencies!

I had to modify the code a little because I use a specific date format and, for some reason, I couldn't get it to work as a shortcode so I changed it to a filter.

Here is the full, modified, code.

/**
* Years difference
* Courtesy of Marc Amos
* https://marcamos.com/journal/years-since/
*/


const yearsSince = (dateString) => {
const isoString = dateString;
const date = new Date(isoString);

// Get components and pad with leading zero if necessary
const year = date.getUTCFullYear();
const month = String(date.getUTCMonth() + 1).padStart(2, '0'); // Months are 0-indexed
const day = String(date.getUTCDate()).padStart(2, '0');

const formatted = `${year}-${month}-${day}`;

console.log(formatted); // Output: 2025-03-11

// Is the passed-in value (dateString) really a string? Is it formatted as required?
if (typeof formatted !== 'string' || !/^\d{4}-\d{2}-\d{2}$/.test(formatted)) {
throw new Error('The `yearsSince` function requires a valid date string in the format "YYYY-MM-DD".');
}

// Convert dateString into a Date object.
const startDate = new Date(formatted);

// Is the new Date object (startDate) a valid, parsable date?
if (isNaN(startDate.getTime())) {
throw new Error(`Invalid date string passed to "yearsSince": ${formatted}`);
}

// Extract the year from startDate.
const startYear = startDate.getFullYear();

// Get the current date.
const now = new Date();

// Extract the year from the current date.
const currentYear = now.getFullYear();

// Calculate the difference between the current year and the start year.
let years = currentYear - startYear;

// Determine if the anniversary of the passed-in date has already occurred this year.
const hasCompletedThisYear =
now.getMonth() > startDate.getMonth() ||
(now.getMonth() === startDate.getMonth() && now.getDate() >= startDate.getDate());

// If the anniversary has already occurred this year, return the full number of years,
// otherwise subtract 1 since the current year’s anniversary hasn’t been reached yet.
return hasCompletedThisYear ? years : years - 1;

}

With this saved in my utils.js file, I can register it in my .eleventy.js config file and use it as a filter in my markdown and Nunjucks files.

const { yearsSince } = require('/utils.js');

eleventyConfig.addNunjucksFilter('yearsSince', yearsSince)
I have been making things for the web for more than {{ "2012-01-01" | yearsSince }} years.

After that, I had to have a little putter around the code base to replace any dateDiff() with yearsSince() but that didn't take long.

Finally, npm uninstall date-diff and publish the site.

This is working really well for me. Maybe it can help you too 😎

Review — Married At First Sight Australia Series 12

2025-06-02 12:25:08

Spoilers

I have completed the latest instalment of #MAFSAU (the best in the franchise) and, wow!

A few points;

  • Who would have thought that Eliot turned out to be the sensitive, empathetic, vulnerable one in his relationship — not once but twice!
  • Rhi and Jeff do not prove the experiment works
  • Actually gobsmacked that Ryan is the most normal person in his couple 👀
  • Clint and Jacqui!!!

This year felt so long that I was shocked that some of the returning participants in the Final Dinner Party weren't from previous years.

All-in-all though, a good effort from everyone involved. Plenty of drama but nothing felt "fake", plenty of heartbreak and love, and enough human interest to keep this human interested.

Weeknotes: 2025-W22

2025-06-01 23:49:51

26th May - 1st June

Absolutely howling a gale, throwing rain against the bedroom window all night. Felt like being at sea. Left the window open when it was sunny, went to bed in an ice box. It was actually kind of nice, sliding between cold sheets.


The church has finally saved up enough money to have the bells repaired. They clearly spent some time and effort into selected the right volume for the chimes to carry but not be overwhelming.

Having spent a good chunk of time in the garden recently, it's actually been lovely hearing the hourly count drifting over the village on the warm, fragrant, Spring breeze.


This time last year I was pleased with myself for having made it half way to my Reading Goal. This year, I am on book fifteen of twelve 😳

You can, if you are so inclined, follow my 2025 Reading Progress on Bookwyrm. I should have figured I'd get through more books; I finished 2024 at double my goal!

An increase in my commute coupled with a few books so good they kept me up past bedtime are to blame.


The Cabbage Tree has started to flower. All of the weird spikes are covered in little bobbles that pop open into tiny white flowers. They're attracting honey bees, which is lovely, and snell of cat urine, which isn't.


Morning jogs are for the body, evening walks for the soul.
John Le Carré, Silverview


Links of Interest™

Silent Sunday

2025-06-01 21:43:34

a black and white photograph of a ginnel with extractor units on a wall to the left in focus with the vanishing point blurred