It’s that time of year… and so the Christmas Tree makes a return once again.

Notice anything interesting? Let’s take a closer look…

It’s a Raspberry Pi! Okay, I’ll just say it right now, the tree has nothing to do with the Raspberry Pi.
If we look under the tree:

This Raspberry Pi is running Ubuntu Core with the chromium-mir-kiosk snap. What is Ubuntu Core you ask? It’s actually pretty neat.
Basically Ubuntu Core is a minimal version of Ubuntu designed for IoT and Embedded applications. The whole system is based around snaps (aka. Snappy). A snap is a little self contained application bundle, that runs isolated (aka in a container) from the rest of the system. If you use a recent version of Ubuntu, then some of your applications are already bundled as snaps!
Unlike standard Ubuntu though, the whole system is snaps, including the kernel. Also, the rootfs is read-only. All of this makes Ubuntu Core really well suited for embedded applications. In my case, I have Ubuntu Core running the web kiosk demo. Basically it’s just Chromium running in a snap, displaying a countdown until Christmas.
Another interesting feature of snaps is interfaces. Basically, by default a snap has no connections to the rest of the system, and is completely isolated. Interfaces allow snaps to communicate with each other using a concept of plugs and slots. For example, the web kiosk demo has two main slots: a Wayland slot and PulseAudio slot. The Wayland slot is “plugged into” by the mir-kiosk snap, which is running as a Wayland display server. The PulseAudio slot is plugged into by, well, the PulseAudio snap, providing audio.

So yea, Ubuntu Core and snaps, two pretty cool technologies. Ubuntu Core seems to be a good fit for all sorts of IoT and Embedded applications (much better than say Windows :P).

Also! If you guys want a super-fancy (not really) interface for your own IoT Tree, you can check mine out here.