My writing includes book reviews, news about my projects and other random musings. You can subscribe with your favorite feed reader.
Modern software development has a strong focus on continuously delivering new code, and many businesses do not have the luxury to ship code on an infrequent schedule. How can an engineering team manage this speed of development and produce a quality product? One invaluable tool to achieve this goal is feature flags. Learn more about what feature flags are and how they work.
In this series of posts, I'm going to examine common design patterns in Python that make Python code feel "Pythonic." The sixth and final post explores the Python Package Index, and the benefit of using software libraries that are written by others to make your code more expressive.
Recently, I learned that how I perceive the world is different from how the majority of people perceive it. My mind does not have the ability to visualize memories. After some study, I found that this is known as aphantasia.
In this series of posts, I'm going to examine common design patterns in Python that make Python code feel "Pythonic." The fifth post peeks at Python's standard library and how the "batteries included" mindset can make developers super productive with no setup.
In this series of posts, I'm going to examine common design patterns in Python that make Python code feel "Pythonic." This fourth post turns our attention to the built-in functions and the power of knowing what is immediately at your fingertips.
In this series of posts, I'm going to examine common design patterns in Python that make Python code feel "Pythonic." The third post in the series focuses on the property decorator as a way to clean up your classes.
In this series of posts, I'm going to examine common design patterns in Python that make Python code feel "Pythonic." This second post covers Python's with statement, a syntax to elegantly handle code that requires set up and tear down.
In this series of posts, I'm going to examine common design patterns in Python that make Python code feel "Pythonic." This first post will cover list comprehensions, a powerful way to build a Python list data structure.
Semantic UI is a popular styling framework for websites. I integrated Semantic UI in my Ember app and had an interesting experience with the process. I explain a bit of what I learned from that experience.
The Pragmatic Programmer is one of the most influential books in my professional career. With more than seven new years of experience since my first reading, I re-read the book to compare it to my journey as a software professional.
Twelve-factor applications are a pattern that can be applied to web applications for making deployment easier. Learn what a twelve-factor app is and some things to consider when applying the pattern to Django applications.
Social media is a huge part of how people share news with each other on the internet. This post looks into how to make your content appear richer on sites like Facebook and Twitter.
Imposter Syndrome is a popular subject in the software world. I believe there is a "cure" for this lack of self-confidence. We require a dose of Humility.
In order to add search functionality on a budget for College Conductor, I incorporated the text searching capabilities of the PostgreSQL module available to Django 1.10. This post covers features and limitations of PostgreSQL search.
Rollbar provides some excellent middleware that makes setup a snap for a Django application. But what if you're running Celery with your Django application too? There are a few bumps in the road that I'll explain how to resolve.
As a user of Ember Simple Auth and Ember Simple Auth Token, I needed to show an authenticated user for College Conductor. By making a currentUser service, my application could access the user. Since College Conductor uses JWT, making the service required some extra thought. Check out how it works!
Software abstraction is vital to managing a large application. My aim is this post is to combat the belief that a developer must understand all the details of the abstractions that they work with.
Python packaging is a challenging process. Many tools can help you make a package, but I'll describe the tools that I think are the most important.
If you use Django REST Framework and the DRF JSON API extension, you may want to learn how to sideload extra resources to save on network requests of commonly paired models. We will explore the extra settings required to make that happen.
Using Rollbar in your Ember application can give you eyes on the same errors that your users encounter. Learn how you can add Rollbar into your application.
Make a sitemap that Google can find using new features available in handroll 3.1. In a few steps, you can improve the visiblity of your website to search engine crawlers.
Ember CLI makes using Segment a snap. Learn about the core features of ember-cli-segment.
What I learned about the Python standard library and how you can apply those learnings to your own study.
Tell the world the versions of your dependencies when you release. Software is constantly moving so documenting your dependency versions can help future users know what worked.
Our brains are amazingly flexible. My trip to the dentist taught me a lesson about human behavior and abilities.
Why I am refining my development tools and why you should too
Creating syntax highlighting for a new filetype using Pygments
Show how to create an entire handroll extension from scratch
If you spend a lot of time on a Linux or Mac terminal, you may be familiar with bash, the shell program that your terminal uses by default. In this post, we will look at Zsh, an alternative shell, and some of the amazing benefits that it can offer over bash.
Do you need a way to trigger some Python code to run when a certain event happens? Blinker is a Python package that makes this kind of feature possible with something called signals. Learn how to connect Python objects to blinker signals.
In this post, I describe my experience with setting up Statsd and Graphite. Statsd and Graphite work together to make custom monitoring of your web services a snap to get going.
The world speaks far more than English. To broaden the reach of an application, developers should internationalize the text to other languages to reach a bigger audience. This is a complete detailed guide to explain how to internationalize Python code.
Laziness is a motivator for making good tools. By optimizing in ways that allow developers to be lazy, you can make tools that are more desirable to use.
A release announcement for handroll 1.1
Introduction of handroll website generator tool
Introduction of TAP tools for Python
A book review of 'Advanced Rails'
A review of "Patterns of Enterprise Application Architecture"
Using Travis CI and Tox to test Python packaging
MarkWiki 1.3 release announcement
A review of "Ruby on Rails Tutorial"
A review of "Dreaming in Code"
MarkWiki 1.2 release announcement
A description of the pain encountered with contributing to Java FOSS
A review of "ZeroMQ"
A review of "Peopleware"
An explanation of the Test Anything Protocol (TAP)
A review of "Code: The Hidden Language of Computer Hardware and Software"
A review of "The Copywriter's Handbook"
A review of "learn you some Erlang for great good!"