How to Encrypt Your Existing AWS S3 Objects

Amazon’s S3 service comes with some pretty handy server-side encryption features. In fact, the S3 web app provides a single control to automatically encrypt all new objects in a bucket with SSE-S3 or SSE-KMS. Unfortunately these controls only affect new objects. If your bucket already contains 10,000 unencrypted objects, then turning on automatic encryption does […]

Ergonomic Struct Updates in Swift

Lately, I’ve been working on a project that employs a Redux-inspired state management architecture built using Swift and SwiftUI. Of course, because of the Redux pattern we employ, we have lots of reducers with the signature (state, action) -> state. All of our states and sub-states are held in Swift structs. The out-of-the-box, value-type semantics […]

Getting Create React App & Express to Share Code Without Ejecting (Using Webpack & Typescript)

On a recent project, we used Create React App (CRA) as a starting point. It provides a lot of features out of the box that make starting a new React project a breeze, and it has a community-driven update path. I also wanted to share Typescript code between the front end and back end, something […]

Scrollable Grid with Just-in-Time Data Loading – Part 4: Fetching Data with Apollo Client and GraphQL

Today I’ll explain how to use Apollo Client to fetch data in batches from a GraphQL endpoint and hook that data up to Infinite Loader. By the end of this post, you’ll have an (almost!) full-stack, just-in-time loading list. How did we get here? In my last few posts, I’ve explained how to: Fetch data […]

Better TypeScript Types for Redux Saga’s “Call” Effect

One of the challenges of working with Redux Saga in TypeScript is the heavy and unconventional use of generator functions. This feature from JavaScript does some amazing heavy lifting in enabling the library to be as powerful as it is, but it just doesn’t play well with TypeScript’s capabilities. There’s currently no way to even […]