Data

2024


cover-getting-started-dagster.png

Getting Started with Dagster

Recently, Caktus has been using Tailscale to manage VPN connections between Android tablets and a central server. We wanted to report on the devices connected to the network using the Tailscale API. While we could use tools like Celery to fetch data from the API and load it into a database—given its widespread use in the Django ecosystem—we also wanted to explore other options.

2020


cover-quick-guide-generating-fake-data-with-pandas.png

A Quick Guide to Generating Fake Data with Pandas

Erin Mullaney

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.

2019


cover-django-bulk-inserts.jpg

How to Use Django Bulk Inserts for Greater Efficiency

It's been awhile since we last discussed bulk inserts on the Caktus blog. The idea is simple: if you have an application that needs to insert a lot of data into a Django model — for example a background task that processes a CSV file (or some other text file) — it pays to "chunk" those updates to the database so that multiple records are created through a single database operation. This reduces the total number of round-trips to the database, something my colleague Dan Poirier discussed in more detail in the post linked above.

2018


cover-caktus-embraces-gdpr-compliance.png

Caktus Embraces GDPR Compliance (and you can, too!)

Tim Scales

If you’ve landed on this page, you’re probably here for one of two reasons:##

A) You’re a European firm who’s interested in hiring Caktus, in which case: Yes, we’re GDPR compliant! Ask us about it here.

2016


cover-pydata-carolinas-2016-recap.jpg

PyData Carolinas 2016 Recap

Alex Lemann

We had a great time at the inaugural PyData Carolinas hosted nearby at IBM in the Research Triangle Park. People from Caktus presented a number of talks and the videos are now up online:

cover-trainspotting-real-time-detection-pycon-2016-must-see-talk-46.jpg

Trainspotting: Real-Time Detection (PyCon 2016 Must-See Talk: 4/6)

Erin Mullaney

Part four of six in our annual PyCon Must-See Series, a weekly highlight of talks our staff especially loved at PyCon. With so many fantastic talks, it’s hard to know where to start, so here’s our short list.

cover-what-were-clicking-march-link-roundup.jpg

What We're Clicking - March Link Roundup

Liza Chabot

We’re starting a new, monthly series on the Caktus blog highlighting the articles and posts shared by Cakti that drew the most attention on Twitter. These roundups will include everything from Django how-tos to explorations of the tech industry, to innovations for social good.

cover-modified-preorder-tree-traversal-django.png

Modified Preorder Tree Traversal in Django

Rob Lineberger

Hierarchical data are everywhere, from product catalogs to blog post comments. A classic example is the tree of life, where kingdoms are subdivided into a hierarchy of phylum and class down to genus and species. What if you wish to store this data in a database table, which is inherently flat? Databases do not natively store hierarchies, so you need to work around that.

2015


cover-initial-data-django.jpg

Initial Data in Django

Dan Poirier

I’ve struggled to find an ideal way to load initial data for Django projects. By “initial data,” I’m referring to the kind of data that you need on a new system for it to be functional, but could change later. These are largely lists of possible choices, such as time zones, countries, or crayon colors.