Radiolab – Single Transferrable Vote

This morning I’ve had my mind blown, listening to Podcasts on the drive in to work.

You should listen to Radiolab’s Tweak the Vote podcast on ranked choice voting, or “Single Transferrable Vote”.

I heard about California’s idea for ranked choice voting a few years back and it caught into my brain, but I never thought much about it again. The podcast this morning really made me think about it.

First I was confused because the story about counting in Ireland is complicated, but like the wikipedia page for Single Transferable Vote says, for the voter it’s dead simple.

ALSO – if you’re in the US you should go vote tomorrow.

And maybe read this article about Maine for a look at a sample ballot.

Ditching No-IP for DuckDNS

I’ve been using dynamic IP address services from for a long time to give a DNS name to my dynamic home IP. I remember having a address in college around the early 2000s for my dorm, then apartment, computer. I went through a hiatus after college where I managed my domain name to IP mappings manually for a few years (and my own Bind setup), until it seemed like the ISPs started giving me a new address monthly and the burden was too much. I also sold the hardware the DNS server ran on at some point during my moves.

I was happy to see that after over 10 years away, no-ip was still there, and got signed up right away. I have an Ubuntu Linux system as my home desktop (and server really) and was glad to find a client that seemed to run on it. It was a little finicky to get going and was a black box sort of client to install. That wasn’t a good sign to start.

Then came the emails. Oh my god, the emails. Every 30 days they want to make sure you’re still there, and have you verify your domain name. They give you a 1 week notice too, so this means every 21 days you’re getting an email to verify that you’re still there. If you don’t verify – they say they’ll delete your account. When you try to click the email and go to the site it’s VERY clear they’d rather have you sign up for a paid account. Every 21 days for a few years I got nagged until I couldn’t take it any more! They clearly told me that I should go somewhere else for my business if I didn’t want to pay.

This sort of things just bugs me.

At the Open Source conference All Things Open, someone mentioned DuckDNS and I decided to give it a try. It’s been a night and day difference from no-ip so far, for the better.

Here’s what I like:

  1. There is no black box app or script to install on my Linux box. They just use cron and wget.
  2. The instructions are clear and easy to copy and paste.
  3. No one has emailed me anything yet, and since they have ZERO marketing team, I’m assuming no one will.

If you want to get started I highly recommend them. If you’re running a Linux server it’s dead simple.

The whole idea is that you sign up on and get a unique key for your desired domain name. You take this unique key and their copy and paste script and run that every 5 minutes as a cron job.

Every 5 minutes, your server uses wget (called via cron) with the duckdns URL and key and their server figures out your external IP and updates it accordingly. It was ridiculously easy to get started and used systems I already know and love (bash and cron).

Hiking: New Hope Creek North

The adventure on tap for today was to find a hiking trail that was close to home that we haven’t hiked before. We’re lucky in the Durham area to be so close to Duke Forest and the Eno river.

After a bit of online searching with coffee and couch time, we settled on New Hope Creek North. Parking was at Hollow Rock Nature Park off Erwin Rd. From there we crossed the road (despite explicit advice from signs that say do not cross the road, which I had never seen anything like) and headed north.

Strava Activity Entry for New Hope Creek North

The morning was cold and the trail was covered in fall leaves. After a little bit of downhill through the woods we came to the creek and proceeded to turn the wrong way. After a little bit of backtracking we trekked up Piney Mountain and along the river until the spot marked “bridge”, before turning around and hiking back.

This hike along the river was incredibly scenic, full of spots where it would be nice to stop on a sunny day and have lunch. You can see the water winding its way through giant boulders in quite a few places. There was a little bit of stream crossing, bank climbing, and rock climbing involved that makes this trail exciting.

There was no current bridge to be found at the spot marked bridge. Only the remnants of where you can imagine a bridge might have been. I should probably check out Open Street Maps and see if there is a “way” here and tag it appropriately.

We were on the north side of the creek, and we could see lots of rock overhangs on the south side that might make interesting spots to hang out. In one location there was a large tree that fell across the river that looked too inviting NOT to climb. We skipped it today because it was just too cold to risk it – but maybe someday we’ll be back.


This tree looks like it came down during hurricane Michael. It was blocking the trail so we had to go around on the root side.

There were boulders lifted up with the root ball. I’m guessing this tree was here for a long time. One hundred years? More?

There were lots of interesting spots to get up close and personal with the running water. On a sunny day I can imagine this being a great spot to hang out.

All Things Open 2018

Last week I attended the All Things Open conference in Raleigh. This is a conference dedicated to Open Source Software, which is very different from the usual vendor led conferences I attend. It was also unusual to commute to a conference in the morning and then back home at night. Usually conference season means at least one or two visits to Vegas. It was great to skip that this time around!

