Reading List

The most recent articles from a list of feeds I subscribe to.

MarkerHighlight.js

I love digital tools that have some analog look or feel to them. (Speaking as an Excalidraw super user.) Going to have to find an excuse to use this beauty!

MarkerHighlight.js

Agent Responsibly

How to multiply your shipping cadence while using agents responsibly. Matthew Binshtok on the Vercel blog:

There is a fundamental difference between relying on AI and leveraging it.

  • Relying means assuming that if the agent wrote it and the tests pass, it’s ready to ship. The author never builds a mental model of the change. The result is massive PRs full of hidden assumptions that are impossible to review because neither the author nor the reviewer has a clear picture of what the code actually does.
  • Leveraging means using agents to iterate quickly while maintaining complete ownership of the output. You know exactly how the code behaves under load. You understand the associated risks. You’re comfortable owning them.

I’ve seen a lot of strong opinions about disclosing whether code in a PR was written by hand or generated by AI. I don’t really care. The author owns the code in the first place. The author and reviewer have a shared responsibility for what happens on production.

Putting your name on a pull request means “I have read this and I understand what it does.” If you have to re-read your own PR to explain how it might impact production, the engineering process has failed.

The litmus test is simple: would you be comfortable owning a production incident tied to this pull request?

Flood Fill vs the Magic Circle

Musings from Robin Sloan:

Most olive oil production at medium-or-greater scale depends on machines of this kind [over-the-row olive harvester]; they trundle over trees planted in long rows, almost like continuous hedges, and collect the fruit with vibrating fingers. Machine-harvested olives cost less to buy, and they arrive at the mill in better shape than olives harvested by hand.

The catch: most olives can’t be cultivated in this configuration; the trees don’t thrive so close together. Only a handful of varieties will tolerate it, so those handful have been planted in huge numbers, and the flavor of global olive oil has changed as a result.

AI enables us to do things faster, and sometimes better than we’ve been able to before. But it has its limits. And as we learn those limits, the work we do will shift to avoid them.

In a different section, the article dives into the limitations of the physical world.

The project cut across several different magic circles — Ruby code, quasi-governmental APIs, the rules and standards of the postal system — but/and it also broke out into the physical world of paper, printers, and post offices. The project required manipulations including but not limited to: folding, peeling, sticking … gnarly!!

It’s possible that an AI coding agent could have helped me with #1 above, and of course it could have advised me on the rest. But it’s impossible to imagine the AI agent handling #2-5 autonomously; it would require such a Rube Goldberg tangle of support that “autonomously” would no longer apply.

In our programming world, AI’s impact looks limitless. But once you drift outside the boundaries of software, it’s put into a different perspective.

If indeed AI automation does not flood fill the physical world, it will be because the humble paper jam stood in its way.

Offline break in New Forest

A couple of weeks ago we took a little break. The first adults-only break since my daughter was born. For that reason, we decided to do something that was quite close to home. I am still was quite nervous about being far away from her and I didn’t want to go abroad because of her seizures. So I figured that we should stay near London and a small train journey away. Ideally, a train journey that wouldn’t be too expensive and that we could go on the day without price difference. Since we’re based in South London, we chose to go to the New Forest.

I had a goal to be as offline as possible. I still posted some photos online and checked messages. But I was mostly offline without doom scrolling. And, it was great!!

We don’t have a car or drive, so we took the train. And to save some money, we split our stays between two places. The first few days in a pub and then ending the week in a spa hotel. Normally pub hotels are cheaper however they get a bit louder in the evening probably from Wednesday until Sunday. So we stayed from Monday until Wednesday in a room above a pub and it was lovely. From Wednesday until Friday, we stayed in a spa hotel. We were so lucky because, as anyone who's been living in the UK knows, up until then, it was basically raining every day. And it rained on the days we booked the spa hotel.

The first stop was Lyndhurst. We took the train to Brokenhurst and from there a short taxi taxi ride. Lovely town. We went to the local museum, which was super cute. I didn’t look up a single thing beforehand - I am the opposite of a type A holiday person. I’ve mentioned before that these days I’m quite interested in textile crafts and it was super interesting to see sections in that visitor centre that included a lot of embroidery and textile art featuring the forest and nature of it.

