I recently worked on a legacy Flask app that was in need of refactoring. We were unfamiliar with a lot of the codebase, and we had a monolithic server.py with over a hundred routes. Using Flask’s blueprints, we were able to break the app into logical segments and gain familiarity with the codebase.
Git is the ubiquitous version management tool, but most of us work with it only through the higher-level commands. However, under the hood, it uses just a small set of powerful commands. Today, I’m going to walk you through the process Git takes to go from untracked files to commits on master. I’ll cover some […]
Mentoring student hackathons is one of the best ways to have a direct impact on your local tech community. Hackathons are essentially invention/creation marathons that focus on building small software or hardware projects. I’ve been mentoring and attending hackathons for over two years now, and they’re consistently among the most enjoyable experiences in my life.
HHVM and Hack are some interesting innovations that Facebook has brought to the PHP ecosystem. In this post, I’m going to explore a few aspects about each of these technologies, including their features, development experience, and platform support.
I had the unfortunate experience of getting my laptop stolen last summer. Luckily, I was able to restore most of my development environment pretty easily from my backup Git repository. I wanted to share how I set up that repository and how I back up my system package list.
Regular expressions (or regex) are incredibly helpful tools to have at your disposal as a software developer, but they’re often dangerous tools. In this post, I’m going to focus on the times where you shouldn’t use regex, and then I’ll go over some strategies and features to use when you do write regular expressions. Lastly, […]
Well-named variables are one of the most useful tools for building a maintainable and predictable codebase. Poor variable names can confuse users, but good ones make code seem effortless. As Ward Cunningham put it: You know you are working on clean code when each routine turns out to be pretty much what you expected. Naming […]
I’ve been using Vim as as my primary text editor for a little over a year now, and I’d like to share some of my favorite commands that I’ve discovered during that time. I’ll focus on sharing commands over configuration, so they can be used in any Vim environment.
Writing a game-playing AI is a fun process, but checking for wins or valid moves can be one of the boring aspects of the project. More often than not, it ends up being a sizable chunk of your computation time as well.