Sam Doran

My little corner of the Internet

Migrating from Aperture to Lightroom

I’ve been putting this off for a while, but I finally decided to take the plunge to migrate my 34,000+ photo Aperture library to Lightroom1. I shoot RAW, so the size of my library on disk is about 417GB. Lots of data to migrate, hence my reluctance to make the move.

One other reason I waited this long (besides sheer laziness) is I wanted to wait for the Aperture to Lightroom migration tools and processes to mature a bit. Adobe includes an Aperture import plug-in with Lightroom, and I am very thankful for that. While I wish it had a few more options, it’s far better than nothing.

Backing Up VyOS Configuration

I’ve been doing a lot of work recently with VyOS1, the really amazing open source2 Linux based router operating system. A co-worker of mine showed it to me when we needed a capable router in our development environment and we didn’t feel like waiting for finance to approve a Cisco purchase. I have to admit I didn’t quite get it at first. Linux is an OS, not a router! That’s what IOS3 is for! But after digging into it a bit for a budget constrained side project, I’m totally hooked. And I learned, unequivocally, that Linux can function as a very capable router.

One of the oddities about VyOS is the show configuration command doesn’t produce copy/pastable output. This was initially frustrating to me as someone who is accustomed to the way IOS, ASA OS, and NX-OS work: what you type on the command line is exactly what gets put in the running config. And you can copy and paste bits from a saved config to reuse those settings in other devices.

To get similar behavior out of VyOS, run show configuration commands. You can parse this using our friend the pipe character (|) and the match command followed by a pattern4 like so:

show configuration commands | match interfaces

I wrote a simple script5 to save the running configuration to date stamped file. This could probably get fancier and scp it somewhere, but I just put it on the router itself in my home directory and grab it using an SFTP client.

VyOS Backup
1
2
3
4
#!/bin/vbash
source /opt/vyatta/etc/functions/script-template

run show configuration commands > $HOME/$(date +%Y%m%d-%H%M%S)_$(hostname).txt

Happy routing! And don’t forget to always backup your config!


  1. I use “Vyatta”, “VyOS”, and “EdgeRouter” interchangeably, for better or for worse.

  2. Well, it’s technically no longer open source since Brocade bought them. But VyOS and EdgeRouter are healthy open source forks. That’s what I’ve been using.

  3. Cisco IOS, not that iOS.

  4. This feels like fgrep is being run behind the scenes. Very similiar to the Cisco | include command.

  5. There are a few idiosyncrasies to scripting with VyOS outlined here.

Serial, a Wonderful Serial Terminal for OS X →

I spend a lot of my professional working life using a serial terminal to configure routers, switches, and servers. Serial terminal applications on OS X were always a mixed bag. Most of the ones that came up a lot in searches haven’t been updated in ages. Add to that the fact that OS X has a mixed history with driver1 support for USB to serial devices and you have a perfect storm of frustration and the one area where Windows was actually a better OS choice2

Serial is an overwhelmingly great serial terminal. It includes drivers! It’s just a serial terminal, not a kitchen sink app. It does one thing well. And I love it. If you spend any amount of time in a serial terminal, Serial is the app you’ve been waiting for.


  1. This is the only driver I found that worked. Well worth the price.

  2. PuTTY is the serial/telnet/SSH client most popular on Windows. It’s terrible but gets the job done, unlike most terminal emulators on OS X before Serial came along.

Hack: A Typeface for Programming →

I spend most of my waking hours staring at text, either writing code or in a terminal. Before I made my living as a sysadmin, I spent years working in graphic design and publishing. I love typography, and I read text on screens all day, and I pay close attention to the typography I encounter1.

For many years, my monospaced font of choice was Inconsolata. It is an excellent typeface that I have used every single day for more than five years, but Hack has eeked it out as my new daily typeface. I find Hack to be slightly more legible than Inconsolata, though Hack Bold is a hair too heavy to my eyes.

Besides being pleasantly legible, Hack has an impressive collection of 1,500+ glpyhs, free CDN hosting, detailed instructions for self hosting, and an active open source project. I highly recommend you check it out.


  1. I’m no John Gruber, but I try my best.

STIG Compliance with Ansible →

From the moment that I fully grokked the power of idempotence, I immediately saw the potential for Ansible as the STIG compliance tool. When I worked as a sysadmin for the US Navy, I spent a good deal of my time making sure systems were hardened appropriately according to those guidelines. I used a combination of kickstart files and shell scripts to the get the job done because I found the existing tools, SRR scripts and Gold Disk1, pretty useless.

I Tried On the Watch

Today I tried on the Apple Watch at my local Apple Store. I booked the appointment about two hours beforehand, which I was happy to find it so easy to get an appointment. I went to the store and was quickly greeted by friendly staff there to help me try on any Apple Watch they had available. I must say I was quite surprised to see the Apple Watch Eddition on display (not for try-on) in Richmond, VA of all places. It’s startling how two tiny little Apple Watches sitting in the display case are easily worth more than all the cars I own combined.

Cut the Cord Calculator →

I have never in my adult life (meaning paying my own bills) had a cable subscription longer than three months1. There have only been a handful of times in the past nine years that I actually missed having a cable subscription—events like the Macy’s Thanksgiving Day Parade and the ball dropping in Times Square on New Year’s Eve. That’s it2.