Main Thread

Articles relating to Software Engineering.

Building Products - Building an audience

The second in a series on building products where I review steps done to grow a new audience for my upcoming product Optionality.

Published in Main Thread 1 week ago • 4 min read


Jekyll to Jigsaw

Some notes on the process of converting the static site generator I use from Jekyll to Jigsaw.

Published in Main Thread 1 week ago • 5 min read


2018 Lookbehind, Lookahead 2019

A look back at my 2018 dev goals and a lookahead at my dev goals for 2019.

Published in Main Thread 2 weeks ago • 5 min read


Building Products - Starting from Square 0

The first in a series of posts on building products from the ground up.

Published in Main Thread on December 13th • 6 min read


Updating Apache, PHP, and MySQL for macOS Mojave

So you upgraded from Mac OS X Sierra to macOS Mojave, huh?

Published in Main Thread on November 27th • 3 min read


Installing Apache, PHP, and MySQL on macOS Mojave

This is an update of a previous post to install Apache, PHP, and MySQL on Mac OS for macOS Mojave.

Published in Main Thread on November 26th • 3 min read


10 practices for readable code

A set of 10 practices for writing code with a focus on improving readability and reducing complexity.

Published in Main Thread on September 18th • 5 min read


Laravel by the Numbers

A unique analysis of data from Laravel Shift on over 8,000 Laravel apps.

Published in Main Thread on July 25th • 10 min read


2018 Dev Goals

A little backstory on the 5 development goals I set to achieve in 2018.

Published in Main Thread in 2018 • 5 min read


Fake it by stubbing the mock, dummy

Why differences in test objects are often inconsequential and how abstraction can improve developer happiness.

Published in Main Thread in 2017 • 3 min read


Writing Clean Code (Part 2)

Three more practices to write clean code and help improve code readability.

Published in Main Thread in 2017 • 4 min read


SMS admin in 8 lines of code

In an effort to provide on the go support for Laravel Shift, I created an SMS based admin using Nexmo and Laravel.

Published in Main Thread in 2017 • 4 min read


References from "Writing Clean Code"

Additional references from my recent post "Writing Clean Code" containing motivation and practices for writing clean code.

Published in Main Thread in 2017 • 1 min read


Writing Clean Code

Three simple practices to help write clean code and improve the readability of a codebase.

Published in Main Thread in 2017 • 4 min read


Starting an online workshop for Git

The backstory for my plan to host an online workshop on Git.

Published in Main Thread in 2017 • 3 min read


You changed the code, you didn't refactor the code.

A closer look at the important difference between changing code and refactoring code.

Published in Main Thread in 2017 • 2 min read


An edge case for cache busting

Most high performance web sites optimize for the sad path. In this article, we address a way to optimize for the happy path too.

Published in Main Thread in 2017 • 4 min read


Compensation tips

Advice on compensation, seeking raises, and determining when to change jobs shared from my own experiences.

Published in Main Thread in 2017 • 4 min read


Lumen is dead. Long live Lumen.

Why I believe Lumen is dying and what the future holds for Lumen.

Published in Main Thread in 2017 • 2 min read


Accepting Adam's TDD Challenge

A response to Adam Wathan's challenge that isolated unit testing is incompatible with TDD.

Published in Main Thread in 2017 • 4 min read


Pivoting from Laravel Shift

Why I chose to pivot from a recent, successful product to a new product.

Published in Main Thread in 2017 • 2 min read


Shift Developer Platform

Announcing a platform for developers to build custom Shifts.

Published in Main Thread in 2017 • 1 min read


Practicing YAGNI - Show me the code

A write-up of the code samples given during my "Practicing YAGNI" talk at ZendCon 2016.

Published in Main Thread in 2016 • 0 min read


Installing Apache, PHP, and MySQL on Mac OS X Sierra

This is an update for Mac OS X Sierra of a previous post on installing Apache, PHP, and MySQL for Mac OS X.

Published in Main Thread in 2016 • 3 min read


