Blog Posts



Things Ian Says


Here are all the articles available on this blog.

Using Go in the Browser via Web Assembly

Breadth First Graph Traversal in Clojure (Kiwiland Example)

Building a Graph in Clojure, for the Kiwiland Railway

Enabling https with Nginx, Docker, and LetsEncrypt

Using AWS Cognito to Secure an ExpressJS API

JWT Parsing with Javascript

Introduction to Json Web Tokens

AWS Cognito User Pool

Automated Tweets with AWS Lambda and DynamoDB

A Clojurescript API Server in Docker using ExpressJS

A CD Pipeline in Amazon Web Services

Building a Stopwatch using only HTML and CSS

Secure hosting using SSL and AWS CloudFront

Using Traefik Proxy with Docker Compose and LetsEncrypt

Reducing Docker Image Size

Letter to my Younger Self

Dear Ian,

You are sitting there uncertain about your future direction, trying to decide what your next step should be. You have doubts about what you should be doing and whether you are able to do it. Just remember that there is no single path to follow, you will have a variety of different jobs through your career and things will usually work out okay.

To help you as you go, here is some advice I (and therefore you) have picked up along the way …

Cross Framework Messaging

With the proliferation of Javascript frameworks, I found myself in the situation where I needed two different UI elements — built with two different Javascript frameworks — to communicate with each other.

Rather than choosing to migrate one onto a different framework, I looked at a way of allowing them to send messages to each other using the Mediator Design Pattern.

Using this pattern, I have an example of an Angular app, a React app, and a plain Javascript app communicating.

Very Light Javascript

I recently needed to put together a quick proof of concept for a small project and decided to use this as an opportunity to try out a lighter than light approach to Javascript I’d been thinking of for a while.

Whilst frameworks like Bootstrap are already quite light, I wanted to see if I could remove even more. With all the Angular 2 kerfuffle, I wanted to look for another framework which I can use instead. I also wanted to drop gulp and just try using npm instead.


Functional Example

Curried Javascript

Functional Javascript

Promises in Javascript

A learning stub server in 40 lines of code

PhantomJS for client side testing

Creating vagrant boxes with veewee and packer

Tomcat Session Replication with BackupManager

A Quick Look at New Relic APM

Parallel Deployment with Tomcat 7