Tags: photos

640

sparkline

Tuesday, July 28th, 2026

The core musicians: fiddles, concertina, whistle, bodhrán, guitar, and more. A row of musicians including a cheeky young lad playing my mandolin. A pub literally packed to the rafters with musicians playing. The fiddles alone are beyond count. Connor Caldwell on fiddle and Joanne O'Connor playing my mandolin.

Tuesday night session in Belfast

Sunday, July 26th, 2026

Me with my mandolin and a cup of tea having a chat between tunes. A little child taking great delight in my mandolin that I'm encouraging him to strum. Jessica playing her fiddle with her eyes closed. Jessica with her fiddle smiling between tunes.

Today was a good day for sessions in Belfast!

Sunday, July 19th, 2026

Me standing on a path high on a green hilltop. The view down into a valley and a beach. Sinewy trees growing above a mossy stone wall. A neolithic structure in front of green hills under a blue sky.

Walking from glen to glen.

Wednesday, July 15th, 2026

Image to text

At The Web You Want event in Amsterdam last month, Léonie gave an absolutely fantastic talk. You can now read the whole thing: Accessibility is resistance!

She makes the very good point that generative tools are a necessary accessibility recourse when humans have failed to do their job properly.

Images without alt text? Somebody messed up. But this is damage that can be routed around with large language models.

So if you—like me—don’t like the idea of people using extractive generative tools made by the worst kind of people, pay heed:

If you want to resist AI, make accessibility part of everything you do, every decision you make, every product you design and build. Remove the need for people to use AI to compensate, and remember, accessibility is resistance.

Also last month, I wrote about enhancing images from a carousel to masonry using CSS Grid Lanes. Here’s the context:

Over on The Session, I added a little enhancement to the events and sessions listings recently. I make a call to the Google Places API to see if I can find a match for the venue, and if I do, pull in some photos.

Sidenote: right now there’s a major issue with this. None of the photos come with text descriptions. This is something I need to fix, and I’ve got some ideas on how to do that.

I was one of those people with a website that doesn’t have alt text for images. I was one of those people not doing their job.

The first fix I put in place was very much in keeping with the ethos of The Session. I added a form so that any member of the site can edit the alt text of the images in the carousel/masonry layout.

The Session is quite WikiPedia-like. Anyone can edit the track listings in the discography. Anyone can edit the details of any tune. Anyone can edit the details of any session or event. So it made sense to add one more thing that anyone can edit.

With that functionality in place, I put out the call:

If everyone were to take just one or two sessions or events and add alt text to the photos, it would really, really help make the site more accessible.

The community went to work and did a pretty good job.

But there are a lot images. I’d like to have a least some kind of alt text for all of them, even if it’s just a placeholder until someone gets around to adding something better.

I was going to have to use generative “AI”, wasn’t I?

Holding my nose, I investigated some alt-text-as-a-service APIs out there. I signed up for some trials and kicked the tyres. They were rubbish. I suspect most of them were vibe-coded.

The more I thought about it, the more I realised that I probably didn’t need the latest and greatest energy-guzzling large langauge models. Some good old-fashioned machine learning could do the trick here. I’m aiming to do a relatively straightforward transformation—image to text.

Check out the COCO project: Common Objects in Context. It’s a few years old now, but it’s basically a dataset that’s been trained on images.

Ah, but where did the training data come from?

All images in COCO were sourced from Flickr, a photo-sharing platform where users upload images under various Creative Commons licenses.

Works for me!

I found a model on Hugging Face that was created by Microsoft from the COCO data. Confusingly the model is called GIT. It’s nothing to do with version control. It stands for GenerativeImage2Text.

I downloaded the model and set to work creating a script to trawl through all those images and generate alt text if the image doesn’t already have one.

I should mention: the way that I store the alt text is not in a database, but in the file system. Every image has its own folder. Inside that folder there can also be a file called alt.txt.

So the script needed to loop through lots and lots of folders, generate alt text where needed, and save it into a text file in the same folder.

Python is the go-to language for working with models like GIT. But Python is not my strong suit, to put it mildly. And this was going to be a throwaway script that I was only going to use once. So I held my nose again and turned on Copilot in VSCode (I usually keep it switched off).

With the right instructions I was able to get a script that—crucially—I could read and understand. Then I switched off Copilot and had a shower to try to wash the shame away.

Long story short, the script worked.

The results are mostly fine. The alt text is functional. Sometimes it’s wrong, but not disastrously so. A human-generated image description will always be preferable, so any member of The Session can over-ride the placeholder alt text.

