Ubuntu Core Snapdeck

At the Ubuntu Summit in Latvia, Canonical have just announced their plans for the Ubuntu Core Desktop. I recently played with a preview of it, for fun. Here’s a nearby computer running it right now. Ubuntu Core is a “a secure, application-centric IoT OS for embedded devices”. It’s been around a while now, powering IoT devices, kiosks, routers, set-top-boxes and other appliances. Ubuntu Core Desktop is an immutable, secure and modular desktop operating system. [Read More]

Ninety percent updated in a week

The other day I wrote about snapcraft metrics, a tool that enables publishers to extract application metrics from the snap store. Something I’ve noticed which I wanted to share, was how quickly automatic updates roll out to an application’s user base. So I took the metrics from an application that I published in the snap store and scrubbed the names and version numbers. I charted below the speed that devices roll over from one release to the next. [Read More]

Updating snap packages: OBS Studio

tl;dr. The OBS Studio snap is now updated to the latest stable release, 29.1.3, after a “brief” hiatus. Another day, another updated snap, which had been languishing a bit. I wrote about updating Spot yesterday, and today, as per the title, it’s OBS Studio. As I mentioned previously, there’s a bunch of outdated snaps in the store, and I want to help fix that. Hopefully, with these blog posts, others might learn how, and be motivated to either publish new applications or step up and update existing ones. [Read More]

Updating snap packages: Spot

I recently lamented that there’s a bunch of broken and outdated snaps in the snap store. Well, some of them are my responsibility, so in the spirit of “be the change you want to see”, let’s get them fixed and updated. I thought I’d highlight one or two as I go through them, to highlight any important or interesting changes. Today I took a look at Spot, which is a very decent native GNOME Spotify client by Alexandre Trendel. [Read More]

Snapcraft metrics

I was a guest host on Late Night Linux podcast, episode 249 last week, filling in for Will. We each bring along a ‘discovery’, I brought snapcraft metrics to talk about. I thought I’d write up how I use them, for listeners of the show as it’s hard to articulate this very well verbally. My snaps I have about twenty snaps in the snap store. Some, like Bombsquad and ncspot have been published for years now. [Read More]

Fixing a broken snap build - part two

I wrote previously about debugging a broken x16emu snap. In short, something went wonky with ld. I started a thread on the snapcraft forum and Ken VanDine came to my assistance with an answer and a pull request. I grabbed that pr, and it did indeed build successfully.. $ snapcraft --use-lxd Launching instance... Executed: pull alsa-pulseaudio Executed: pull gnome/sdk Executed: pull x16-roms Executed: pull x16-emulator Executed: build alsa-pulseaudio Executed: build gnome/sdk Executed: build x16-roms Executed: skip pull x16-roms (already ran) Executed: skip build x16-roms (already ran) Executed: stage x16-roms (required to build 'x16-emulator') Executed: skip pull alsa-pulseaudio (already ran) Executed: skip build alsa-pulseaudio (already ran) Executed: stage alsa-pulseaudio (required to build 'x16-emulator') Executed: build x16-emulator Executed: skip stage alsa-pulseaudio (already ran) Executed: stage gnome/sdk Executed: skip stage x16-roms (already ran) Executed: stage x16-emulator Executed: prime alsa-pulseaudio Executed: prime gnome/sdk Executed: prime x16-roms Executed: prime x16-emulator Executed parts lifecycle Generated snap metadata Created snap package x16emu_b16509b_amd64. [Read More]

Fixing a broken snap build

I thought I’d “live blog” (not live) my way through fixing a snap which I noticed was broken this morning. How did I notice? I happened to look at the build page for it. Maybe my spidey sense was tingling, because I wouldn’t ordinarily have zoned in on this particular snap. I could have some kind of alert that lets me know when this happens, but I currently don’t. I might use my new-found love of GitHub Actions, but that sounds like a future blog post! [Read More]

Recovering my NextCloud Box

NextCloud Box I just stumbled on an old NextCloud Box in my loft. It’s a quiet Sunday in the house, so I thought I’d see if it still works, and if there’s any data on it. I’m pretty sure I did use it for a while, so there must be something on it. Here’s my NextCloud Box in a cardboard box labelled “NextCloud Box”. Here’s what the NextCloud box looks like once installed. [Read More]

Monitor bandwidth usage with bandwhich

Back in 2020 I stumbled on Bandwhich, a “Terminal bandwidth utilization tool”, written in Rust. More recently, I was looking for a tool to identify which processes on a box were using bandwidth, and how much. I remembered Bandwhich and took another look. I wanted an easy way to install Bandwhich on a variety of machines, running a variety of Linux distributions across different architectures. So I built a snap of bandwhich. [Read More]

