Skip to content

Instantly share code, notes, and snippets.

View stephenc's full-sized avatar
🍵
Enjoying a nice cup of tea

Stephen Connolly stephenc

🍵
Enjoying a nice cup of tea
View GitHub Profile
@stephenc
stephenc / Makefile
Created October 9, 2018 10:44
How to have a makefile only rebuild a docker image when needed
DOCKER_TAG = ...
.PHONY: build-image touch.build-image
build-image: touch.build-image .build-image
touch.build-image:
$(eval timestamp=$(shell docker inspect -f '{{ range $$i, $$e := split .Metadata.LastTagTime "T" }}{{if eq $$i 0}}{{range $$j, $$v := split $$e "-"}}{{$$v}}{{end}}{{else}}{{$$f := printf "%.8s" $$e}}{{range $$j, $$g := split $$f ":"}}{{if lt $$j 2}}{{$$g}}{{else}}.{{$$g}}{{end}}{{end}}{{end}}{{end}}' $(DOCKER_TAG) 2>/dev/null ))
@if [ "A$(timestamp)A" = "AA" ] ; then rm -f .build-image ; else touch -t $(timestamp) .build-image ; fi
.build-image: Dockerfile rootfs/*
@stephenc
stephenc / gist:3053561
Created July 5, 2012 13:05
Continuous Deployment with Jenkins and Puppet

Puppet with Jenkins

Setup Jenkins

With Puppet:

puppet module install rtyler-jenkins

puppet apply -v -e "include jenkins"

@stephenc
stephenc / README.adoc
Created January 18, 2021 20:52
Estimating the PCR test results during the backlog in Ireland

Instructions

To get the data run the following script:

curl -O https://covid.ourworldindata.org/data/owid-covid-data

To set up R you need to install the following packages:

@stephenc
stephenc / JSONStringMap.java
Last active November 20, 2020 14:18
Very basic Java methods to encode/decode Map<String,String> as JSON
public static String write(Map<String, String> map) {
StringBuilder b = new StringBuilder();
b.append('{');
boolean first = true;
for (Map.Entry<String, String> e : map.entrySet()) {
if (first) {
first = false;
} else {
b.append(',');
}
@stephenc
stephenc / basic.r
Created November 15, 2020 21:28
A simple analysis of SARS-CoV-2 cases in Ireland with respect to Lockdown 2
library(ggplot2)
library(dplyr)
library(lubridate)
library(ggthemes)
owid <- dplyr::mutate(read.csv('owid-covid-data.csv'), Date=as.Date(date))
png("basic.png",width=1024,height=512)
ggplot(data=(owid %>% filter(iso_code=='IRL')),aes(x=Date,y=new_cases))+
geom_point()+
geom_smooth(data=(owid %>% filter(iso_code=='IRL') %>% filter(Date >= as.Date('2020-10-15'))),method=lm,color="red",fill="#69b3a2", se=TRUE)+
@stephenc
stephenc / analysis.r
Created August 15, 2020 22:04
Correllation vs Causation
library(tidyverse)
library(grid)
library(zoo)
all = read.csv("owid-covid-data.csv", header = TRUE)
irl <- all %>%
filter(iso_code == "IRL") %>%
mutate(date=as.Date(date, format="%Y-%m-%d")) %>%
mutate(cma_cases = rollmean(new_cases, k=5, fill = NA)) %>%
mutate(cma_deaths = rollmean(new_deaths, k=5, fill = NA))
@stephenc
stephenc / covid-plot.r
Last active August 15, 2020 10:33
Plots new cases and new deaths on same graph
library(tidyverse)
library(grid)
all = read.csv("owid-covid-data.csv", header = TRUE)
irl <- all %>%
filter(iso_code == "IRL") %>%
select(date,new_cases,new_deaths) %>%
mutate(date=as.Date(date, format="%Y-%m-%d"))
p1 <- ggplot(irl, aes(x=date,y=new_cases)) +
scale_x_date() +
@stephenc
stephenc / pom.xml
Created August 11, 2020 10:17
How to allow testing with a different version from the command line
<project>
...
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.example.foo</groupId>
<artifactId>bar</artifactId>
<version>1.2.3</version>
</dependency>
@stephenc
stephenc / DatadogStatus.puml
Created February 28, 2020 14:22
A PlantUML sprite for a status badge
sprite $DatadogStatus [200x20/16] {
56666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAA9A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666666666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66666666631666666666666666666666666666666666666666666666666666666666666666666AAAAAAAAAAAAAAAAAAAAAAAAA000000000000000000000000000000000000000000000000000000000000000000000000
package myflink;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.common.functions.RuntimeContext;