white graphing paper with red and blue lines

Create Custom CloudWatch Metrics with Serverless

In a previous post, I wrote about how to Create CloudWatch Dashboards with CDK. In this followup post, I describe how to create a custom CloudWatch Metric with Serverless and then display it in the dashboard. You can view built-in metrics in the AWS Console under CloudWatch->Metrics and we've already used some when creating our dashboard, but sometimes you need…
Airplane with dashboard and clouds in the sky.

Create CloudWatch Dashboards with CDK

If you are familiar with AWS and CloudWatch, you may have created a dashboard through the AWS console. This can be done fairly easily, with some nice results, but you may have also found that you have to continue to maintain those dashboards as your code changes. If you would like tie a specific dashboard to a version of code,…
Man using binoculars between books

Capturing Impressions

What is an impression? This is a term that is used typically when talking about advertising and the idea is that we want to know if something has been viewed. We can't know for sure that something was actually viewed, but we can make an educated guess. So the criteria we will use is that 50% of the pixels of…
Open Book

React Refs and How They Work

The React framework conveniently abstracts away a lot of the manual DOM manipulation, so you normally don't need access to the raw DOM elements. But every so often you do. Maybe you need to find the position of a DOM element for instance. For this purpose, React has added a feature to reference DOM elements aptly named Refs. So to…
Message in a bottle

SAML in Progress OpenEdge

SAML is a standard that deals with authorization between identity providers (IdP) and service providers (SP). One of its primary uses is for single sign-on (SSO). OpenEdge has some SAML support built-in, but it doesn't seem to quite handle the scenario I need it to, so why not make our own SAML messages? How hard could it be?! Turns out…
Mirror Cube

XML in Progres OpenEdge

I recently had the need to work with some XML in Progress OpenEdge and found it to be a bit tricky, so I've compiled some of my discoveries here. First off, what is XML anyway? It stands for Extensible Markup Language and it's purpose is for storing and transmitting structured information. It's used quite a lot including file formats and…
Book Shelf

Collections in Progress OpenEdge

Collections are a bit of a sticky subject in Progress. The reason for this is that Progress doesn't currently support Generics. Why does that matter? Generics make it so that you can handle types in a generic way. Without that language feature, you can't easily have typed collections, but not all is lost. Let's take a look at the options…
Stack of Rocks by the Ocean

RTF Writer in Progress OpenEdge

Today we are going to look at creating an RTF writer in OpenEdge. But first, what is an RTF and why would we want to make a writer for it? RTF is a proprietary file format for rich text created by Microsoft in 1987. It is still a standard but is not likely to receive any updates to the specification.…
Seattle Skyline

Phaser and Webpack and TypeScript, Oh My! – Part 3

In this last part of my 3-part post, we'll be talking about converting our project to TypeScript. If you are just joining, but sure to check out the previous posts. First of all, why would we want to use TypeScript? Well, as the name would suggest, it makes use of types for Javaacript. Normally we try not to worry about…