Though it may not always feel like it, it’s important to remember that you are special, you are wanted, you are great.

I made a thing to try to help make a sad friend feel better. Maybe it will bring a smile to your face, too.

As with many features with Cloudflare, you can enable their Logpush service with the click of a button. Logpush sends your HTTP request logs to your cloud storage provider every 5 minutes.

If you are using AWS S3 for your storage, you can then utilize Athena to analyze your logs.

When developing locally with Minikube, you may want to use locally built Docker images instead of images hosted in a registry. Why push images up to Google’s GCR or AWS ECR if you’re only testing locally? Thankfully, this is simple with only a few steps.

  • With Minikube running, eval the docker-env to configure your shell to get started.
  • Build your image.
  • In the containers specification of your deployment, use the locally built image and specify the imagePullPolicy. Setting this policy to IfNotPresent tells Kubernetes to use a local image preferentially.
  • Apply the deployment and that’s it! You have a locally built image running in Minikube on your machine.

Amazon Web Service’s S3 is an excellent place to deploy a static website. If Cloudflare is your DNS provider, however, there are a few tricks that you need to be aware of when setting up your static site.

We’re going to talk about how to get started with your static…

Do you use Jira? Do you use GitHub? Do you create versions in Jira and also releases in GitHub? Are you tired of manually tagging commits in GitHub and copying release notes from Jira?

Then GReleaser is for you!

GReleaser is a command line tool that allows you to automatically create releases in GitHub using Jira release notes and names.

To create a release in GitHub from a Jira version, it can be as simple as passing the Jira project, version and the name of your GitHub repo.

There are many more options that can be passed in, including the commit to tag, tag name, release name and more.

See the full details at

I needed to add some options to gunicorn running under supervisor the other day. I ran gunicorn from the command line with the new argurments — no problem. I added the arguments to the command in supervisor, restarted with supervisorctl — problem.

Supervisor wasn’t picking up the new arguments. I restarted again. Nothing. I tried the command arguments inline. I tried a gunicorn conf file. I tried a shell script with the commands. All nothing.

After spending an embarrassing amount of time trying to figure out what was wrong, I finally remembered! You need to reread and update the supervisor conf file after making changes. Simply restarting via supervisorctl is not enough.

So don’t forget. Reread and update after changing a supervisor configuration, otherwise it won’t get picked up.

If you’ve ever read any of Ralph Kimball’s data warehouse books or have any experience with modeling data in the Kimball style, you know that a date dimension is a key part of any star schema.

You probably found resources for creating Oracle, SQL Server or MySQL but may have had difficulty finding SQL to create a date dimension table for PostgreSQL.

Here’s a bit of code adapted from the PostgreSQL wiki that I like for creating the ever necessary date dimension in PostgreSQL.

In this tutorial, we’ll talk about getting started with LoopBack and SQL Server. We’ll create an API using an existing SQL Server table as the backend. Let’s jump right in.


  • You have Node.js installed
  • You have some version of SQL Server installed

SQL Server

You know SQL Server.

SQL Server is Microsofts…

This tutorial will cover setting up your Nodes.js LoopBack API application with a private Bitbucket repository and Jenkins CI for your continuous integration needs. This is a relatively straightforward process, but there are a few points to which you need to pay attention. Let’s jump right in.


  • You have Node.js…

I’ve been experimenting with LoopBack recently, using it to prototype an API. It really is quite amazing how quickly you can get a full-fledged API up and running with LoopBack. Just follow the getting started guide and you’ll see what I mean.

After getting a pretty decent API up and…

Nicholas Duffy

I write about Python, Go, Node.js, cloud infrastructure, and data.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store