Writings

My writing includes book reviews, news about my projects and other random musings. You can subscribe with your favorite feed reader.


Pipfile and pipenv

Python has many methods to manage software package dependencies. The Python Packaging Authority proposed a new standard format called a Pipfile. This post includes the Python Frederick video presentation about Pipfiles that I presented in August 2017.

Read more…


HTTPS made simple with Netlify

Serving webpages securely with HTTPS offers numerous benefits. This post explores those benefits and shows how to set up HTTPS in no time using Netlify.

Read more…


No nitpicking in code reviews

Code reviews improve the quality of software. But a code review can be done badly. In this post, we'll look at some tools to make your code reviews as effective as possible.

Read more…


Using Pipfile for fun and profit

Python has many methods to manage software package dependencies. The Python Packaging Authority proposed a new standard format called a Pipfile. Let's explore the reasons and benefits of a Pipfile and walk through converting a project to use one.

Read more…


Feature flags and waffles

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.

Read more…


Pythonic code: leveraging packages

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.

Read more…


Aphantasia

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.

Read more…


Pythonic code: using the standard library

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.

Read more…


Pythonic code: built-in functions

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.

Read more…


Pythonic code: the property decorator

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.

Read more…


Pythonic code: the with statement

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.

Read more…


Pythonic code: the list comprehension

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.

Read more…


Semantic UI in Ember

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.

Read more…


The Pragmatic Programmer revisited

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.

Read more…


12-factor Django apps

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.

Read more…


Open Graph, Twitter cards, and plugins… Oh My!

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.

Read more…


Cure for Imposter Syndrome

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.

Read more…


PostgreSQL text search in Django

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.

Read more…


Rollbar monitoring of Celery in a Django app

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.

Read more…


A currentUser service for Ember with JWT

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!

Read more…


The necessity of software abstraction

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.

Read more…


2 Critical Python packaging tools

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.

Read more…


Sideload JSON API resources in Django

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.

Read more…


Monitor Ember app errors with Rollbar

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.

Read more…


handroll, sitemaps, and robots.txt

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.

Read more…


Using Segment with Ember.js

Ember CLI makes using Segment a snap. Learn about the core features of ember-cli-segment.

Read more…


Using Brunch for JavaScript work

Brunch is an excellent tool for producing JavaScript. It requires little learning to become productive and feels right. This post will introduce you to Brunch and equip you to get started.

Read more…


Reading through the Python standard library

What I learned about the Python standard library and how you can apply those learnings to your own study.

Read more…


Ship your requirements.txt

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.

Read more…


We're all ambidextrous

Our brains are amazingly flexible. My trip to the dentist taught me a lesson about human behavior and abilities.

Read more…


dotfiles: Hone your software tools

Carpenters, painters, illustrators, and many other craftspeople collect tools over the years as their experience and skills grow. These tools help produce better work. Similarly, developers can create their own personal toolbox to perfect their craft. In this post, you can learn ways to manage your toolbox.

Read more…


Highlighting new file formats with Pygments

How do text editors and other tools make code look pleasant with colors? We'll explore ways to colorize code by looking at Pygments, a "syntax highlighter," and how the tool does its job.

Read more…


Extending handroll for fun

Show how to create an entire handroll extension from scratch

Read more…


Oh, my shell? Oh My Zsh

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.

Read more…


Inject JavaScript with PhantomJS to inspect websites

What if you could interact with the JavaScript of another website by adding your code to the page? PhantomJS, a "headless" web browser, has the ability to do exactly that. In this post, you will learn how to extract data from the web via PhantomJS scripts.

Read more…


Connect Python objects to blinker signals

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.

Read more…


Toying with Statsd and Graphite

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.

Read more…


A complete guide to i18n in Python

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.

Read more…


A "simple" D3.js area chart

A step-by-step walkthrough of a D3.js area chart. This post covers each piece needed to create an area chart from a list of JavaScript data.

Read more…


Laziness is motivating

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.

Read more…


handroll 1.1 released

A release announcement for handroll 1.1

Read more…


handroll: a simple website generator

Introduction of handroll website generator tool

Read more…


tappity tap TAP tappy

Introduction of TAP tools for Python

Read more…


Advanced Rails

A book review of 'Advanced Rails'

Read more…


Patterns of Enterprise Application Architecture

A review of "Patterns of Enterprise Application Architecture"

Read more…


Test your packaging

Using Travis CI and Tox to test Python packaging

Read more…


MarkWiki 1.3 released

MarkWiki 1.3 release announcement

Read more…


Ruby on Rails Tutorial

A review of "Ruby on Rails Tutorial"

Read more…


Dreaming in code

A review of "Dreaming in Code"

Read more…


MarkWiki 1.2 released… now actually somewhat useful

MarkWiki 1.2 release announcement

Read more…


Java: a bad choice for FOSS

A description of the pain encountered with contributing to Java FOSS

Read more…


ØMQ: A dynamic book with surprises

A review of "ZeroMQ"

Read more…


Office Zen

A review of "Peopleware"

Read more…


When you're feeling all TAPped out

An explanation of the Test Anything Protocol (TAP)

Read more…


A Layman's walk through Code

A review of "Code: The Hidden Language of Computer Hardware and Software"

Read more…


Should you cp from copywriters?

A review of "The Copywriter's Handbook"

Read more…


It's fun -> ok!

A review of "learn you some Erlang for great good!"

Read more…