Updating Apache, PHP, and MySQL to Mac OS X Sierra

So you upgraded from Mac OS X El Capitan to Mac OS X Sierra, huh?

Published in Main Thread in 2016 • 3 min read


Update PHP on Mac OS X

How to upgrade or install a different version of PHP on Mac OS X.

Published in Main Thread in 2016 • 2 min read


Laravel Shift - 1,000 applications upgraded

A retrospective on creating Laravel Shift as it reaches its milestone of 1,000 Laravel applications upgraded.

Published in Main Thread in 2016 • 4 min read


The Proximity Rule?

A recent coding style I call the "Proximity Rule". Might be called something else, but I still like the code.

Published in Main Thread in 2016 • 3 min read


Practicing YAGNI

A summary of my talk at Laracon US 2016 on "Practicing YAGNI".

Published in Main Thread in 2016 • 4 min read


From Mentoring to Pair Programming to Coaching

Going beyond mentoring or pair programming with personal development coaching in PHP, JavaScript, Objective-C, TDD, Git, and more.

Published in Main Thread in 2016 • 1 min read


Shift: Laravel Automated Upgrade Tool

Introducing Shift - a Laravel framework automated upgrade tool.

Published in Main Thread in 2015 • 1 min read


Updating Apache, PHP, and MySQL to Mac OS X El Capitan

So you upgraded from Mac OS X Yosemite to Mac OS X El Capitan, huh?

Published in Main Thread in 2015 • 2 min read


Installing Apache, PHP, and MySQL on Mac OS X El Capitan

This is an update for Mac OS X El Capitan of a previous post on installing Apache, PHP, and MySQL for Mac OS X.

Published in Main Thread in 2015 • 3 min read


100 days practicing TDD

A retro after practicing test driven development for 100 days.

Published in Main Thread in 2015 • 2 min read


Two Weeks of Extreme Programming

Some initial thoughts after two weeks on a new team practicing extreme programming.

Published in Main Thread in 2015 • 3 min read


Published in Main Thread in 2015 • 3 min read


Removing Comments

A closer look at the practice of removing comments from code.

Published in Main Thread in 2015 • 3 min read


Migrating from Octopress to Jekyll

Back to the basics with just Jekyll.

Published in Main Thread in 2015 • 2 min read


Are you a Boy Scout?

A look at how the simple practice of "boyscouting" can improve your code.

Published in Main Thread in 2015 • 1 min read


Configuring Apache Virtual Hosts on Mac OS X

Tutorial for configuring Apache Virtual Hosts on Mac OS X.

Published in Main Thread in 2014 • 5 min read


Installing Apache, PHP, and MySQL on Mac OS X Yosemite

This is an update for Mac OS X Yosemite of a previous post on installing Apache, PHP, and MySQL for Mac OS X.

Published in Main Thread in 2014 • 3 min read


The Reading List

A list of books culled over the years on the journey to improve my craft as a software engineer.

Published in Main Thread in 2014 • 1 min read


The Debugging Golden Rule

Developers need to remember the Debugging Golden Rule.

Published in Main Thread in 2014 • 2 min read


A rockstar developer can't save you

A rockstar developer can't save you. Why? Because the developer gap.

Published in Main Thread in 2014 • 2 min read


Letting a successful app fail

Making the difficult decision to let PocketBracket, a successful app, fail.

Published in Main Thread in 2014 • 2 min read


Launching my first Kickstarter project

The story behind launching my first project on Kickstarter.

Published in Main Thread in 2013 • 3 min read


gh - Open GitHub from the Command Line

A shell script to open GitHub from the command line.

Published in Main Thread in 2013 • 1 min read


Recruiter Methods

A closer look at the methods employed by recruiters.

Published in Main Thread in 2013 • 3 min read


Convert uniqid() to a timestamp

A proof on how you can convert uniqid() to a Unix timestamp in PHP.

Published in Main Thread in 2013 • 2 min read


Journey to become an iOS Developer

