Caktus Blog
2020

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.

What to do About Email: How to Extract Data from Microsoft PST Files
In my previous line of work as an archivist, the question of what to do about email archives was an ongoing and deeply-considered topic. Email is everywhere. Yes, even Gen Z and millennials use it, despite thousands of think pieces that would have you believe that the old ways are giving way to business meetings conducted on fixed-gear bicycles, over avocado toast and Instagram.

Creating a Sub-account in Amazon Web Services
Anytime we host resources for a client within the Caktus Amazon Web Services (AWS) account, we set up a sub-account and put the resources there. Some of the advantages of doing this compared to putting a client's resources in our main account are: