cover image

From ROS prototype to production on Ubuntu Core [1/5]

UPDATE: I’m leaving this series up for historical purposes, but please note that I no longer recommend Ubuntu Core or snaps for use in robotics. My background is pretty heavily littered with robotics. A natural side effect of this is that I’ve published numerous posts discussing snaps, Ubuntu Core, and different robotics frameworks (ROS and MOOS specifically). But my robotics experience was professional, which meant I didn’t really have a reason (or money, these things can be expensive) to buy any robotic systems personally....

April 5, 2017 · 6 min · Kyle

Distributing a ROS system among multiple snaps

One of the key tenets of snaps is that they bundle their dependencies. The fact that they’re self-contained helps their transactional-ness: upgrading or rolling back is essentially just a matter of unmounting one snap and mounting the other. However, historically this was also one of their key downsides: every snap must be standalone. Fortunately, snapd v2.0.10 saw the addition of a content interface that could be used by a producer snap to make its content available for use by a consumer snap....

March 20, 2017 · 8 min · Kyle
cover image

Snap updates: automatic rollbacks

When researching snaps, one of the main advantages everyone talks about is the fact that they’re transactionally updated. That is, an upgrade either succeeds or fails, it doesn’t leave the snap in a broken state. If you have snap “A” installed and an update for it is released, it’ll automatically update. If that update is somehow broken, the snap will roll back to the previously-working revision. However, no one has really talked about how that works....

December 12, 2016 · 7 min · Kyle
cover image

Ubuntu Core on VirtualBox

If you read the official Ubuntu Core docs, you’ll see that the recommended way to run Ubuntu Core virtually is with KVM. However, it’s probably even easier to use it in VirtualBox, and I’ve been getting some questions about that, so I wanted to devote a quick post to it. Prerequisites: A Linux machine (using Ubuntu 16.04 here). This guide will work on Windows as well, but the command invocations are a bit different and I don’t have a machine on which I can verify them before suggesting them....

November 21, 2016 · 2 min · Kyle
cover image

Snapping Nextcloud: Nextcloud itself

In the previous post of this series, we discussed the process of and lessons learned from building Redis for the Nextcloud snap. That means we’ve covered all the major pieces except for Nextcloud itself, so for this post that’s what we’ll focus on getting that into the snap. As I mentioned previously, Nextcloud is a PHP application. As such, it’s not difficult to get working with Apache or MySQL. However, it was written in such a way to make its deployment as easy as possible (e....

June 25, 2016 · 5 min · Kyle