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.

2017


cover-opening-external-links-same-tab-or-new.png

Opening External Links: Same Tab or New?

Basia Coulter

The Debate

My teammates and I recently engaged in a spirited debate over whether outbound links (links to external websites) should open in the same or in a new tab. “Same tab” was a default behavior for a set of external links on a project we were working on. A suggestion had been made, however, that the behavior be changed.

cover-python-type-annotations.gif

Python type annotations

Dan Poirier

When it comes to programming, I have a belt and suspenders philosophy. Anything that can help me avoid errors early is worth looking into.

cover-caktus-attends-wagtail-cms-sprint-reykjavik.png

Caktus Attends Wagtail CMS Sprint in Reykjavik

Caktus CEO Tobias McNulty and Sales Engineer David Ray recently had the opportunity to attend a development sprint for the Wagtail Content Management System (CMS) in Reykjavik, Iceland. The two-day software development sprint attracted 15 attendees hailing from a total of 5 countries across North America and Europe.

cover-how-to-write-a-bug-report.gif

How to write a bug report

Dan Poirier

Here are some brief thoughts on writing good bug reports in general.

Main elements

There are four crucial elements when writing a bug report:

cover-how-make-jquery.gif

How to make a jQuery

Calvin Spealman

Learn to live without jQuery by learning how to clone it

jQuery is one of the earliest libraries every web developer learns, and often is the first experience with programming of any sort someone has. It provides a very safe cushion between a developer and the rough edges of web development. But, it can also obscure learning Javascript itself and learning what web APIs are capable of without the abstraction over them that jQuery adds.

cover-Caktus-at-pycaribbean.jpg

Caktus at PyCaribbean

Hao Nguyen

For the first time, Caktus will be gold sponsors at PyCaribbean February 18-19th in Bayamon, Puerto Rico. We’re pleased to announce two speakers from our team.

cover-plan-for-mistakes-as-a-developer.jpg

Plan for mistakes as a developer

Dan Poirier

I Am Not Perfect.

I've been programming professionally for 25 years, and the most important thing I have learned is this:

cover-ship-it-day-q1-2017.jpg

Ship It Day Q1 2017

Last Friday, Caktus set aside client projects for our regular quarterly ShipIt Day. From gerrymandered districts to RPython and meetup planning, the team started off 2017 with another great ShipIt.

cover-new-year-new-python-3-6.gif

New year, new Python: Python 3.6

Charlotte Mays

Python 3.6 was released in the tail end of 2016. Read on for a few highlights from this release.

New module: secrets

Python 3.6 introduces a new module in the standard library called secrets. While the random module has long existed to provide us with pseudo-random numbers suitable for applications like modeling and simulation, these were not "cryptographically random" and not suitable for use in cryptography. secrets fills this gap, providing a cryptographically strong method to, for instance, create a new, random password or a secure token.

cover-responsive-web-design.gif

Responsive web design

Basia Coulter

What is responsive web design?

Responsive web design is an approach to web design and development whereby websites and web applications respond to a screen size of the device on which they’re being accessed. The response includes layout changes, rearrangement of content, and in some cases selective display or hiding of content elements. Using a responsive web design approach you can optimize web pages to achieve great user experience on a range of devices, from smartphones to desktop.