Outdated snap packages

Canonical is planning an ‘All Snap’ desktop next year. It will likely be available side-by-side with the traditional deb-based installation we’ve been used to since 2004. If the “All Snap” or “immutable” platform is to be a success, Canonical needs to get a grip on the broken, uninstallable, insecure, and outdated snaps provided in the snap store. This is a long post, so feel free to skip to the ‘Solutions’ section for my positive thoughts. [Read More]

Disabling snap Autorefresh

Preamble Until recently, I worked for Canonical on the Snap Advocacy Team. Some of the things in this blog post may have changed or been fixed since I left. It’s quite a long post, but I feel it’s neccessary to explain fully the status-quo. This isn’t intended to be a “hit piece” on my previous employer, but merely information sharing for those looking to control their own systems. I’ve previously provided feedback in my previous role as Snap Advocate, to enable them to better control updates. [Read More]

Updating Snap Bases

This is a bit of a dayjob post, but as I maintain a bunch of snaps in my own time, I figured it’s not out of place here. Typically when I (or indeed any developer) uses snapcraft to build a snap, a snapcraft.yaml drives the process. I’ll integrate some kind of CI or build system, and start publishing to the Snap Store. Usually, once created, the yaml doesn’t need much in the way of changes. [Read More]

Snapcraft Clinic Successes

On Thursday I mentioned we were restarting the Snapcraft Clinic. Basically we stand up a regular video call with engineers from the snap and snapcraft team & us from Snap Advocacy. Developers of applications and publishers of snaps are invited to join to troubleshoot. There was nothing especially secret or private discussed, but as we don’t record or stream the calls, and I don’t have direct permission to mention the applications or people involved, so I’ll keep this a little vague. [Read More]

Snapcraft Clinic

At work we have a forum where developers can discuss packaging Linux applications, specifically as snaps. Sometimes developers just want to pair through a problem to get it either resolved for themselves, or for whatever is blocking to be handed off to the right people. One strategy for supporting developers we found effective was via regular live video conference. So last year we started the Snapcraft Clinic. On a semi-regular basis we dedicate time to join with anyone who has technical issues with snapping, to help them. [Read More]

Jamming with Sonobus

Before last week, I’d never heard of SonoBus. While on holiday I’d packaged up Spot - a Gtk Spotify client, which I wrote about recently. The next day I made a snap of SonoBus too! I did this because while there were binary builds for Windows and Mac, there was no binary release for Linux, other than in the Arch User Repository. For those that, like me, didn’t know about SonoBus, it’s an “easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network”. [Read More]

Spotty Connection

I had a few days off work this week. It was very enjoyable to spend a bit more time with the family, doing some jobs around the house, going for walks, and generally nothing else, thanks to The Event. However, in the quiet moments I still find myself browsing around, stumbling on new software I know will be enjoyed by my friends on Linux, and feel compelled to package it up, as a snap. [Read More]

Snapcraft GNOME Extension Update

This is an early PSA aimed at developers who publish snaps in the Snap Store. They can probably skip this preamble, but for anyone else here’s some backstory in case you’re bored interested. Preamble Snaps are confined software packages for Linux. They were originally designed / intended for IoT use cases so are optimised for size, bundling dependencies, are compressed on disk and auto update. They can also be used to package server software, like NextCloud, and desktop software like Signal Desktop. [Read More]

Building Nothing

Last week I wrote a blog post titled null which did rather well! Note the giant (for my blog) spike on the right of this goaccess graph. That’s the Hackernews effect. It was super to see the conversations over in the comments there. Quite proud to get 3 blog posts and one git repo on the front page of HN in the first month of the year. Don’t expect me to keep that momentum up, but we’ll come back to that another day. [Read More]


I quite like to break things. While I’m not a QA or security professional, I have developed a knack for doing “stupid” things with software which causes it to malfunction. Some developer friends of mine have lamented that they didn’t show me software before they released it. Because I sometimes find annoying bugs immediately after they release. Here’s some fun examples of pushing the boundaries of software, sometimes by doing things a little “out there”, beyond what the developer expected or tested. [Read More]

Hush Keyboards with Hushboard

Yesterday while surfing the ASCII highways of IRC (yes, IRC) a URL linking to a MacOS application scrolled by my screen. Unclack is a small MacOS utility which silences the microphone of the user when they’re typing. The purpose is to prevent the noise of typing being passed through to other participants when on a Zoom / Skype / Jitsi call. Neat. They don’t make a Linux version, and I couldn’t see anything similar, so I did what I usually do in this instance, throw the idea towards my friendly local coder, Stuart Langridge. [Read More]