Skip to content

Instantly share code, notes, and snippets.

@donaldgray
donaldgray / NewRelicReceiveObserver.cs
Created October 25, 2019 10:45
Class for handling MassTransit errors and sending faults to NewRelic.
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MassTransit;
using NewRelic.Api.Agent;
/// <summary>
/// <see cref="IReceiveObserver"/> implementation that sends faults to NewRelic.
/// </summary>
public class NewRelicReceiveObserver : IReceiveObserver
@donaldgray
donaldgray / Dockerfile-iipsrv
Created February 11, 2020 10:53
Dockerfile for building iipsrv with openjpeg
FROM ubuntu:18.04
# install required packages
RUN apt-get update && apt-get install -y \
libfcgi0ldbl libjpeg8 zlib1g-dev libstdc++6 libtool cmake wget \
libjpeg-dev libtiff-dev libpng-dev liblcms2-2 libmemcached-dev \
lighttpd memcached git autoconf
# clone openjpeg
RUN mkdir -p /opt && cd /opt && git clone https://github.com/uclouvain/openjpeg.git
@donaldgray
donaldgray / GPG Public Key
Created July 29, 2021 16:03
GPG Public Key
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGECvf0BEAC+uHIo8GCJaP5x7A7IYN5UunR1W1SbI5uIRkFPkmqZcEqgeu1J
S9PSpPhLynsrFNSQwZZVX9ksYfjSN2BMajrU5z2M5IrlSdsLGI2+s7MkGAd+l9zx
q5jwrmBpBliNr7tMl1kSySLQOHh3oCmzGQt8Mm/gMd1qK7LXG1W47U6XDzZhDzK8
Rq1VoLCA47PDnLtRXBXMJgBM4NhXB/nwT/IYyvL1R5TU5MEEUkHLAfBQthJTP+6Z
LxnvuUAd9pd/Udj6ArlIn7Gi9gPBmvaEKg40q6kuihOguRoHC1oyddGlWSRKk93I
EON5SLeYzUADmq0LT4yBPIbpa13hW2v//7H7yCVaOU9C0aaFFfrQjdKkV0Tpx+Sr
RJ3rkGsgsoziyagpbInVWYt/iMm54z/L1055v4xUZ6D5Ktx+RLXait5WdwTLHqdU
YkIiqwpxZLyDmoh63NrhcglVdVuXlN6tZ9oAcVySK/fB7cj1qmbYCS+aMQGF/Fra
@donaldgray
donaldgray / iiif_image_api.py
Created August 11, 2021 15:32
Basic class that takes iiif image 2.1 api and generates all possible URLs for tiles at various scale factors.
import math
class IIIFImageApi:
def __init__(self, json: dict):
if not dict:
return
self.Width = int(json.get("width"))
self.Height = int(json.get("height"))