Skip to main content

How I vote

2 min read

A set of

I like mail-in ballots because I can do my research as I go, on my own time, in my own environment. To me, it feels a lot closer to giving the process the time and attention it deserves.

I filled in my Pennsylvania primary ballot this morning. I’d never been a British voter (I’m not a British citizen), so moving to the US represented the first time I could actually vote for my representatives in the country I lived in.

Primaries are sort of a funny idea: you pledge yourself to a party ahead of time, and that party affiliation is public. It seems to me to be a little counter to the idea of a private ballot, which is the cornerstone of free and fair elections, but that’s the system we have. If you’re a registered voter for a party, you can vote in its primary, which helps to select which candidates will actually make it to the general election.

I already knew how I’d cast my vote for the big-ticket item — the President of the United States — but I had very little idea about down-ballot candidates like the Attorney General or the Treasurer. So I sat down with my laptop and, person by person, checked them out on:

Rather than look to a central party recommendation or trust one set of endorsements, I prefer to form my own opinions, triangulating between sources that care about the same things I do. I explicitly seek out criticism, including from the opposition party and opposing points of view, because even if I don’t agree with someone’s political position, they may bring up flaws that a candidate’s own party would not highlight.

And then I seal it up in an envelope and send it off. It feels good to vote. It feels important to vote (particular in this era). I’ll be crossing my fingers for the most compassionate, inclusive, peaceful outcome from our set of possible outcomes in November.

· Asides · Share this post


Vision for W3C

This is exactly what I'd hope to see from a standards organization like the W3C:

"W3C leads the community in defining a World Wide Web that puts users first, by developing technical standards and guidelines to empower an equitable, informed, and interconnected society.

The fundamental function of W3C today is to provide an open forum where diverse voices from around the world and from different organizations and industries work together to evolve the web by building consensus on voluntary global standards for Web technologies."

There's no shirking away from the importance of equity or diversity: it's right there in the first two paragraphs of the vision, and stated again further down in more detail:

"Diversity: We believe in diversity and inclusion of participants from different geographical locations, cultures, languages, disabilities, gender identities, industries, organizational sizes, and more. In order to ensure W3C serves the needs of the entire Web user base, we also strive to broaden diversity and inclusion for our own participants."

This is exactly as it should be, and it makes me really happy to see it. Of course, this is only a draft of sorts from the working group; it needs to now get consensus from the wider organization. I hope its pro-human focus remains front and center.

· Links · Share this post


The social web doesn't exist without social justice

1 min read

So much of what we build on the web is about connecting people.

It is impossible to connect people effectively without paying attention to social justice and equity.

Otherwise we’re just connecting the privileged with the privileged, creating ever smaller networks of influence, and learning nothing new.

· Asides · Share this post


No tech for apartheid is within its rights to protest

Solidarity with the 28 workers who stood up for human rights.

2 min read

A warning sign looking out over the Gaza strip

Solidarity with the 28 Google workers who were fired for protesting Project Nimbus this week. Anonymous Google and Amazon workers described the project as follows a couple of years ago:

Project Nimbus is a $1.2bn contract to provide cloud services for the Israeli military and government. This technology allows for further surveillance of and unlawful data collection on Palestinians, and facilitates expansion of Israel’s illegal settlements on Palestinian land.

I have never worked for Google or Amazon, but I would like to think that I would have protested too.

There is nothing honorable about supporting your employer as it commits or facilitates human rights violations. Protesting is the ethical thing to do, particularly when you hold deeply-held beliefs like these:

We cannot look the other way, as the products we build are used to deny Palestinians their basic rights, force Palestinians out of their homes and attack Palestinians in the Gaza Strip – actions that have prompted war crime investigations by the international criminal court.

Human rights should always trump business.

Further to that, apparently some of these 28 workers hadn’t even protested — they’d just associated with the people who had:

Yeah, this was retaliation, like completely indiscriminate—people who had just walked by just to say hello and maybe talk to us for a little bit. They were fired. People who aren't affiliated with No Tech For Apartheid at all, who just showed up and were interested in what was going on. And then security asked to see their badge and they were among the 28 fired.

Not a good look, to say the least. The same goes for the scores of tech workers who — on a cursory glance of social media — seem to have been derisive of the protests. Shame on you.

· Asides · Share this post


What you see

"Too often, [...] we assume that the person who is the object of our feedback has something to learn and fail to notice the same thing about ourselves."