A rant on my journey to become a real iOS developer.

Published in Main Thread in 2013 • 2 min read


Fixing PHP Errors

A guide to interpreting and fixing PHP errors.

Published in Main Thread in 2013 • 4 min read


Common debugging for PHP and MySQL

This post provides a basic checklist for common database debugging when developing with examples in PHP and MySQL.

Published in Main Thread in 2013 • 2 min read


Updated: WordPress Multitenacy

An update to my solution for a multitenant WordPress install. With improvements in maintainability and extensibility.

Published in Main Thread in 2013 • 2 min read


PHP Namespaces: Avoid use

A look at how use breaks PHP namespaces and why you should avoid using use.

Published in Main Thread in 2013 • 2 min read


Why I leave a job

A reflection on the core criteria of a good job after deciding to leave The New York Times.

Published in Main Thread in 2013 • 2 min read


Forward-Compatible Code

While updating some legacy code to be backward-compatible I found that forward-compatibility was equally important.

Published in Main Thread in 2013 • 1 min read


Benchmark: Octopress vs. WordPress

A follow-up post reviewing the benchmarks performed during my recent migration from WordPress to Octopress.

Published in Main Thread in 2013 • 2 min read


Migrating from WordPress to Octopress

A post on my recent migration from WordPress to Octopress as a return to simple blogging and a site with greasy, fast speed.

Published in Main Thread in 2013 • 3 min read


A Response to “Micro-Optimizations in PHP”

A response to a post on PHP Micro-Optimizations floating around the PHP community recently.

Published in Main Thread in 2012 • 4 min read


Why [certain language] developers are better developers

An evaluation of the argument 'Why [certain language] developers are better developers' and why it might be valid.

Published in Main Thread in 2012 • 1 min read


Tough Mudder Kentucky

A review of our second Tough Mudder. This course in Kentucky. As well as a quick look at why I am a Tough Mudder.

Published in Main Thread in 2012 • 3 min read


Be a Better PHP Developer: Coding Standards

The next installment of a series on how to be a better PHP developer, and better developer in general. This post covers PHP coding standards.

Published in Main Thread in 2012 • 2 min read


Install PEAR and PECL on Mac OS X

This post outlines how to install PEAR and PECL on Mac OS X.

Published in Main Thread in 2012 • 1 min read


Installing Apache, PHP, and MySQL on Mac OS X

This post outlines installing Apache, PHP, and MySQL on Mac OS X. In addition, I cover configuring Virtual Hosts and installing PHPMyAdmin.

Published in Main Thread in 2012 • 5 min read


Updating SVN for Mac OS X

This post outlines updating SVN for Mac OS X. I updated after realizing new apps used SVN 1.7 while Mac OS X Mountain Lion used SVN 1.6.

Published in Main Thread in 2012 • 2 min read


In Code: Fashion vs. Style

While talking about technologies and trends, I heard an interesting analogy - the difference between fashion & style as it relates to code.

Published in Main Thread in 2012 • 1 min read


WordPress Multitenancy

WordPress Multitenancy - a simple solution to a complex problem. This post covers creating a multitenant architecture for WordPress. Aimed at improving scalability and maintainability.

Published in Main Thread in 2012 • 6 min read


Be a Better PHP Developer: The Basics

After reviewing thousands of lines of code over the last few years, I compiled a list of simple tips to help you be a better PHP developer.

Published in Main Thread in 2012 • 2 min read


Developer vs. Engineer

After interviewing with some top tech companies, I realized the difference between a developer and an engineer.

Published in Main Thread in 2012 • 1 min read


Migrating WordPress to Amazon EC2

After my shared hosting plan expired, I migrated to Amazon EC2. My WordPress site now runs on a micro instance. Free for the next year.

Published in Main Thread in 2012 • 1 min read


Louisville PHP User Group

For years I searched for a PHP User Group in Louisville. No more. I'm starting the Louisville PHP User Group and leading our first meeting.

Published in Main Thread in 2012 • 1 min read


