Skip to content

Instantly share code, notes, and snippets.

@samuelleach
samuelleach / ggmap.txt
Created February 26, 2014 20:26
Geocode with ggmap/R in Tableau
SCRIPT_STR("
library('ggmap');
geo <- geocode(.arg1, output='latlon');
geo$latlon <- do.call(paste, c(geo[c('lat','lon')], sep = ','));
geo$latlon
", ATTR([FULL ADDRESS]))
@samuelleach
samuelleach / saltstack_init.sh
Created February 28, 2014 12:18
Initial set up for getting started with Saltstack
brew install saltstack
sudo mkdir -p /etc/salt /var/cache/salt /var/log/salt
sudo chown -R leach /etc/salt /var/cache/salt /var/log/salt
@samuelleach
samuelleach / conditional_filter.txt
Created February 28, 2014 15:41
Example of a conditional filter in Tableau
MAX(IFF([Category]="category1",1,0))+
MAX(IFF([Category]="category2",1,0))=2
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var width = 960,
height = 500;
var nodes = d3.range(200).map(function() { return {radius: Math.random() * 12 + 4}; }),
@samuelleach
samuelleach / yeartodate.txt
Created March 2, 2014 09:48
Tableau calculation to convert a year (YYYY) into a date
DATEPARSE("yyyy", STR(year) )
@samuelleach
samuelleach / polynomial.txt
Created March 3, 2014 06:57
Tableau calculated field using R to predict values using a polynomial fit of degree two. Data may contain zeroes which are excluded from the fit, but are predicted by the model.
SCRIPT_REAL("
xdata <- .arg1
ydata <- .arg2
indices <- which( abs(ydata) < 0.01 )
ndata <- length( ydata )
weights <- rep(1, ndata)
weights[indices] = 0
model <- lm( ydata ~ xdata + I(xdata^2), weights=weights )
@samuelleach
samuelleach / identityintheUK.txt
Created March 15, 2014 12:15
Typical identity and address verification in the UK
Thank you for your application. Having conducted electronic searches, we have been unable to confirm your identity and/or obtain verification of your residence at the specified address.
In order to proceed with your application, we would be grateful if you would provide us with one item from Group A and one item from Group B - from the list below. This will enable us to verify your identity and your current address as shown on your application.
Please note that we are unable to accept the same document for address verification and identity. If you are sending original documents, we would recommend that they are sent by recorded delivery. If certified copies are to be sent, they must be certified by someone who is not related to you.
We will of course return any original documents by recorded delivery.
Do not send us original Group A documents. Copies MUST be certified by an independent person (not a family member), who must also provide their full name, address and daytime telephone contact number. Please
RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.1e rbenv install 2.0.0-p451
@samuelleach
samuelleach / Makefile
Created November 28, 2014 13:37
Process Doogal UK postcode data into a postcode, lon, lat file
# Doogal downloads:
DOOGAL_SITE=http://www.doogal.co.uk/files/
DOOGAL_DATADIR=data_raw/doogal
all: $(DOOGAL_DATADIR)/postcodes_cut.csv
# PURPOSE: Create directory structure
setup:
mkdir -p data_raw data_intermediate data_deploy log
@samuelleach
samuelleach / awesome-geojson.txt
Created May 29, 2015 10:24
Installation script for tools at awesome-geojson https://github.com/tmcw/awesome-geojson
npm install -g geojson-pick; npm install -g geojson-random; npm install -g geojson-extent; npm install -g geojson-summary; npm install -g geojson-flatten; npm install -g geojson-rewind; npm install -g geojsonhint; npm install -g geojsonio-cli; npm install -g togeojson; npm install -g csv2geojson; npm install -g tokml; npm install -g geojson2dsv; npm install -g wellknown; npm install -g topojson; pip install geojson