Hi there 👋

Welcome to my website. This is where I write about what I am learning at the moment. A lot of it is probably boring and not all that well written, but hey, no one is forcing you to read it. I just needed an outlet/excuse to write some stuff. If anyone finds any of it beneficial that is totally a bonus. Feel free to peruse at your leisure or move on if this isn’t the place for you. And if you have any feedback (preferably constructive), go ahead and send it to any of the links over there to the left. Thanks!

Recent Posts

Programming Resources

This is a list of some good resources I’ve come across in my time trying to learn programming. It isn’t comprehensive, but I’ve had some people ask about resources to look into, so I thought I’d put my list together in one place. If you have a good resource you think is worth adding, let me know and I’ll take a look. Getting Started with Swift/iOS/MacOS The Swift Programming Language Guide Read this!...

December 6, 2018 · 2 min

5 Reasons to Use Typealias

Swift has many features that allow us as the users of the language to customize how we write code, while still giving us all the protections of a statically typed language. Today we’re going to talk about one of those features which seems small, but it packs a lot of punch. The typealias keyword lets you define a “type alias”, a custom name for a class, struct or any other existing type in Swift....

May 25, 2022 · 8 min

Writing Short Code Isn't The Point

I don’t know about you, but I have spent a lot of time trying to write code in the shortest, most elegant way possible. I have put a lot of thought and time and effort into it over the years. And I see it a lot in other people’s code as well. I have seen it from both junior and senior developers. I have seen it in new code bases and mature code bases, both large and small....

March 13, 2022 · 9 min

Fixing an Unfixable Bug

If you have been an iOS developer for any length of time, you have certainly come across bugs that are hard to understand and hard to track down. And if you have an app out in the world that real human beings use you have probably encountered a bug or crash that is happening for some subset of your users, but that you cannot for the life of you reproduce on your device....

March 6, 2022 · 7 min

Algorithms in Swift - Intro

I am looking for an excuse to learn more about algorithms, so I am going to write a series of posts that cover some of the most common ones and examine at what they might look like in Swift. I know algorithms often feel like an academic topic – something for nerds in computer science classes. They can be intimidating because their explanations and examples tend to be math-heavy and there is a lot of hard-to-decipher jargon out there about them....

January 14, 2019 · 10 min

Advent of Code 2018 - Set up

Original Set up The first (meta) problem with Advent of Code is to figure out how you’re going to organize your code for these challenges. How get the input into a usable format, how to keep things in order and minimize the time it takes, etc. At first, I decided to code my solutions in Swift in an Xcode playground. The organization I landed on for that was to make a blank source file and to declare a public let day1Input: String in there....

December 10, 2018 · 6 min

Advent of Code 2018 - Day 7

Problem 1 My understanding of Day 7’s first problem is this: given a series of instructions like the one below, return a String which is the correct order in which the instructions will be executed. The sample data returns "CABDFE". Step C must be finished before step A can begin. Step C must be finished before step F can begin. Step A must be finished before step B can begin. Step A must be finished before step D can begin....

December 8, 2018 · 9 min

Advent of Code 2018 - Day 6

Problem 1 My understanding of Day 6’s first problem is this: given a list of coordinates like the one below, return an Int which is the size of the largest open area that isn’t infinite (using Manhattan or taxicab distance) around a point. The sample data returns 17. 1, 1 1, 6 8, 3 3, 4 5, 5 8, 9 Method My method for solving this problem looks like this:...

December 7, 2018 · 7 min

Advent of Code 2018 - Day 5

Problem 1 My understanding of Day 5’s first problem is this: given a String like "dabAcCaCBAcCcaDA", return an Int which is the number of characters remaining after being reduced by removing pairs of letters which are adjacent, the same letter, and opposite cases. For example "cC" and "Aa". The sample returns 10. Method My method for solving this problem looks like this: Make an outer while loop that will continue until you make it all the way through the String without finding any pairs that can be removed....

December 6, 2018 · 6 min

Advent of Code 2018 - Day 4

Problem 1 My understanding of Day 4’s first problem is this: given a string like the one below, return an Int that is the minute at which the guard who spent the most total minutes asleep was asleep the most, times that guard’s ID number. The sample data returns 240. Sample data: [1518-11-01 00:00] Guard #10 begins shift [1518-11-01 00:05] falls asleep [1518-11-01 00:25] wakes up [1518-11-01 00:30] falls asleep [1518-11-01 00:55] wakes up [1518-11-01 23:58] Guard #99 begins shift [1518-11-02 00:40] falls asleep [1518-11-02 00:50] wakes up [1518-11-03 00:05] Guard #10 begins shift [1518-11-03 00:24] falls asleep [1518-11-03 00:29] wakes up [1518-11-04 00:02] Guard #99 begins shift [1518-11-04 00:36] falls asleep [1518-11-04 00:46] wakes up [1518-11-05 00:03] Guard #99 begins shift [1518-11-05 00:45] falls asleep [1518-11-05 00:55] wakes up Method My method for solving this problem looks like this:...

December 5, 2018 · 9 min