Blog / Software Development

Using SSH Agent Forwarding with Ansible

December 24, 2017

I've been using SSH agent forwarding with Ansible for the last few projects I've been working on and I thought I'd just share my setup here.

The neat thing with SSH agent forwarding is not having to store your SSH keys on your servers when pulling down your Git repo during deployment.

For example, I can deploy new code to my servers through Ansible from my local machine using my local SSH keys. The servers …

How to add full-text search to your Django app (with a PostgreSQL backend)

September 25, 2017

In Django 1.10, the django.contrib.postgres.search module was added to make it really easy to use PostgreSQL's full text search engine with a Django app.

I currently use it for this blog, Remote Python's job and developer search, and our knowledge base for Highview Apps. I'm really impressed with how good the search is and how little code is needed to get it working. Unless you have huge amounts of data/traffic and need really …

Retry decorator for Python 3

September 1, 2017

When your app relies on making API calls to external resources, you should expect that there will be network issues from time to time and you should prepare for them.

While these will be rare relative to the number of requests you're making, handling them early on could really save you a lot of headache in the future as your app usage grows. Many of these things can be easily handled with a simple retry …

Re-designing HighviewApps.com

May 21, 2017

I just finished re-doing our main site for Highview Apps, a software company I started with a friend of mine that makes Shopify apps. We've been thinking of re-doing the site for some time now and I was finally able to allocate a couple of days to work on it.

Initially, we just wanted to have a company site up and running quickly so we just picked a very simple one-page, free Bootstrap 3 …

Generating a signed URL for an Amazon S3 file using boto

April 9, 2017

I was refactoring some code for EZ Exporter, a data exporter app for Shopify, last week as our customer base has been growing pretty steadily these last few months. I figured it's time to do some optimization to make sure the app is ready for future growth.

One of the functionalities that we needed to optimize is how we handle manual downloads. Initially, I just made it very simple by returning the data as …