What's New in OpenAPI 3.1

With OpenAPI 3.1 coming "soon", I gave a talk at APIDays Paris about what to expect. But I'm a great fan of the written word as reference so here's a written recap of what's in the next OpenAPI release.

Top features:
- Compatible with JSON Schema 2020-12
- Webhook support
- Many other minor improvements
Continue reading

Bystanders Guide to Repository Maintenance

Today's post is about bystanders and open source. We sometimes have anxiety about doing things on "other people's" projects but the thing about open source is that those are not "their" projects, those are "our" projects, and they only exist because people other than their nominated gatekeepers chip in now and then. Continue reading

Making SDKs a Value-Added Experience

I've been working with SDKs quite a bit this year, simple ones that wrap a bunch of API endpoints. The best bits of these SDKs isn't just the delightful developer experience of using the clunky endpoints with the elegant SDK wrapping them. I mean, it is, but I already wrote about consistent and Delightful SDKs for Nordic APIs; today I want to cover the some of the "extra" things that make a big difference in the APIs. Continue reading

Ubuntu Command for Mic Mute with Pulsemixer

One of the major problems I run into with video conferencing tools is how many of them are not at all accessible. I'm a keyboard-only user so if I need to hover a pointer in a particular area of the screen and then click an icon to mute ... then I can't do that. And if you mute me when I join because there are a lot of people here, then I can't participate at all. To work around this, I need a one-liner to mute (and unmute) my mic ... so here it is. Continue reading

Keyboard-only Web Browser

I haven't used a pointing device in over a decade, and I get a lot of questions about how I navigate the web using only the keyboard. The short answer is: Vimium and funnily enough, it's a productivity tool rather than an accessibility tool. Curious? Let me show you around! Continue reading

Combine Multiple Field Tags in Go

I work a lot with JSON APIs in my Go projects, so almost every struct has some field tags on it to translate AccountID into account_id and that sort of thing. Then one day I needed to load data from config using mapstructure and it took a few attempts with the search engine to find the syntax I needed, so it's here for next time I need it (or in case you need it too). Continue reading

Create .desktop files for Ubuntu

Having created a couple of .desktop files lately to make launching apps easier, I thought I'd write myself a quick reminder of what I did and how it works. If it's useful to you too, then great! I have one application in a weird path, and another that needs a specific environment variable set for it to work. Continue reading