Another year of PocketBracket: A March Madness App

A look back on 4 years of developing, managing, and marketing PocketBracket - a March Madness app for iOS, Android, and Windows Phone devices.

Published in Main Thread in 2012 • 7 min read


Installing and Configuring AWStats on Amazon EC2

Step by step instructions for installing and configuring AWStats on Amazon EC2, as well as a script that automatically configures and updates sites for AWStats.

Published in Main Thread in 2012 • 3 min read


Generate user password for CakePHP Auth

A script that hashes password for existing user records when using CakePHP Auth.

Published in Main Thread in 2012 • 1 min read


Netflix Feature Request: Multiple Account Profiles

After recently sharing my Netflix account with my parents, I noticed a missing feature I believe is common in shared systems: User Profiles. This post is a letter to Netflix requesting this feature.

Published in Main Thread in 2012 • 2 min read


Installing, Configuring, and Deploying I/O Docs

This post covers installing, configuring, and deploying (Heroku) I/O Docs - a live interactive documentation system for RESTful web APIs developed with node.js and redis.

Published in Main Thread in 2012 • 4 min read


Unexpected behavior with drop-down option order using minYear, maxYear in CakePHP

A rant after encountering unexpected sort order when using minYear and maxYear attributes to control options in an drop down. The solution involved an undocumented, and in my opinion unnecessary, attribute.

Published in Main Thread in 2012 • 1 min read


Tough Mudder Indiana

An article about our first Tough Mudder - the Tough Mudder Indiana at Badlands Off Road Park in late November 2011.

Published in Main Thread in 2011 • 3 min read


Installing node.js, npm, and redis on Mac OS X

After scouring the web for days, this post aims to provide concise, central instructions for installing node.js, npm, and redis on Mac OS X.

Published in Main Thread in 2011 • 2 min read


Tough Mudder Challenge

In two weeks I, as part of team #tigerblood, will accept the Tough Mudder Challenge - a 21 obstacle, 12 miles challenge course.

Published in Main Thread in 2011 • 2 min read


Review of PHPMyAdmin 3.4

PHPMyAdmin 3.4 came with many UI changes. After a few months of using PHPMyAdmin 3.4, I'm weighing the pros and cons.

Published in Main Thread in 2011 • 2 min read


CakePHP Auth Component loginRedirect Behavior

I came across some interesting behavior with CakePHP's Auth Component. The solution didn't align with the documentation or my understanding of the Auth Component's login redirect. This post covers the problem and my solution.

Published in Main Thread in 2011 • 2 min read


My Talk at WordCamp Louisville: Configuring WordPress for Multiple Environments

A follow up post from my talk on Configuring WordCamp for Multiple Environments at WordCamp Louisville 2011.

Published in Main Thread in 2011 • 2 min read


Install siege on Mac OS X

I've taken an interested in performance lately and heard about siege. The blog articled I found to install siege failed on the first step. So I decided to write my own in hopes it would help any non sysadmin developer that wanted to install siege on Mac OS X Lion. Although this should work with Leopard and Snow Leopard.

Published in Main Thread in 2011 • 1 min read


My Talk at WordCamp Chicago: Configuring WordPress for Multiple Environments

A follow up post about my talk on Configuring WordPress for Multiple Environments at WordCamp Chicago. It includes a link to the original blog post, slides, code samples, and a note about the proposed Unconference Talk.

Published in Main Thread in 2011 • 3 min read


Guidance Text using CakePHP’s Form Helper

A quick post on outputting the proper markup for guidance text using CakePHP's Form Helper.

Published in Main Thread in 2011 • 2 min read


WordPress Database Connection Error After Migration

Sharing my *moment* with WordPress and its dreaded "Error establishing a database connection" after updating the database.

Published in Main Thread in 2011 • 1 min read


Conditional Validation in CakePHP

I needed to perform conditional data validation in CakePHP for a project recently. This is a review of the internal options to do so and my own approach.

Published in Main Thread in 2011 • 4 min read