It took a few hours to loop through all those folders and generate all those text files. My laptop got hot. But doing it locally sure beats paying for tokens from the baddies.

Like Scott says:

While the utility is there, the current landscape of these frontier corporate models comes with massive ethical and environmental baggage. This is not a long term solution!

That’s exactly why my hope is that ethically trained open-weight models will eventually catch up and that in the next couple of years, we’ll have something with this level of capability that can run locally. That feels like a much better place to be with this technology.

Sunday, July 5th, 2026

A plate which a huge piece of of grilled tuna steak and some chips. Looking down at two cats looking back up at me. One is black, the other is speckled grey. They’re both adorable.

My tuna brings all the cats to the yard 🐟🐈

Saturday, July 4th, 2026

Me standing in front of the harbour. The water is blue and the foliage is bright green. Green foliage frames blue green clear water with a large boulder near the shore. Me sitting casually at a table in the shade outside a restaurant with cute little buildings in the background. A sheltered harbour with crystal clear turquoise water showing a rocky seabed.

On Paxos

Friday, June 26th, 2026

Two men sitting on stage in front of a microphone, one playing mandolin and the other accompanying on guitar. A young man and a young woman sitting on stage in front of a microphone, both playing mandolin. A woman smiling and playing mandolin with a young man playing bouzouki on stage in front of a single microphone. Three mandolin players and one guitar player sitting and playing together on stage.

Mandolinists assemble!

Friday, June 19th, 2026

Me standing in front of the railings of the headquarters of Na Píobairí Uilleann. Me sitting down with my mandolin in an elegant room in front of a screen that reads; The Session. Me playing mandolin in a pub corner with a fiddler, flute player, and box player.

Slán, Baile Átha Cliath!

Friday, June 5th, 2026

Me on stage in a loud red paisley shirtt with a microphone in one and a clipboard in the other. Four passengers on the mocked-up London bus that reads: I heart UX London. I'm one of the faces poking out; we've all got beer bottles in our hands. Nine other Clearlefties and me, all lined up for a group photo; everyone's wearing black Clearleft T-shirts except for me in my blue denim shirt.

I had a thoroughly enjoyable three days of hosting UX London this week and met such lovely people at the event—thank you to everyone who came!

Saturday, May 23rd, 2026

Me posing like a chef outside the Irish Embassy in front of the Irish language sign. Me in a short-sleeved shirt a pint of Guinness on the roof of the Devonshire.

Londoning

Friday, May 22nd, 2026

Me dressed in a summery shirt posing next to a screenshot of The Session behind glass. The label reads: The Session, digital print, with permission from Jeremy Keith, The Session.

At the Royal College of Music Museum, where the new exhibit features thesession.org!

Sunday, April 19th, 2026

A row of fiddlers playing in a pub. An accordion player and two fiddlers playing in a row.

Sunday session

Monday, April 6th, 2026

Close up of Chris singing and playing guitar with me rocking out on bouzouki. We're both wearing sharp-looking suits. Salter Cane on stage: the guitar player is front and centre, flanked on one side by me on bouzouki, and on the other by Jessica on bass.

Thanks to everyone who came out to the Salter Cane gig on Saturday night—that was fun!

Sunday, March 15th, 2026

A man on bodhrán and another man on banjo. Two women playing fiddle in a pub.

Sunday afternoon session

Wednesday, February 25th, 2026

A man playing fiddle while a woman fiddler listens and smiles. A flute player and a piper.

Birthday session

Monday, February 2nd, 2026

A bowl of mussels topped with some bread. A half dozen oysters, straight up.

Carlingford mussels and oysters

Wednesday, January 21st, 2026

A man playing banjo, lost in the music. A woman playing fiddle, lost in the music.

Wednesday session

Friday, January 16th, 2026

Two fiddlers, a man playing and a woman listening. A woman playing fiddle and a man playing banjo.

Rob’s farewell session

Saturday, January 3rd, 2026

Three fiddlers. Flute and two fiddles. Fiddle and two concertinas. Guitar, flute, fiddle, and another flute.

Playing tunes in a kitchen on a Saturday night.

Thursday, January 1st, 2026

A modern hand-crafted oval-hole mandolin made in Australia. A classic bowl-backed mandolin from eastern Europe. A red wall covered with Italian bowl-backed mandolins of different sizes. A classic F-5 mandolin from Gibson with its distinctive scroll.

More mandolins