LinuxCon: so many things to follow up ...

LinuxCon and ContainerCon is in Toronto this year, and I'm attending. Two out of three and a half days of the conference have gone by, and there's been so much great stuff ...

I admit to being somewhat unimpressed with Jim Zemlin's opening talk (he's from the Linux Foundation, which runs(?) the conference): yes, Linux being 25 years old is something to celebrate, but he also spent a lot of time telling us how awesome Linux is. Seriously? There's no stronger sign of identity insecurity in a group than the need to preach to the converted. We're here because we think Linux is awesome, so let's move on to making it awesomer.

I'm pleased to say that after that there were a bunch of really great talks. I saw a couple not-so-great ones (including an IBM keynote that was essentially a glorified product placement, which Zemlin happily endorsed), but several talks left me desperate to continue my technical education on their subject.

Perhaps most impressive among these was "Linux Networking Explained" by Thomas Graf: he works for Cisco, but this was a pure Linux explanation of networking. The room was packed and I'd arrived relatively late so I had to stand. The talk got detailed fast, and I eventually left in frustration at my inability to take notes and my need to look over what he'd covered already. Happily, his slides are available. I don't know how useful they'll be without having seen the talk, but I'm inspired.

This has created a strong desire to get familiar with the ip command ... although ironically, much of the network tinkering I do is on OpenWRT which seems permanently stuck on the older ifconfig command that I'm more familiar with.

Next in importance was probably "Tracking Huge Files with Git LFS" by Tim Pettersen. He's at Atlassian who run BitBucket, and they helped develop Git LFS ("Large File Support"). He's clearly intimately familiar with git, and gave a very good explanation of the modifications they made to make this work. My biggest reservation about it (which he made clear, and knows is non-ideal) is that this breaks the "distributed" part of git - although only for the large files. It may make it into the git mainstream, but probably not for a while: in the mean time, it's a separate installation. Once installed, it's semi-transparent. Which is to say, you'll occasionally need to issue git lfs <command> [...] commands for setup, but mostly commits and pulls and the like are handled transparently. The end result is that most of the time your local store will only hold the most recent instance of a large binary file, rather than every instance that's been committed (this behaviour is of course fine-grained configurable).

"Raspberry Pi Hacks" by Ruth Suehle and Tom Callaway was as much comedy as a practical talk: they didn't walk you through doing anything in particular with the Pi, but gave pointers to a huge variety of fascinating Pi-based projects. Of these, my favourites were PiFM and the Kindleberry Wireless. I don't own a Kindle Paperwhite, but it's a fascinating idea. I hope to try out PiFM ... and not run afoul of the FCC. Apparently a shorter antenna (which is just a wire, so very adjustable) decreases the broadcast range.

Ansible Container looks very interesting if you're using Ansible and Containers.

I don't like Powershell, but I realize that it's re-visualization of everything in the shell as an object is very important and likely to be hugely influential. So the open-sourcing of Powershell is really interesting: http://www.ostechnix.com/how-to-install-windows-powershell-in-linux/ .

A newish git graphical client to look at: https://www.gitkraken.com/ . Available on all platforms (or the ones that matter to me: Linux, Apple, Windows). Free ... but there's a paid pro version, which suggests a close inspection of what's not available in the free version is called for. Oops - it's based on Node, which I'm not fond of: that in combination with the freemium arrangement makes this less appealing to me. I'll think about it.

The Docker booth pointed out that they have three free starting-from-zero training videos: http://training.docker.com/self-paced-training . I look forward to those.

"Running Linux on Tiny Peripherals" by Marcel Holtmann wasn't practical to either me or my work, but I maintain a significant personal interest in the general idea. There was lots of interesting stuff in the talk about reducing the size of the Linux Kernel (and he's working with relatively modern kernels - they were issuing pull requests against 4.1) and binaries and user space (almost nil). But I'm going to do his talk a horrible disservice by reducing it to a couple stats. The basic question was "what does it take to run a Linux-based IoT sensor device?" The stack:

  • gummiboot UEFI boot loader
  • Linux OS kernel (evidently 4.1)
  • musl C library (libc6 too big, musl worked well)
  • ELL Utility library
  • BlueZ bluetooth stack

and a couple sizes: 889KB for a compiled binary for QEMU (sensor on serial port), and even compiling for real hardware where a USB dongle was needed, only 1.3MB. His idea - which I totally agree with - is that if Linux becomes too large, it becomes irrelevant. Thus his attempts to merge their changes back to the kernel. Very cool.

On Tuesday evening someone I know in the Toronto Linux community told me how much she'd like to her work to be used in the space program. On Wednesday evening I introduced her to a guy from Virgin Galactic - who turned out to be interested in her work. Her current employer may not thank me, but I felt like I'd done my good deed for the day when they were still talking 20 minutes later.

Another day and a half of fun to come!