CakePHP not inheriting custom app_controller and app_model

My CakePHP project fell down a rabbit hole earlier after creating a custom app_controller and app_model from something that should have been a no-brainer. Hopefully this helps someone else.

Published in Main Thread in 2011 • 1 min read


A Week with Apple TV and Netflix

Some thoughts after a week with the new Apple TV and signing up for Netflix.

Published in Main Thread in 2010 • 4 min read


Facebook Places vs Foursquare

A rant on the recent competition between Facebook Places and Foursquare as it relates to intellectual property and the technical industry.

Published in Main Thread in 2010 • 1 min read


Electrosis

The process by which energy transfers between electrical devices and us.

Published in Main Thread in 2010 • 2 min read


Root Cause Analysis

A rant that revisits the most important and unfortunately most forgotten component of problem solving - root cause analysis.

Published in Main Thread in 2010 • 1 min read


PocketBracket 2.0 Update with an iPad Giveaway

For this year's 2010 NCAA Men's Basketball Tournament I updated PocketBracket with a new UI and several user requested features. To build the buzz in the ever competitive app market, I'm running an iPad Giveaway.

Published in Main Thread in 2010 • 5 min read


An Active Choice: No Flash Support for iPhone, iPad

I constantly see headlines for articles that just whine about the lack of Flash support on the iPhone OS. This is my believe as to why Flash is not supported in the iPhone OS.

Published in Main Thread in 2010 • 2 min read


Routines of a good developer

A reflection on the routines I believe make me a good developer and look for in developers around me.

Published in Main Thread in 2009 • 3 min read


iPhone App: LastPlayed

A description of my recent iPhone App - LastPlayed. Including development notes, marketing strategy, future direction, and an invitation for your feedback. Complete with a shameless plug for you to download the app for free.

Published in Main Thread in 2009 • 6 min read


My Last IE6 Hack

Today I wrote my last IE6 hack, to overcome a common CSS bug, and I say good riddance to this nearly decade old browser.

Published in Main Thread in 2009 • 2 min read


Installing a trampoline on 18′ Hobie Cat

As I didn't find a good DIY guide after a few Google searches, I wrote this post after installing a new trampoline on my 18' Hobie Cat.

Published in Main Thread in 2009 • 6 min read


iPhone App: PocketBracket – March Madness

An article about the process of creating my first iPhone Application - PocketBracket: March Madness. I revisit everything from development to marketing, and the story doesn't end there.

Published in Main Thread in 2009 • 6 min read


JavaScript Tab Solution using Prototype

A JavaScript tab solution with a nice Scriptaculous Effect that uses semantic markup, CSS, and degrades gracefully.

Published in Main Thread in 2008 • 6 min read


JavaScript Accordion using Prototype

So there are several accordion solutions out there. But after reviewing a few, I created this hybrid using lean markup, simple CSS, and the Prototype and Scriptaculous libraries which degrades better than its predecessors.

Published in Main Thread in 2008 • 3 min read


The Fallout of Babel

A rant on what diversity, particularly in the development community, costs in respect to advancement.

Published in Main Thread in 2008 • 2 min read


JavaScript Cookie Object using Prototype

A Cookie class in JavaScript, using Prototype, allowing multiple data objects to be stored in a single Cookie. Class contains methods for data management and storage.

Published in Main Thread in 2008 • 5 min read


CSS Organizer and Minifier

A specification for developing a functional CSS Organization and Minification tool that can be used to manage CSS files.

Published in Main Thread in 2008 • 2 min read


"Hello World"

If you didn't guess from the title, this is my first article. What does it contain? A look back at the development of this site, of course. I outline the pieces of this site with general development tips.

Published in Main Thread in 2008 • 7 min read


Why ColdFusion is Dead

An explanation on why I never adopted ColdFusion. Including a deeper look at several features, or lack thereof, that drive me nuts and some suggestions on how things could turn around.

Published in Main Thread in 2008 • 7 min read

Sign up for our newsletter