This is a really important observation. Without checking ourselves, our feedback can be a way to ensure our vision remains myopic, and can enforce a kind of conservatism that (like all conservatism, I believe) ultimately serves nobody.

Feedback is important, but curiosity, care, and respect are even more important. Starting off with an assumption that our colleague might know something we don't - and a need to get to the "why" of everything we notice, and consider what we might not be noticing - is more than healthy.

· Links · Share this post


Backdoors are an everyone problem

XZ Utils isn't just a lesson for open source.

2 min read

From the OpenJS Foundation:

The recent attempted XZ Utils backdoor (CVE-2024-3094) may not be an isolated incident as evidenced by a similar credible takeover attempt intercepted by the OpenJS Foundation, home to JavaScript projects used by billions of websites worldwide. The Open Source Security (OpenSSF) and OpenJS Foundations are calling all open source maintainers to be alert for social engineering takeover attempts, to recognize the early threat patterns emerging, and to take steps to protect their open source projects.

Vigilance is good, and it’s worth heeding the advice and paying attention to the evidence presented here. The XZ Utils backdoor was a smart attack that very nearly caused havoc.

I think it’s also worth pointing out that we know about the exploit because it was in an open source project. Andres Freund was debugging a server resource issue when he uncovered the issue. Because the project — and its downstream client — were open source, he could investigate and find the intrusion.

It’s not clear how this would have panned out if this had been proprietary software: particularly on a team that was resource strapped or moving at speed. The same social engineering exploits that allowed Jia Tan to become a maintainer of the XZ Utils project would also see someone hired as a contractor by a tech team. If I was a nefarious actor who wanted to place an exploit in an important software library, that’s exactly what I’d do: go send someone to join the team as a contractor. While there are mandatory identity verification procedures for full-time employees (which we can certainly argue the pros and cons of), contractors have no such requirements.

I bring this up because all the advice I’ve seen to date has been directed at open source maintainers. Again, this is smart and good and should absolutely be heeded — but there’s a world of other software out there that is also critical infrastructure and which doesn’t enjoy the sunlight of open source projects. This isn’t an open source software problem; it’s a software problem. Everyone should be vigilant, regardless if there are eyes on their source code or not. And perhaps we should be even warier of projects whose code we can’t audit ourselves.

· Asides · Share this post


I am convinced that ActivityPub is going to change the entire web.

· Statuses · Share this post


AI isn't useless. But is it worth it?

"I find my feelings about AI are actually pretty similar to my feelings about blockchains: they do a poor job of much of what people try to do with them, they can't do the things their creators claim they one day might, and many of the things they are well suited to do may not be altogether that beneficial."

This description of the uses and pitfalls of the current generation of AI tools is a characteristically sharp breakdown from Molly White.

I've found AI useful for similar sorts of things: proofreading in particular. But I agree with her conclusions - in fact, I agree with every single point she brings up in this piece. One to share with your colleagues who are thinking about deeply integrating LLMs based on the hype cycle alone.

· Links · Share this post


Amazon is filled with garbage ebooks. Here’s how they get made.

"Virtually every single part of the self-publishing grift world that can be automated or monetized has been automated and monetized."

This is a really depressing read: fascinating, for sure, but what's left unsaid is what happens to traditional publishing as these folks become more and more successful, and book marketplaces become more and more saturated.

Or perhaps it'll drive everyone to real-life bookstores? There, at least, I know I'm not going to run into the kind of trash sold by Big Luca or the Mikkelsen Twins.

· Links · Share this post


What’s next for me…

"I am absolutely convinced that journalism’s most essential role at this critical moment goes far, far beyond what it’s doing. The status quo in political (and related) coverage consists of sporadically noting that gosh-maybe-there’s-a-problem, while sticking mostly to journalistic business as usual. The status quo is journalistic malpractice."

A strong implied call to action from Dan Gillmor, who has long argued for a more principled journalism industry (alongside a more principled software ecosystem that supports it).

· Links · Share this post


I decided to give Tesla FSD a second chance today. Aside from the bit where it decided to turn onto an actual municipal train track and use it as a road, it did really well!

· Statuses · Share this post


The thing about most war commentary on social media is that it's speculative, almost on an entertainment level. Every time, there are people who bear the cost of this, who didn't ask for it, who don't endorse it, and yet will still pay an unimaginable price. It's described as points-scoring but it's death and suffering, children and families and innocent human beings, and their descendants, and theirs, and so on, for generations. There is no glory, there is no validity. It's sick.