I mainly went to attend a few session and pick up some skills I could leverage myself. I wasn’t really going to market anything for Nutanix. Here are a few memorable things I took away from the show.

Overall Impression

This was different from a vendor led conference because there was no main stage presentation where a single vendor pitched their view or vision. Instead a lot of different voices were heard on a number of different loosely related subjects. At first my impression was that this led to a little bit of incoherence, but upon reflection I took a little something away from each of the presentations. They all fit in the general theme of the open source community – which is broad ranging itself.

Some of the sessions I wanted to go to were just too packed to even get in the room, so you won’t get any notes on SE Linux or “How to write good docs” (since the presenter was from Google).

I did manage to attend some great sessions on content marketing, personal brand building, and writing

Session: Building Your Personal Brand

Dorothea, the presenter for the brand building session, was herself a lesson on branding. She immediately opened with a comment about the price and ostentatiousness of her “Lady Gaga” shoes.

Your brand is the perception of you that others hold, that lives outside you. Your reputation is what follows you from birth and even beyond death.

She continued with a fun example of Martha Stewart’s brand journey (starting at age 15) that I found really helpful because it tied concepts into real world examples. My key takeaway from this session was LESS on branding and more on how incorporating a good story and example can make a presentation memorable.

I still don’t know what my brand is after this, so you tell me. What is the impression that I’m leaving with you, that persists separate from myself? IT Superhero? Something else?

Session: Marketing Your Open Source Project

I’m not marketing any open source products, but I’m certainly in the marketing organization. I found this session pretty helpful and also example packed.

The thing I can’t forget is this quote:
“Everything that touches the customer is marketing.”

Yes, that sounds right. Sometimes I hear the phrase “We’re ALL in sales.” Yes, I think that’s true. We’re also ALL in marketing. There is no way around it – your interactions with customers, your product, these all leave an impression about your product with the customer whether you are conscious of it or not.

Logos came up in this and many other sessions. If you have a logo your community can rally around that logo. People will want your stickers even if they don’t know what the product is. I don’t know how to take this into the corporate world, where every single product within a company is clamoring to be a uniquely identified component.

Another thing that I really need to start working on:
“If you need to answer something more than three times, it should be in a document.”
I spend a lot of my time just responding to informational queries directly. This is a good point that maybe could be an end of week ritual. What questions have I answered this week. Go back and copy the answer from slack and email and put it into a doc. Repeat and build.

I also want to read a book as a result of this talk:
Kathy Sierra: Making Users Awesome
and a blog
Creating Passionate Users

Keynote: 5 Things You Didn’t Know About Python

This was a fun main stage keynote in the morning about the sort of projects Python is used for. I found it upbeat and chocked full of great project examples. That’s the theme of the show so far. Examples are king!

I took a note to investigate HomeAssistant, an open source home automation tool that’s core focus is on giving you control and privacy while also providing home automation. I don’t know how this fits into my home automation journey, but now I have an item to research.

Keynote: Money As An Open Protocol

My vote for “Most Impassioned Presentation” goes to Andreas Antonopoulos for “Money As An Open Protocol“. He delivered what seemed like a 20 minute slide-less monologue that had the audience putting down their cell phones and paying attention. That’s a skill to admire.

Here’s my ham fisted summary.
Digital Currencies and the block chain are a way of implementing rules that allow us to establish and scale trust beyond the Dunbar number. When you move to a distributed system of money you remove root control of money. Who has root? Finding out who controls the system of money and what rules the system operates on are imperative for the operation of a society. Today the system and rules are behind a gatekeeper. Today the subject of money is taboo. Today, when people learn how fractional reserve and other parts of the system function, they say “That must be a scam.”

Reform in society should start with taking back control of the mechanism for expressing value, money. You don’t have to trust everyone in the system, but you have to trust (and know) the rules that the other players operate by.

Here’s a fun analogy I pulled straight from my notes during the talk: Remember when the Internet ran on top of voice phone lines. The crappiest copper pair you could string together. Now all voice runs on top of the Internet as just a tiny fraction of traffic. Imagine the same thing for banking and BitCoin. Eventually all of commercial banking could run on top of a distributed ledger such as the BitCoin block chain as just a fraction if the chain’s functionality.

How to Write Your First Book or Just a Blog Post

Azat Mardan presented this session with advice on how to start writing. It’s why you’re reading this post in the first place! I’ve been stagnant in my writing and his tips were incredibly valuable. The key thought is to just start writing down your ideas. Start writing down your outline. Start iterating on the outline. The biggest problem he sees people falling into is getting stuck on tools and process, or not being able to break things up into small pieces.

