Blog Post

Convert an Excel Workbook to Clojure Code

An approach to "restating" an Excel workbook as executable Clojure code in order to verify its calculations; test those calculations against known inputs; compare it with previous versions; and potentially provide a path to retiring the Workbook as *executable content*, reducing the operational risk of exclusively positioning Excel at the core of important business processes.

Asynchronous communication streams between a Pedestal server and a ReFrame SPA

For long-running server processes possibly initiated by an AJAX call from an SPA client, it's often desirable to be able to receive (and display) status update messages (issued by the server during processing) in your front-end application's UI. In this piece I will discuss the two options of using **websockets** and **SSE** (server sent events), and, with code, show how to implement them using Clojure and ClojureScript.

Add a Custom Authentication Backend to a Clojure Pedestal Application using Buddy

I discuss the available backends available in the buddy-auth library and how they are implemented. I will then show, for circumstances where the provided back-ends don't meet our needs how we can implement our own.

Pedestal, Buddy and Security

In this piece I will cover briefly how the Pedestal web-server operates, particularly the interceptor model and error handling; how to integrate a Pedestal web application with the buddy-auth library; and I will demonstrate with code how to secure access to Pedestal endpoints using the buddy-auth library.

Deploy a Clojure Web Application to Kubernetes (GKE)

I will show you how to deploy a packaged application comprising a Clojure Pedestal API server and a ClojureScript (reagent/reframe) front-end React application to a Kubernetes Cluster running on GKE (Google), and how to make it available externally at a specific URL.

Deploy a Clojure Pedestal API Server & React/ClojureScript Web Application to Docker

I will demonstrate how to compile and package a completely operational, but minimal, application comprising a secure Clojure Pedestal API server and a ClojureScript (reagent/reframe) front-end React application; and finally deploy that application to a docker container running as a Docker swarm service with its configuration provided by Docker's secrets functionality.

Clojure Configurations with Docker Secrets

A piece that discusses options for passing configuration information to Clojure applications. It covers alternatives ranging from simple command line parameters to the use of Docker secrets.

Pedestal API, ClojureScript SPA and Google Authentication

A longer discussion of my publicly available GitHub repository containing a secured Pedestal API server and ClojureScript/React SPA that can use Google login to authenticate a user. I show how to set up HTTPS, integrate with Google and secure API endpoints in the context of a simple React application.

Cadence Workflow and Clojure

How to use Clojure with the Cadence Workflow orchestration system. Some background on Cadence, and links to a working code repository with implementation notes.

Setting-up Pedestal/Jetty with HTTPS

Introduction Setting up Pedestal (using Jetty) with HTTPS isn’t that difficult, but it is a bit “fiddly”. Essentially, you’ll need a keystore so that Jetty has access to encryption keys and can encrypt pages sent over HTTPS.