Script Away Your Annoyances – Removing Manual Project Setup Tasks

Don’t make me think. Image credit : Beth Tourek.

In recent years I’ve come to deeply appreciate the phrase “don’t make me think.” I will forget how to perform a setup step approximately 7 seconds after I do it, let alone 3 years after I’ve done it (and I know I’m not alone!).

Thus starting to work on an existing project will often give me anxiety—not because I’m worried about learning a new domain or existing system, but because getting the dang thing running can sometimes be the hardest part! Read more on Script Away Your Annoyances – Removing Manual Project Setup Tasks…

Adding an iOS Container View in Xcode

If you are new to iOS programming, you may not know of a very useful feature in iOS called container views. A container view allows you to create a reusable component that all of your view controllers can share. The containers are easily edited with the storyboard editor of Xcode.  Plus the reusable component is also backed by the power of a separate child view controller.

Read more on Adding an iOS Container View in Xcode…

Using Vagrant to Deploy to a Remote Hyper-V Host

As a general rule, I try to minimize the number of programs installed and configured on the host OS of my laptop. I use the host mostly for email, office, and web browsing. It’s much faster to create isolated development environments inside of virtual machines. If a project requires some third-party applications or modifying system-wide settings, I don’t need to worry about it corrupting my host OS or affecting other projects.

Read more on Using Vagrant to Deploy to a Remote Hyper-V Host…

It’s Not About the Syntax – Why Language Doesn’t Matter

Speaking a language fluently is impressive, and speaking many languages is impressive, but ultimately, it’s not about the words. Talking is about communication. This applies as much to programming as to speaking. Switching to Spanish or Cantonese won’t help if you don’t know how to form and organize meaningful thoughts about a subject, and knowing all the syntax and semantics of C++ won’t help if you don’t know how to write organized, meaningful code. Learn the principles that apply in many languages, and the rest will follow. Don’t just learn a programming language. Learn to program.

Read more on It’s Not About the Syntax – Why Language Doesn’t Matter…

Getting the Architecture Right

The foundational building blocks of your software determine what’s easy and what’s not. It’s important to know how the choices you make at the lowest level will affect your ability to build features down the road. When your software architecture doesn’t match the problem domain, it feels like walking uphill. When you get it right, features seem to come together on their own.

Read more on Getting the Architecture Right…

CodeRunner: A Generalist’s Swiss Army Knife


Working as a maker at Atomic Object means being a generalist. Generalists must be able to quickly move between projects, languages, and tech stacks. We are expected to quickly pick up new languages and technologies–drawing from our expertise in the technologies that we already know well.

One tool I’ve found useful in picking up new technologies (or just trying things out) is CodeRunner. CodeRunner bills itself as a “code editor for Mac.” It’s an editor that’s preconfigured to build/run code in a variety of languages. In this blog post I will describe some of its features and cover how I’ve used it in my work. Read more on CodeRunner: A Generalist’s Swiss Army Knife…