· Statuses · Share this post


Any business that depends on third-party APIs that it does not control and is locked into using is not a good business.

· Statuses · Share this post


Writing a web-first resumé

Describing myself by telling my story

3 min read

I hate writing resumés. There’s always been something about the format that never really sat right with me; each entry presents work I’ve done, sometimes representing many multiple years of my life, without explaining the “why” or the through-line of how I got there. It’s always felt to me like they’re missing the fundamentals of the human being behind them — the values and mindsets of the living, breathing person you’d actually be hiring.

On top of that, mine was stuck in a document, when all of my work is on the web.

So I set out to rewrite mine, make it web-first, and turn it into something that I feel like actually represents me and my career. You can check it out here: I gave it its own subdomain at

The default version now displays my career in chronological order, each life event building on the next, and includes things that, while not technically being work, informed the work I’ve subsequently done. You’ll find stuff like the electronic hypertext magazine I built as a teenager and the popular meme site I built at university, which wouldn’t normally find their way into a standard resumé, but do help define my expertise and how I approach projects.

From that page, you can flip to a more traditional reverse-chronological resumé that omits the non-employment content and removes unnecessary description. Because it’s an edited-down version of my story, rather than a collection of bullet points, it’s probably better than any resumé I’ve had in the past. It’s web-first but there are a few print-only CSS rules in there to make sure it prints or turns into a PDF really nicely. It’s also nicely responsive, so it displays well on both a laptop / desktop and a phone.

Behind the scenes, here’s how it works:

  • Each element of my experience is a standalone HTML snippet file of the form startyear-endyear.html. Some are annotated to be “narrative-only”, which means that they won’t show up in the traditional view. The engine I wrote for this will also omit any entries marked “traditional-only” from the narrative view, but in practice I didn’t use that.
  • In narrative view, the engine reads the files in alphabetical order. In traditional view, the engine reads them in reverse-alphabetical order. The effect is to order the entries chronologically or reverse-chronologically as described.
  • Educational entries are marked as such. In narrative view they’re placed into the main flow; in traditional view they’re displayed at the end of the document.
  • In narrative view, any HTML element with a class traditional is marked as display:none in order to hide it; in traditional view, any HTML element with a class narrative is hidden. This allows me to mix narrative content in with more traditional resumé content and only display them in one view.
  • Everything is marked up with the h-resume microformat.

The most important thing for me was being able to write my story as a story, and then edit down accordingly. I’m pretty happy with it! Let me know what you think.


Syndicated to IndieNews

· Asides · Share this post


I tried Tesla FSD

Some screaming was involved

5 min read


So, let’s get this out of the way first: I drive a Tesla Model 3. Yes, I know. And yes, even though I bought it a few years ago, there was plenty of evidence of the CEO’s bad behavior and of poor conditions in the factories. And I let my desire to drive an electric car override all that, and it was a poor decision, and now I’m stuck with it because it was also a very bad financial decision and it’s depreciated at such a rate that the diff of the value of the car and the remaining value of my car loan are not in a good place. It was silly. Can we just accept that? Okay, thank you. Moving on.

This month Tesla switched Full Self Driving (FSD) on .. as far as I can tell, every single car. It’s normally a five figure software-only upgrade, which you can pay for up-front or at the ongoing subscription price of $199 a month. But usage of the feature has been low, perhaps in part because if you’ve spent $40-90,000 on a car, spending another five figure sum is annoying, and perhaps in part because people generally value their own lives and the lives of the people they love. So now, for this month only, it’s free, and Tesla can juice their numbers.

And, yes, I tried it.

And let me be clear: nope. Nope nope nope nope nope nope nope.

I’ve rarely been so frightened behind the wheel of my own car. As an experience it ranks right up there with driving that one stretch of the 880 where you’re supposed to go at 45mph and everybody drives twice that, the time I was riding in a Lyft and was jackknifed by a tow truck, or that one time I was driving on the 101 North and a tech bro Lamborghini shot out of the Highway 12 offramp and came within two inches of hitting me, spun around in the road, and careened off into the distance.

To be added to those heart-stopping experiences soon, I have to surmise, is being hit by a Tesla in Full Self Driving Mode.