Technology should be no barrier to writing. We’re all carrying notebooks, laptops, iPhones with us everywhere. We can start writing ANYWHERE for any amount of time. I woke up in a moment of sleeplessness a few nights ago and managed to come up with 15 blog ideas in just a few minutes before falling back to sleep. These all exist in my iPhone now!

I don’t have any immediate plans to start writing a book – but I’d like to be a little more active in the nerd blog here with some “How To” blog posts. I’d also like to start writing about my adventures with the wife, and sharing recipes that we love. It’s all a little bit of writing that exists for no other reason than to explore what makes me happy.

Doing it for myself was like the key to unlocking the project. It’s a thing I want to do, and if I break it into small enough pieces for short enough time periods it should be manageable.

Wish me luck!

Recipe – Alton Brown’s Aged Eggnog

Alton Brown’s Aged Eggnog

This is a great tasting, boozy eggnog recipe worth saving and worth making year after year. We’ve let this one age up to 3 months with great results. Our secret has been re-purposing beer growlers (glass jugs) to age the nog.

I’ve done a double batch before, but separating two dozen eggs is not a great time. Drinking the nog was pretty great though, so /shrug.

Another helpful tip – a zester is great for grinding up nutmeg in a pinch.

For posterity, here’s the recipe in case the link above stops working:

12 large eggs (pasteurized if you need peace of mind)
1 pound sugar
1 pint half-n-half
1 pint whole milk
1 pint heavy cream
1 cup Jamaican rum
1 cup cognac
1 cup bourbon
1 teaspoon freshly grated nutmeg (plus more for serving)
1/4 teaspoon kosher salt
  1. Separate the eggs and store the whites for another purpose.
  2. Beat the yolks with the sugar and nutmeg in a large mixing bowl until the mixture lightens in color and falls off the whisk in a solid “ribbon.”
  3. Combine dairy, booze and salt in a second bowl or pitcher and then slowly beat into the egg mixture.
  4. Move to a large glass jar (or a couple of smaller ones) and store in the fridge for a minimum of 2 weeks. A month would be better, and two better still. In fact, there’s nothing that says you couldn’t age it a year, but I’ve just never been able to wait that long. (And yes, you can also drink it right away.)
  5. Serve in mugs or cups topped with a little extra nutmeg grated right on top.

Things You Won’t Learn on My LinkedIn Profile

I had to do a little introduction exercise when I moved over to the marketing team as a Tech Marketing Engineer. I had to share some things you wouldn’t learn on my LinkedIn Profile with the team. I thought it was fun to walk through and worth reposting here!

I just married the woman of my dreams (Kat) who was born in Germany but moved to Florida when she was young. She says y’all with a mixed German and Southern accent and it melts my heart. When we got married we smiled so much our faces hurt. We’re both still amazed that our lives turned out this way and we get to live our dreams.

Despite my mild mannered appearance, I like to live life dangerously. In addition to the rock climbing with my wife, you can find me riding motorcycles, snowboarding, or my one true guilty pleasure, eating Chipotle on my walk to and from HQ and the SJC airport.

I’m a Tough Mudder finisher. You’ll find me out crawling through the mud once a year.

Our long term goal is to move to a walkable city (maybe in Germany or the Netherlands) and spend summer nights walking between cafes. Especially Eiscafés

Backhoe vs Internet

Fiber optics battle yet again with their arch nemesis the backhoe. Results are predictable.

Whole neighborhood out.

Let’s Encrypt – How do I Cron?

Let’s Encrypt was really easy to setup, but Cron was less so. I kept getting emails that the Let’s Encrypt renewal was failing:

2017-03-09 02:51:02,285:WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/ produced an unexpected error: The apache plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError(). Skipping.
1 renew failure(s), 0 parse failure(s)

I had a cron job setup with the absolute bare minimum:

crontab -e
56 02 * * * /usr/bin/letsencrypt renew >> /var/log/le-renew.log

When I ran
/usr/bin/letsencrypt renew
at the command line, everything worked just fine. I was like, “Oh – this must be some stupid cron thing that I used to know, but never remember.”

Turns out the problem was the cron environment PATH variable. Cron didn’t have access to /usr/sbin and apparently certbot was using that for access to the apache2 binary. The fix was to change the cron to the following:

56 02 * * * /root/

Then create a script that runs the renewal after the PATH variable is set correctly:

cat /root/
#Automate the LE renewal process

#Need /usr/sbin for apache2
export PATH=$PATH:/usr/sbin

#Renew the certs and log the results
/usr/bin/letsencrypt renew >> /var/log/le-renew.log

It was a good thing I put the link to the problem right in the script, or I never would have been able to find it again to write this blog.

NOW my renewal works absolutely fine. Problem solved. Thanks Cron.