I'm a software engineer living in Louisville, Kentucky.
I make HTML5 video games at Two Scoop Games,
volunteer at Louisville Makes Games,
and help organize the local tech scene at Louisville.io.
I ran into a head-scratching problem with a pure React component where it was
re-rendering when it shouldn't. The component wrapped up a 3rd party script
which put a button on my site. The problem was that when the button was clicked,
some of my state changed so I could show a loading spinner. That state change
made my component re-render, which broke the 3rd party script by re-initializing
In today's modern web development, much of a programmer's productivity comes from code that they did not write themselves. Much of that code is hosted on GitHub, and less and less of it has any amount of documentation. The most prominent form of documentation is now the README.md file in the project's root.
A few months back I was volunteering at Code Louisville and helping George log into a forum. He had signed up a few days ago, but never logged in. When he tried to log in, the forum gave an invalid username or password error. George had unknowingly created a Schrödinger-ed user account.
I'm interested in the quantified self and I wanted to log data about my car and how I drive. I'm also concerned about privacy, and wanted to keep my data private and not rely on a company or service. Since I already had a Android smartphone, I was able to put together a fully automated system for only about $35!
One of my favorite parts of Git is how it lets you fix your mistakes. One mistake I needed to fix a few times in the last year was having two separate repositories, when they ought to be a single respository. I will present commands to merge a child repository into a parent respository as a subdirectory. The new child repository subdirectory will preserve its history and look like it was always part of the parent repository.
Building a real social network is easier and more rewarding than building the next Facebook or Twitter. Even shy, introverted programmers (such as myself) can build a powerful network in just a few months.
The relationships you build will keep you excited, up-to-date, and alter the trajectory of your career. You can't afford to stay home.
While I was out to dinner last night I decided to pick up a movie on the way home. I opened up my RedBox Android app, and tried to make a reservation. The experience was more frustrating than it needed to be, so I wanted to document the problems with the app's UI in the hopes that they are fixed, and so others do not make the same mistakes.
I've spent a lot of time last year learning my tools better, and I've built up a list of plug-ins for Visual Studio that help me work smarter and faster. All of the plug-ins below work on both Visual Studio 2010 and 2012.
One of the coolest parts of Git is that once you learn it, you will never need to use another VCS. My company uses Perforce for version control, and it can be painful. So when I got to work on a new greenfield project, I stuck everything in Git. That worked great for a few weeks until I needed to begin collaborating with other developers who would only use Perforce. Fortunately, Git has a Python script that lets you interact with Perforce servers using a special "git p4" command set. The tricky part is getting it all set up on Windows where Git and Python are out of their normal Unix environment.
Back in November I was able to attend the Software Craftsmanship North America conference in Chicago. I signed up for the post-conference Code Retreat, which sounded like a fun day of writing code with my peers. During the conference I met many awesome people, including Mike Clement. Mike told me about the upcoming Global Day of Code Retreat on December 8th. Mike said he was going to run a session in Utah, and persuaded me to run one in Louisville.