Unlike my Lambo encounter, I was driving at 25mph down my local road to the store. On this 10 minute drive (5 minutes there and back), my car clung surprisingly close to cars parked on the side of the road — but more importantly, I had to intervene once because, on a stretch of road that had been coned off and narrowed into one lane for both directions, it felt like the car was driving directly into an oncoming vehicle. It’s possible (and, in fact, quite likely) that the car wouldn’t have smashed into the oncoming Subaru. But it felt like it was about to, and I had no desire to make it a scientific test. FSD requires you to keep your hands on the wheel — a lean-back experience this is not — so safely intervening was very natural. The car then asks you to leave a recorded message explaining why you intervened, and the struggle is to use words instead of screaming over and over.

What’s particularly surprising to me is that FSD wasn’t just downloaded to my vehicle — it was switched on by default. At no point did I need to agree to the terms and conditions. All I needed to do was enter a destination into the navigation and pull the gear stalk down once (as if I was simply changing into another gear), and off it went. Autopilot, which is what Tesla calls its cruise control feature, is engaged in a very similar way, so I can see a world where a driver might even switch it on unintentionally.

So would I pay the money for it? Fear on this level seems like a pretty poor use of $12,000 or $199 a month. You can rent a horror movie for $2.99, and paying attention to America is free. But clearly I was curious. Genuinely, if the technology improved to the point where I didn’t feel like I was probably going to die, I would happily sit inside a self-driving vehicle. Less so, perhaps, for going to the store, but definitely for road trips. (Can you imagine an autonomous RV? It would cost an arm and a leg, but if I had the money, I would 100% use one to get across country.) Right now, though, I would rather pour vinegar onto my eyeballs. For those readers who don’t need to think hard about dropping $12,000 — I am not one of them — I would encourage you to spend the money on more caviar or whatever. This ain’t it.

· Asides · Share this post


Making version noir

This is completely lovely: a responsive, noir-inspired personal homepage in the form of a comic. I'm inspired.

· Links · Share this post


The Thing That's Coming

An interesting opinion piece about the collapse of the Francis Scott Key Bridge, the aftermath thereof, and how it all relates to the election.

"But even if we had performed adequate maintenance, the bridge was probably doomed. Dali is the size and mass of a skyscraper (far larger than container ships used to be permitted to be, but larger ships lower prices in supply chains, and lower prices in supply chains help profits, and profits are important)."


"DEI is just diversity, equity, and inclusion, by the way. That's all it is. It's become the new word that racists say when they want to say a slur but they realize they're in mixed company. It's a handy watchword for people who have decided that every problem is the result of the proximal existence of Black people and other marginalized people groups, because what they actually intend is to end the existence of such people, as soon as they can, with as much violence as possible."


"Things are already very very bad for a great number of people in this country; institutional supremacy sees to that, and this supremacy is mostly accommodated by power—not only by openly fascist power like the cabal of creepy Christian weirdos who want to control everyone's bodies, but by run-of-the mill power, because run-of-the-mill power is interested in keeping things as they are, and mostly recognizes supremacy as what it is, which is the way things are."

· Links · Share this post


The US aims to 'crack the code' on scaling up geothermal energy production

This hadn't really been on my radar:

"Just one type of next generation geothermal — called superhot rock energy, where deep drilling reaches temperatures 400 degrees Celsius (752 degrees Fahrenheit) or hotter — is abundant enough to theoretically fulfill the world’s power requirements. In fact, just 1 percent of the world’s superhot rock potential could provide 63 terawatts of clean firm power, which would meet global electricity demand nearly eight times over."

What's absolutely fascinating to me is the idea that fracking techniques could be used to unlock geothermal energy. Is that good? Fracking has negative side effects that go beyond the carbon footprint from oil and gas. On the other hand, of course, moving away from fossil fuels is obviously great.

· Links · Share this post


Updates for ShareOpenly

1 min read

I made some updates to ShareOpenly this weekend:

I also added “share this post” links to the byline of every post on my site, including on the homepage and from indices.

Support for more social networks, as well as a universal share icon, are in the works.

· Asides · Share this post


Here's the column Meta doesn't want you to see

"On Thursday I reported that Meta had blocked all links to the Kansas Reflector from approximately 8am to 4pm, citing cybersecurity concerns after the nonprofit published a column critical of Facebook’s climate change ad policy. By late afternoon, all links were once again able to be posted on Facebook, Threads and Instagram–except for the critical column."

Here it is. And if this censorship is taking place, it's quite concerning:

"I had suspected such might be the case, because all the posts I made prior to the attempted boost seemed to drop off the radar with little response. As I took a closer look, I found others complaining about Facebook squelching posts related to climate change."

· Links · Share this post


