About

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:


Daily Thought:

Participated in a discussion on people learning ruby, and it reminded me of _why and his Poignant Guide.

Sure, by now it's dated, and the syntax doesn't hold up to best practices 100%, but even reading through it today, it's entertaining and captures your interest.

It's why I still consider ruby my "I need to get shit done" language - it just feels right.

more Dailies

Other Links

Making the Shell Less Scary - Starting out

I will fully admit that I grew up comfortable working on a computer without a GUI. From my early days, I had an old computer that I mainly used to play games (some things never change, but current ones don't come on 5 1/4" floppies); in order to get those games to run, I learned from my Mom how to access the correct drive, and the commands to run in order to start up the game.

Today, even though we have fancy GUI apps to do a lot of the work that we need to get done on a daily basis, I still find that it's easier for me to quickly open a terminal window, enter a few commands, and complete whatever task I was doing. Not everything benefits from this approach (imagine doing image editing with a text editor!), but tasks involving finding files, moving files around the system, and working on remote systems works are things that I would much prefer a terminal for.

Today I'm going to dive into a few of the commands that do just the things that I was talking about. These are some of the commands that you would end up using on a day-to-day basis in a terminal window; hopefully I can shine some light on some corners of them that you don't expect.

Dailies

I realized I hadn't updated this space in a fair amount of time. The Advent of Code project, while fun, also became very time-consuming (if you add in the time spent around mid- to late-December performing in choir events, I ran out of time to do much of anything).

However, I'm going to try to hold myself to updating this at least somewhat regularly. In order to help me do that, I've put together a "dailies" section, where I can drop a daily thought. That will be presented on the main page sidebar, and should hopefully hold me to updating it (even with a trivial thought) once a day.

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.