Software Design - Dependency Injection and Inversion

What are they? While it may seem like nothing more than buzz words, dependency injection is a well known principle. In fact, you’ve likely used it yourself in the past and just didn’t know the technique had a name. Dependency injection can be thought of as passing a resource required by a class to the class through one of several means. While the class could instantiate a new instance of the resource itself, by using dependency injection we introduce an easier way to take advantage of dependency inversion.

Continue reading ↦

Software Design - Unit Tests vs Integration Tests

Preface Unit tests and integration tests are designed to serve two different purposes. They are not meant to substitute each other, and each type has a specific focus. However, developers tend to struggle to determine the border that seperates unit tests and integration tests as there is no set hard limit on either one. What is a Unit Test? Unit is somewhat of an ambiguous term, but in this situation it can be thought of as the smallest piece of code that can be isolated from the rest of the program.

Continue reading ↦

No Mans Blocks - 10/13/2018

Where I’ve Been, and Where I’m Heading I took somewhat of an unplanned hiatus from working on No Mans Blocks. Initially, I took a break because I wanted to pursue writing a server for a Reddit clone. It wasn’t until about two months in that I realized just how over scoped the project was and how long it would take to finish. While I may not have much to show for this time, it did open my eyes up to some of the common software-architecture patterns, and how to utilize these patterns to better organize my projects.

Continue reading ↦

Software Design - Validator Pattern

Validating Objects Based on Context It’s quite typical for a Domain Driven Design (DDD) project to need validation for it’s domain models. While it may be sufficient to solve this by adding an IsValid() method to each model, this can cause confusion for the developer by cluttering the model class, and/or by requiring the IsValid() method to be generalized that it covers a large range of validation rules for any situation that may arise.

Continue reading ↦

Cherokee Build - 10/8/18

Passenger side rocker replacement This post is the second part in my mini-series of restoring my old xj cherokee. If your interested, check out my attempt at saving the rusty roof. Like most xjs out there, especially those in the rustier parts of the US, the rocker panels needed some love. I never really captured a good before shot of the rust on the passenger side rocker. It was roughly 9” in length and about 3” wide.

Continue reading ↦

My Work Station 2.0

Going all out This post is a successor to my first attempt at building a standing desk. Back during college when I built my first desk I didn’t have much of a budget since it was a spur of the moment decision. Because of this the solution I came up with ended up being a permanent standing desk built using misc. parts from Lowe’s. Ever since graduating from college however, I’ve found it less than thrilling to come home and stand at my desk after standing all day at work.

Continue reading ↦

Cherokee Build - 9/03/18

Repainting the Cherokee’s roof I’m a big fan of older vehicles. I just love the simplicity of them and how easy they are to work on them. Plus the cost of parts really can’t be beat. Since my civic is far from snow worthy I also own a 2000 Jeep Cherokee. It may not be the prettiest vehicle out there but it’s never let me down, and has successfully travelled 20,000 miles in it’s first year of owner ship with a couple road trips ranging in the 800-1000 mile range.

Continue reading ↦

MySQL - Setting up a MySQL Server with Ubuntu via VirtualBox Part 3

Part 3: Setting up MySQL Server If you’ve made it this far your on the home stretch! In this part we’ll be configuring Ubuntu, and setting up MySQL Server. If you haven’t already, load up the Ubuntu VM. While this is optional, I highly recommend giving your server a static IP address. Normally the router is reponsible for handing out IP addresses but since we will be connecting to this through code we really don’t want to have to update the address every single time in the database connection.

Continue reading ↦

MySQL - Setting up a MySQL Server with Ubuntu via VirtualBox Part 2

Part 2: Installing Ubuntu With out virtual machine ready to be fired up thanks to part 1, we are now ready to begin installing Ubuntu. If you don’t have VirtualBox open, go ahead and do so now. Highlight the VM that we just set up and click Start Okay I lied. There’s actually one last step we need to do and that’s specify the location of our Ubuntu ISO file that we downloaded earlier.

Continue reading ↦

MySQL - Setting up a MySQL Server with Ubuntu via VirtualBox Part 1

Part 1: Setting up Virtual Box Welcome! This is part 1 of my 3 part series that will teach you how to start up an instance of MySQL server running in a Ubuntu virtual machine. This is great for when you need a temporary or non public database server for development. Before we begin though you’ll need a few resources. Download the following: VirtualBox Ubuntu (Desktop) Why Desktop?

Continue reading ↦