photo of me

Hello! I'm Christopher Kruse, a software developer and all-around nerd living in the Seattle, WA area. I like to spend my time in Ruby, JS, Clojure and Rust when possible. When I'm not at the keyboard, I'm largely found either in choirs in my local area, on Twitter, or playing some video games.

You can find me in a few other places around the Internet:

Other Links

Advent of Code 2018 - Day 3

Solving these problems has been more difficult than I originally imagined - these aren't your FizzBuzz-level problems; they're asking for a little bit more (especially the second halves). I got a little bit of a head start on day three, as I'm three hours behind the release of the problems, and that means I get to have some time before bed to think about them. This proved bad, as I was laying in bed thinking about solving things (which makes sleeping nigh impossible :D).

On this particular night/day, I had some issues with work (and I was on-call for my team at the time), so I got a second chance to look at them early in the morning (3am-ish local time). But, once I was up, I was up, so once the work problem subsided, I took a crack at getting the rest of the problem solved.

This is my first of these writeups to take place after-the-fact, so let me know if there's any issues with how it was covered here vs. the previous days.

Day 3, Part 1

Advent of Code 2018 - Day 2

Welcome back! Today, we're continuing the Advent of Code challenges. I found these challenges through the awesome people I've found at the dev.to community, which has been embracing these challenges, providing discussion boards, and more.

Day 2, Problem the First

The long-and-short of the second day's problem is thus:

You are given a list of box IDs, which are series of letters. In order to verify the contents of the boxes in total, you count the number of IDs with "exactly two of any letter", and separately count "exactly three of any letter" to make a checksum of the values. Using the example from the problem statement:

For example, if you see the following box IDs:

  1. abcdef contains no letters that appear exactly two or three times.
  2. bababc contains two a and three b, so it counts for both.
  3. abbcde contains two b, but no letter appears exactly three times.
  4. abcccd contains three c, but no letter appears exactly two times.
  5. aabcdd contains two a and two d, but it only counts once.
  6. abcdee contains two e.
  7. ababab contains three a and three b, but it only counts once.

As a result, we have four IDs which contain exactly two repeated letters (2, 3, 5, and 6), and three IDs which contain three repeats (2, 4, 7). If you multiply these values together 4 x 3 = 12, so 12 is your checksum value. You are now asked to calculate the checksum value of the test input.

Advent of Code 2018 - Day 1

Spurred on by

  1. a lack of posting in this space,
  2. the chance to show off the new backend/theme to my blog (I did work on this while nobody was looking, and started building an RSS feeed!), and
  3. after finding this Tweet by Ali Spittel,

I decided that doing this "Advent of Code" was something to do. First, it gives me a nice thing to practice on. Second, it gives me a reason to make some frequent posts on here (which, given the year+ lack of content, may not be a bad idea). Finally, it helps me build out some public code, which I've been bad at doing - even if they're solutions to set problems. I'll be using GitHub gists for posting my solutions, and embedding them here.

The DIY Web

TL;DR: Building on basic email, and with the advent of Mastodon, XMPP, Matrix and more, using and building federated networks could bring immesurable improvements to the Internet.

On Walled Gardens

One of the more controversial decisions I've made for myself in the past few years was to take myself off of the Facebook platform. While this makes it far harder for friends and family to scout me out on the Internet as a whole, I had reservations about using their platform, and ultimately deactivated my account in early 2011. The reason for this mostly stems out of two main points:

  • The first takes us way back to April of 2010. Back then, Facebook introduced a change to their platform; as a result, all users' permissions defaulted to be public by default. This caused a fair amount of backlash at the time, and ultimately caused the FTC to sanction Facebook as a result of this and earlier privacy concerns.
  • The second is due to their need to create a wide break between content on the inside of their platform and the rest of the Internet (the "walled garden", as is often used). As a result of this separation, users who either are not on Facebook at all, or may be logged out for the time being, lose the ability to access media and content stored there.

Tracking while you Gogo

I'm flying a lot more as part of my current job. As I write this, I'm on a flight from Seattle to Salt Lake City (first of a connection). I enjoy the fact that I can connect to the internet while going over 500 MPH at nearly 30,000 feet in the air - it's a wonder of science that I can do these things.

However, sometimes the cost of getting the in-flight internet is a little over-the-top. Most of the time, I'll connect to the hotspot, but then use my laptop offline (http://devdocs.io offline mode is perfect for this).

On one of my last flights, though, I wanted to see just what I had access to. On Delta flights, there's a flight status tracker on the web portal during the flight, which provides details about how the flight is going, times to arrival, and other flight data. A data nerd by nature, this is something I want, and normally pull up on the seat-back entertainment system (instead of watching a movie like a normal human being.)