Caktus Blog

Insights and strategies from a team recognized at Python and Django conferences worldwide since 2009. The Caktus Blog is your space for practical how-to’s, real-world solutions, and expert advice on building better user experiences, strengthening quality assurance, solving deep and complex Python/Django problems, and managing projects that deliver impact. Whether you’re refining a UI or prepping for launch, join us to learn, level up, and lead with confidence.

2023


cover-migrating-django-project-gpu-convenience-image-circleci.jpg

Migrating a Django Project from a GPU to a Convenience Image on CircleCI

Recently we learned that as of September 30th, 2023 several linux images will be deprecated, including the one we used, ubuntu-2004:202111-02. Therefore, after September 30th, our pipelines would have failed. To avoid this, we switched several machines in our Django project from Ubuntu GPU images to convenience images; This writing details that switch.

cover-addressing-recent-uptick-scam-job-offers-linkedin-related-caktus-group-llc.jpg

Addressing the recent uptick in scam job offers on LinkedIn related to Caktus Group LLC.

James Worthan

Beginning on July 20th, many individuals contacted us asking if a job offer they had received from us was a legitimate offer, wanting to ensure that they were talking with the correct person at the company. The unfortunate truth was that none of the potential applicants seeking information had submitted an application with Caktus Group.

cover-migrate-amazon-eks-add-ons.jpg

Migrate to Amazon EKS Add-ons

Amazon Elastic Kubernetes Service (Amazon EKS) released support for operational cluster add-on software, or Amazon EKS add-ons, around Kubernetes version 1.19 in May 2021. These include:

cover-set-aws-cloudtrail-monitor-kubernetes-application-events-using-ansible.jpg

Set up AWS CloudTrail to Monitor Application Events using Ansible

AWS CloudTrail is a service that enables monitoring and recording of account activities. In this post, we will use CloudTrail to monitor CPU usage and to monitor our nodes. We will use Ansible to automate the setup process and as a means to document our setup (IaC). This post assumes you already have Ansible set up for your project and will not provide setup instructions.

cover-github-submodule-branches-upgrade.jpg

GitHub Submodules: Leveraging Branches to Allow Independent Updates in Parent Applications

Recently I’ve been working with projects that use GitHub submodules. According to GitHub, submodules “allow you to include or embed one or more repositories as a sub-folder inside another repository.” Submodules help us keep code dry when functionality is shared across multiple repositories.

Update an Amazon EKS cluster Kubernetes version to 1.23+

Introduction

Caktus is committed to developing and maintaining high-quality web applications for clients, so we focus on software sustainability. Software sustainability refers to the ability of software to continue to function as expected over time, even as hardware and software environments change. It involves maintaining and updating software to remain reliable, secure, and compatible with new hardware and software technologies. Additionally, from a security perspective, attackers can exploit software vulnerabilities to gain unauthorized access to systems or data. Keeping software up-to-date with the latest security patches helps to reduce the risk of these vulnerabilities being exploited.

Analyze data with SQL window functions

We regularly use tools like PostgreSQL, Pandas, and Jupyter Notebooks to analyze data here at Caktus. Recently, we were reviewing North Carolina traffic stop data for the NC CopWatch project and had the opportunity to use PostgreSQL's window functions, which are helpful when aggregating data.

cover-begin-your-data-analysis-journey-pandas-and-seaborn.jpg

Begin your Data Analysis Journey with Pandas and Seaborn

Lately, there has been a lot of talk about scoring in the NBA because LeBron James surpassed Kareem Abdul-Jabbar with 38,390 career points. I have noticed that there is not much discussion about post-season scoring, so I searched for this dataset on Kaggle (nba_playoffs.csv) which contains the top 25 all-time post-season scoring leaders. Post-season scoring is its own beast. Since teams face one opponent multiple times in a row, they can better concentrate on the opposing team and its individual players, particularly star players. This results in improved defenses across the board. However, the post-season also means players improving their game. What is the result of improved defenses and players alike? Only elite players score consistently and thus, only the NBA's elite are on this list. This post will first examine the dataset using Pandas and then use Seaborn to graph such data.

cover-denormalization-json-fields-performance-boost.jpeg

Denormalization with JSON Fields for a Performance Boost

Erin Mullaney

What is Normalized Data?

In the early 2000s, I had a paper test that I gave to developer candidates. It was a single sheet that I printed out from Excel, in landscape, containing order data from a small fictional online bookstore. I asked each candidate to normalize the data from the spreadsheet by drawing and writing on a blank sheet of paper I provided.

cover-forging-new-path.png

Forging a New Path

I haven’t always been a Software Developer….Imagine that.

I spent 20 years in Corporate America where I took my career as far as I could without holding a college degree, so I’m definitely not green when it comes to work experience. What a stark difference from my past work experience and my current situation: the corporate world was a dog eat dog kind of world versus the collaborative nature of developing I’m in currently.