A large framed textile artwork depicting a pastoral English landscape, featuring embroidered and appliquéd scenes of trees, wildlife, people, and countryside activities.

I spent a lot of time studying this frame because it used so many different styles, fabrics and scraps in different techniques. And it was deeply, deeply satisfying. And I took a lot from it.

We had fantastic meals and short walks on the first day. And of course, we saw many horses. It was tempting but I followed the rules and didn’t touch them. And we mostly settled in the main town to scout pubs.

A fairly close brown horse facing the camera.

The facade of a sweet shop that had cosy lights and a very traditional style.

The following day we rented a bike, and this was my favorite day. We spent basically 6 hours cycling through the north West of the forest. I had so much fun. I caught myself smiling when cycling down hills. I downloaded an app recommended by the bike rental shop and it would point out spots to stop by. So of course, I took a photo with the Portuguese Fireplace Memorial because you can get a girl out of Portugal but you don't get the Portuguese out of her lol.

A gravel path in the middle of many tall trees in a forest.

Me on a bicycle in front of tall trees.

Me sat down in front of the remnants of a fireplace.

We stopped for lunch in a little cafe that had a little garden to walk around and probably one of the best cakes I’ve ever had. This one had donkeys instead of horses and so I couldn’t help but take a few photos of them.

A table overlooking a garden with a slice of cake, water bottle and cycling helmets on top. Little fairy house for a post office. Me crouching down to take a photo of a donkey. Another fairy house underneath a big tree trunk. Overview of the tea house.

But of course, no big bike ride goes without little hiccups. Eventually a puncture happened at the end of the day when we were heading back to return the bikes. We were 2 miles out of the bike rental shop and it was the first time I ever used the 3 words app since installing it years ago! Previously we had been stuck in a bog (because we trusted the app rather than the physical signs in the park 🤦🏻‍♀️) so we couldn’t find the puncture to use the puncture kit. Anyway, two miles wasn’t the worst. It didn’t ruin our mood. During the day I was just cycling super fast, which was so exciting. I never do these things. Predictably, my bum was super sore, and there’s no chance I would be able to cycle the next day.

Photo of my watch close to the 3 hour mark showing that we could have cycled 22.8km at that point.

Horses grazing by a lake.

So day two was a perfect cycling out day, which ended with a wonderful meal, a little walk around the charity shops. Then the following day, we went to Leamington via train for a little seaside view, walk, check the little town and art museum.

I found a crafts charity shop which was immensely exciting. I wanted to spend hours there. I did buy a few things, mostly threads which came out quite cheap.

Middle of the week and it was time to check-in at the spa hotel. Again, surrounded by wonderful walk options with so many horses. I was still quite sore so it was perfect to physically relax, have great meals and spend a lot of time playing UNO, reading books, walking about, and resting. It was great.

Image split into four squares. First square shows a shop with sewing machines and threads, second square has an harbour with boats. Third square has two horses grazing between trees and last square is a selfie of me drinking a chocolate martini.

A wide open grassy common on a clear day with horses grazing.

Closer look at a brown horse grazing in the same common.

New Forest donkeys roaming freely on the street. One rubbing its nose on a bin.

Street sign warning of the danger of horses roaming the street.

Beers surrounded by fairy lights and an on-going game of Uno.

I barely checked my phone. I didn’t check the news. I was so happy.

It really is the stupid phone ruining everything isn’t it? The stupid screens of doom and the stupidity of the world isn’t it?

Anyway, I hope to do more things like this soon. One thing I’ve realised last year is that I was so overwhelmed with my house move and renovation, then writing a talk that I forgot to take holidays. And that’s something I don’t want to repeat this year so we’ve been more proactive at booking time off even if it’s just a stay at home and just enjoy those days offline. That’s it.​​​​​​​​​​​​​​​​

Take the “chart explosion” coding challenge and earn your spot at CODE100 in July in Berlin

In July, I will run another live edition of CODE100 at the WeAreDevelopers World Congress and if you want to take part and earn your spot on stage in front of 5000 people, why not have a go at solving this year’s challenge? The char explosion problem Oh dear, we wanted to show you some […]