Caktus Blog
2020

My Favorite Technical Blogs and Mailing Lists
I keep up with what's happening in my field by following a number of blogs and an occasional email list. I don't read everything posted in all of these, but by scanning the topics in a feed reader, I can keep up with what's going on, without wasting a lot of time.

JWT Authentication: Rethinking the Pattern
Part two of a two-part series. View part one.
Stateless authentication with JSON Web Tokens — safely!
As developers who build REST APIs, we are quite familiar with JSON Web Token (JWT) based authentication. The typical pattern is this:

Build React Apps with Styled Components: The Why and How of the Styled-Components Library
React is a library that helps developers approach user interface (UI) development with the single-responsibility principle in mind, while building reusable, encapsulated components. But when it comes to styling, there is a heated debate in the React community. There are a few schools of thought:

JWT Authentication: How Does it Work?
Part one of a two-part series.
A REST API is a wonderful way to expose application data to a wide variety of clients. Anything that can speak HTTP can communicate with a REST API, and these days that means an exciting variety of devices. From plain old web browsers to mobile devices to a whole array of IoT applications — there are a lot of good reasons to use a REST API. And if you’ve ever built one, you’re familiar with the predominant means of restricting endpoints to authenticated users — JSON Web Token (JWT) based authentication.

Accessibility Testing Tips for Beginners
Above: Caktus uses several mobile devices for accessibility testing. For a more realistic experience, it’s important to test on devices, and not just with simulators.

Build a useKeypress Hook in React
One of the great patterns to come out of React 16.8 is composable hooks. Using React's built-in hooks such as useState and useEffect, we can encapsulate and modularize bits of functionality — almost the same way we create reusable components. In this article we're going to throw together a quick hook that registers an event listener on a keypress and performs an action. Nothing fancy, but it's a nice abstraction that makes it a lot easier to add some nice power-user features to your app.

How to Schedule Tasks Using Celery Beat in a Container
When running services in a container, changes to files can be discarded at any time, but the Celery beat default scheduler keeps its state in a file.

How to Use Kubernetes on Azure for Cloud Computing
For the Review, Appraisal, and Triage of Mail (RATOM) project, funded by the Andrew W. Mellon Foundation, we were tasked with deploying to a Microsoft Azure environment. More details about the project are in our first blog post in this Learn With Us blog series. Caktus has experience with Amazon Web Services (AWS) and Google Cloud, but we hadn't had the opportunity to use Azure yet, so we looked forward to the opportunity to use that environment and document our experience. The entire deployment process is available on GitHub as a reference under the StateArchivesOfNorthCarolina/ratom-deploy repository.

A Quick Guide to Generating Fake Data with Pandas
Last August, our CTO Colin Copeland wrote about how to import multiple Excel files in your Django project using pandas. We have used pandas on multiple Python-based projects at Caktus and are adopting it more widely.

Caktus Hosts First Pitch Competition: Winner Receives 300 Hours of Project Time
We recently hosted the first Caktus Pitch Competition: Building Tech for Good, which aimed to draw out innovative ideas and help make them a reality. While any web development ideas were welcome, preference was given to projects serving the public good.