Caktus Blog
2020

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:

How to Use the "docker" Docker Image to Run Your Own Docker daemon
There exists on Docker hub a Docker image called docker. It also has two flavors, "stable" and a "dind" (Docker-in-Docker). What is this image for and what is the purpose of these two different image tags?

Vue or React: How to Choose?
Across industries and sectors, we have become accustomed to seeing great rivalries that drive further innovation and competition. In the early days of car manufacturing, we had Ford and Chevy. In the early days of beverage and bottling, we had Coca-Cola and Pepsi. And today in front-end software development, we have Vue and React. As a framework and a library, respectively, both single page applications (SPAs) are tackling Document Object Model (DOM) Manipulation in markedly improved ways from their predecessor JQuery; with the added benefit of offering state management and code-splitting up front. However, as Django developers, we often struggle to decide between these two titans when choosing a front-end for our Django REST Framework (DRF) APIs. In writing this blog post, we hope to alert you to some of the key distinctions between Vue and React, as well as some of their similarities, before you move forward with either for your team.

Our Top 19 Blogs of 2019
During the last year we gave our popular technical blog an official name: Developer Access. We published 32 posts on the blog, including technical how-to’s, conference information, web development best practices and detailed guides. Among all those posts, 19 rose to the top of the popularity list (based on total pageviews):