Footage and stories from Gaza are heart-wrenching. The systematic killing of aid workers is just a small part of the atrocities being committed over there. Hamas is not a force for good in the region but almost all of these people are civilians. There's no way to justify this.

There must be a ceasefire. Now.

· Statuses · Share this post


I really hope San Francisco stays an idealistic, progressive city and doesn't succumb to centrism. There are plenty of other places for people who want a city run by those values to live. San Francisco is, and has always been, special.

· Statuses · Share this post



It’s my mother’s birthday. She would be 72 today.

The week we lost her, I wrote this piece, which I re-read today.

In it, our friend Anita Hurrell remembered her like this:

One time you drove us in the van to the seaside and we ate sandwiches with cucumber in them and I thought they tasted delicious and I felt this strong sense of deep content sitting with Hannah in the back listening to her singing and humming for the whole journey. I have no idea where we went, and in my head it was nowhere in England, but rather part of the big-hearted, loving, funny, relaxed, non-conformist world of your family in my childhood - full of your laughter and your enormous kindness.

[…] I look back and see […] what a true feminist you were, how much of parenting you seemed to do much better than we do these days, how generous and homemade and fun and kind the world you and Oscar [my dad] made was.

I feel so privileged to have had that childhood. To have had a mother like her.

In the piece I read at her memorial, I said:

Before I was born, both my parents were involved in struggles to support affirmative action and tenants’ rights. She described herself as having been radicalized early on, but it’s not particularly that she was radical: she could just see past the social templates that everyone is expected to adhere to, and which perpetuate systemic injustices, and could see how everything should operate to be fairer.

That was true on every level. She wanted she and [her siblings] to all be treated equally, and would make it known if she thought the others were getting a raw deal. She tried her best to treat Hannah and I equally. If someone made a sexist or a homophobic remark around her, she would call it out. If someone was xenophobic, or unthinkingly imperialist, she would bring it up. She was outspoken - always with good humor, but always adamant about what really mattered.

When our son was born, I wrote:

The last time I saw you, just over a year ago, you were in a bed in the same institution, your donated lungs breathing fainter and fainter. I kissed you on the forehead and told you I loved you. You’d told me that what you wanted to hear was us talking amongst ourselves; to know that we’d continue without you. In the end, that’s what happened. But I miss you terribly: I feel the grief of losing you every day, and never more than when my child was born.

[…] In this worse universe that doesn’t have you in it, I’ve been intentionally trying to channel you. I’ve been trying to imagine how you would have shown up with them, and what your advice for me would have been. I’ve been trying to convey that good-humored warmth I always felt. You made me feel safe: physically, yes, but more than that, emotionally. I want to make them feel safe, too: to be who they really are.

That first piece from three days after we lost her:

I want to honor her by furthering what she put into the world. The loving, non-conformist, irreverent, equity-minded spirit that she embodied.

Her values are the right ones, I’m sure of it — her non-conformity, her progressivism, her intellectual curiosity, her fearlessness and silliness (and fearless silliness), her gameness for adventure, her internationalism, her inclusive care and love for everybody and absolute disregard for the expectations other people had for her, or for nonsense tradition, for institutions, or for money.

She is the best person I’ve ever met and could ever hope to meet. I’ve been so, deeply sad, every day, but grief isn’t enough to honor her, and I wish I’d been better at doing that.

I miss you, Ma. I love you. I’m so, so sorry.

Ma, long before I was born

Ma with me as a young boy

Ma making her way down to the beach

Ma in Scotland, making the grimace emoji face

· Posts · Share this post


Why we invented a new metric for measuring readership

"One particular piece of the journalism model that is broken? How news organizations measure their readership."

Pageviews are not a million miles away from hits - which is how we measured success in 2003. This is much-needed innovation from The 19th. Alexandra Smith, who wrote this piece and works on audience there, is brilliant and is a voice who should be listened to across journalism and beyond.

The trick isn't convincing a newsroom to consider these ideas. The real trick is to get funders and the broader ecosystem on board. But it's work that must be done.

· Links · Share this post


A ProPublica Lawsuit Over Military Court Access Moves Forward

From my colleagues: "ProPublica has “plausibly alleged that the issued guidelines are clearly inconsistent with Congress’ mandate.” This is most apparent, the judge said, in the allegation that the Navy denies the public access to all records in cases that end in acquittals."

ProPublica continues to do great work not just in its reporting, but in setting the groundwork for open reporting in the public interest.

· Links · Share this post