Categorically Variable

Only search Categorically Variable.

Removing Redundant Hostnames with NGINX

While poring over my Google Analytics data I noticed the notification below.

Obviously this is not a train smash, but it is compromising the quality of my data. And it also offends my OCD. This is what I did to fix the problem.

 Read more

Hosting a Plumber API on AWS

I’ve been putting together a small proof-of-concept API using R and plumber. It works flawlessly on my local machine and I was planning on deploying it on an EC2 instance to demo it for a client. However, I ran into a snag: despite opening the required port in my Security Group I was not able to access the API. This is what I needed to do to get it working.

 Read more

Installing Docker on Ubuntu

This procedure works on both my laptop and a fresh EC2 instance.

 Read more

Creating a S3 Bucket

There are many good reasons to use S3 (Simple Storage Service) storage. This is a quick overview of how to create a S3 bucket.

 Read more

Web Scraping Workshop at PyCon 2017 (Cape Town)

In a little under a month PyCon 2017 will be happening in Cape Town. I’m really looking forward to the conference and rather excited about giving a workshop on Web Scraping in Python. This is the abstract for the workshop.

 Read more

Creating an AWS Spot Instance

EC2 Spot Instances can provide very affordable computing on EC2 by allowing access to unused capacity at significant discounts.

 Read more

Building a Local OSRM Instance

The Open Source Routing Machine (OSRM) is a library for calculating routes, distances and travel times between spatial locations. It can be accessed via either an HTTP or C++ API. Since it’s open source you can also install locally, download appropriate map data and start making efficient travel calculations.

These are the instructions for getting OSRM installed on a Ubuntu machine and hooking up the osrm R package.

 Read more

Global Variables in R Packages

I know that global variables are from the Devil, but sometimes you just can’t get around them.

I’m building a small package for a client that relies on a data file. For various reasons that file is not part of the package and can reside in different locations on users’ machines. Furthermore there are users on both Windows and Linux machines.

 Read more

Driving AWS from the Command Line

Although it’s very handy (and easy) to set up some cloud resources using the AWS Management Console, once you know what you need it makes a lot of sense to automate the process. Fortunately there’s a handy little command line tools, aws, which makes this eminently possible. The AWS CLI Command Reference is the definitive resource for this tool. There’s a mind boggling array of possibilities. We’ll take a look at a small selection of them.

 Read more

Route Asymmetry in Google Maps

I have been retrieving some route information using Rodrigo Azuero’s gmapsdistance package and noted that there was some asymmetry in the results: the time and distance for the trip from A to B was not necessarily always the same as the time and distance for the trip from B to A. Although in retrospect this seems self-evident, it merited further investigation.

 Read more

Retrieving Kaggle Data from the Command Line

We’ve been building some models for Kaggle competitions using an EC2 instance for compute. I initially downloaded the data locally and then pushed it onto EC2 using SCP. But there had to be a more efficient way to do this, especially given the blazing fast bandwidth available on AWS.

Enter kaggle-cli.

 Read more

Setting Up Time Zones in MySQL

I’m in the process of setting up a Zinnia blog on one of my Django sites. After putting all of the necessary plumbing in place I got the following message on first visiting the blog URL:

Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your database and pytz installed?

The solution to this is to copy your system’s time zone information across to the database.

 Read more

Setting Up Time Zones in BASH

Ensuring that your account is configured to run with appropriate time zone information can make your life a lot easier.

Of course, if you administer your own system then you can simply set your system time to local time. However, it’s generally a better idea to set system time to Universal Time (UTC) and then configure time zone information on a per-user basis.

Why does this make sense? Well, suppose that you have remote users logging onto your system. It’s very likely that a remote user will be operating in a different time zone and it’d be handy for them to have system time converted into their local time.

 Read more

Adding a Volume to an Ubuntu EC2 Instance

Some quick notes on adding a storage volume to an EC2 instance.

 Read more

Remote Desktop on an Ubuntu EC2 Instance

A couple of options for remote access to desktop applications on a EC2 host.

 Read more

A (Work in Progress) Timeline for R

A record of some more or less important events in the history of R.

This is a work in progress. The information is cobbled together from a range of sources. If you have pertinent items to add, please let me know via the comments.

  • 2020:
    • useR! (Boston, MA, USA)
  • 2019:
    • useR! (Toulouse, France)
  • 2018:
  • 2017:
    • R-3.4.1 “Single Candle” (2017-06-30)
    • R-3.4.0 “You Stupid Darkness” (2017-04-21)
    • R-3.3.3 “Another Canoe” (2017-03-06)
    • RStudio-1.0.153 (2017-07-20)
    • RStudio-1.0.143 (2017-04-19)
    • useR! (Brussels, Belgium)
    • satRday (Cape Town, South Africa)
    • EARL (London; Boston, MA, USA; San Francisco, CA, USA)
    • R/Finance (Chicago, IL, USA)
    • rstudio::conf (Kissmmee, FL, USA)
    • The R Journal (9/1)
  • 2016:
    • R-3.3.2 “Sincere Pumpkin Patch” (2016-10-31)
    • R-3.3.1 “Bug in Your Hair” (2016-06-21)
    • R-3.3.0 “Supposedly Educational” (2016-05-03)
    • R-3.2.5 “Very, Very Secure Dishes” (2016-04-14)
    • R-3.2.4 “Very Secure Dishes” (2016-03-10)
    • RStudio-1.0.136 (2016-12-21)
    • useR! (Stanford, CA, USA)
    • satRday (Budapest, Hungary)
    • EARL (London; Boston, MA, USA)
    • R/Finance (Chicago, IL, USA)
    • The R Journal (8/1 and 8/2)
 Read more

Adding Users to an EC2 Ubuntu Instance

By default an EC2 instance has only a single user other than root. For example, on a Ubuntu instance, that user is ubuntu. If there will be multiple people accessing the instance then it’s generally necessary for each of them to have their own account. Setting this up is pretty simple, it just requires sorting out some authentication details.

 Read more

Favourite Talks from useR 2017

 Read more

Docker: Persisting User Data

I’m busy putting together a Docker image for a multi-user Jupyter Notebook installation. I am to have an independent login for each of the users and each of them should also have their own storage space. That space should exist elsewhere from on the container though, so that even if the container stops, the data lives on. This should mitigate user rage.

 Read more

Deploying Jupyer on AWS using Docker

Amazon’s EC2 Container Services (ECS) is an orchestrated system for deploying Docker containers on AWS. This post is about not using ECS.

 Read more

Categorically Variable