Things Ian Says
Articles
Here are all the items relating to Articles (page 2 of 4)
Introduction to Json Web Tokens
Monday, 4 June 2018
In my previous article, I showed how to create a login page using AWS Cognito. At the end of that article, we landed on our desired web page, but with an access token appended to the URL. This article follows on from that stage, looking at the structure of the URL, and the Json Web Token (JWT) contained within it.
AWS Cognito User Pool
Tuesday, 22 May 2018
AWS Cognito offers the ability to manage a set of users in its user pool capability. I was looking for a way of controlling access to a web site, and Cognito seemed an ideal way of achieving this. This articles shows how to set up a user pool, how to add users to it, and how to display a login screen for your users.
Automated Tweets with AWS Lambda and DynamoDB
Wednesday, 15 November 2017
Another article about Amazon Web Services (AWS), this time creating a Lambda (or Serverless or Function as a Service) which tweets about this very blog at regular intervals, using DynamoDB as its data store. I also use AWS Simple Notification Service (SNS) to trigger an e-mail to let me know the tweet has happened.
As an added bonus, there is also a refresher on functional programming in Javascript, and Javascript promises.
A Clojurescript API Server in Docker using ExpressJS
Wednesday, 11 October 2017
I have been writing code in Clojure for some time, most recently running it in Docker containers on Kubernetes. This approach has been primarily for ease of testing and deployment, rather than for scaling. However, now I am looking at applications where I want to start scaling out dynamically, and I started to get a bit concerned about the startup time of my containers — the JVM that Clojure runs on, can take a bit of time to get out of bed. Since ClojureScript allows us to compile Clojure into Javascript, I took a look at running ClojureScript in NodeJS.
A CD Pipeline in Amazon Web Services
Friday, 1 September 2017
In a previous article, I described serving a website from an S3 bucket, with CloudFront allowing us to apply SSL. This article looks at the other side of the process — how we populate the S3 bucket in the first place. I would typically use Jenkins to set up a build and deploy pipeline for this, but here I look at using the build tools AWS provides.
Building a Stopwatch using only HTML and CSS
Tuesday, 22 August 2017
In a change of focus from recent articles, this blog post is about HTML and CSS. I was in a workshop recently where we were using a web-based timer to countdown the time left during breakout activities. During a lull in activities, I started thinking about how much of this could be built only with HTML and CSS — no Javascript and no frameworks. This blog post answers that question and illustrates many CSS features along the way.
Secure hosting using SSL and AWS CloudFront
Tuesday, 15 August 2017
In a previous article, I looked at how we can use Let’s Encrypt to automatically create and manage SSL certificates for us. This article follows on in a similar vein, and shows how Amazon Web Services (AWS) also let us create free SSL certificates. This is an example with a static site hosted in an AWS S3 bucket, but can also be applied to any AWS website hosting mechanism (e.g. EC2 instances).
[SUPERCEDED] Using Traefik Proxy with Docker Compose and LetsEncrypt (version 1.3)
Wednesday, 2 August 2017
This blog entry is deprecated, since it refers to an older version of traefik (version 1.3). Please see the newer version of this article for up to date details (using version 1.7 of traefik).
Traefik Proxy is a fairly recent entry into the reverse proxy space, alongside more established applications such as nginx and Apache httpd. The thing which differentiates traefik is that it was created in a post-Docker world and integrates with Docker to reduce the manual configuration needed.
This article looks at how we can use traefik as a reverse proxy across a docker-compose managed suite of containers and then use let’s encrypt to add SSL certificates for https access.
Reducing Docker Image Size
Thursday, 22 June 2017
There is more attention being paid these days to the size of Docker images, with a desire among many developers to reduce the size as much as possible.
Why is this important? It comes down to the usual points of download and storage needed. A simple example is when your website is experiencing an unusually high demand and you want to spin up some more hosts to handle it. For each new host, you need to download your Docker image to it. If your image is 200MB, it takes 10 times as long to download it as is your image is 20MB.
So, how do we make smaller Docker images? Here are some techniques.
Letter to my Younger Self
Friday, 9 June 2017
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 …