RSSAmplifier

Blog

Selected Writings of Danver Braganza

Mostly articles about programming in Python and Go, with occasional detours into the whimsical.

danverbraganza.comRSS feed ↗33 posts

Latest posts

How You Detach Sticky Notes Affects How Well They Stay Attached

How simple geometry and physics might be undermining the effectiveness of your sticky notes

Christmas Songs that Do Too Much

Twelve Christmas songs that always steal the limelight

Zawinski's Law was Never About Email

Social connection is one of the main drivers of software feature expansion

My most frequently used Jujutsu VCS commands

A cheat-sheet of jj commands you're most likely to need day-to-day using jj as a git replacement.

How I Made My Credit Cardholder Discounts Searchable

How I gather my credit card offers in one place so I don't miss out

Building a Python Application that depends on PySide6 QtWebEngineWidgets with Briefcase

If you've run into this error, this is how you can fix it

Roll-Invert-Unroll: An Easier Way to Replace a Duvet Cover

This way of putting a cover onto a duvet might save you effort and time!

My Theme Song (8 bit version)

I composed an 8-bit version of my own theme song and put it on the Internet

Improving My Toothbrush, an Alexa Skill, with Go and the help of AI tools

How I leveraged Go, GPT-4 and DALL-E to improve a simple toothbrush timer Alexa Skill

Death is Truth: Why Post-Mortems Work

How to successfully perform the Rite of AshkEnte

3D Printing a custom case for my Flipper Zero's Wifi Devboard

Step-by-step instructions I used to build and assemble a case for my Flipper accessory

De Morgan's Flaw: Perform This Refactor Carefully

A pattern that I've noticed often causes bugs

Estimates, Design and the Payoff Line

How inaccuracies in estimation lead to a systematic undervaluing of the importance of Design

Names to avoid in Software Engineering

An incomplete list of poor names for libraries, modules, projects and teams

Distributed Circuit Breakers at Hipmunk

How we implemented Circuit Breakers at Hipmunk to automatically deal with third party outages.

Misapplying LazyRecursiveDefaultDict

A cautionary tale of how I misapplied the wrong software tool to a problem, and what I've learned from it.

The Sorting Hat and Hash Functions

Why Harry Potter's Sorting Hat would make a poor choice for a hash function

Book Summary: The Phoenix Project

A summary and a review of the Phoenix Project

From Maybe to Ensure

A digression on naming functions, and ensuring they only do one thing

Highlight selected words in terminal output with grep

A one-line shell function to visually emphasize search terms in the terminal output of a program

Zero-based ordinals

This is the televenth post of my blog.

Always spell your range checks like this

By always spelling your range conditionals start <= index < capacity, you make your code more easily grokkable and reduce the chance of errors.

The Empty Case is not Special

Instead of explicitly handling the empty case in functions, try this instead.

Book Summary: Left of Bang

A review of the book Left of Bang

Connect Four implemented in 3 lines of Python

A tiny implementation of Connect 4 on the terminal, with explanation.

Why interfaces in Go are so strict

A closer look at some surprising interface mechanics in Go

Hangman implemented in 3 lines of Python (2)

Just because you can, doesn't mean you shrdlu.

How to remember the order of arguments to super() in Python2

A handy mnemonic that eliminates the guesswork from picking the order of arguments for super()

Knowing when to finish and knowing where to start

Announcing the completion of varcaser, and discussing prioritization.

Keysort: The Schwartzian Transform in Go

This article talks about a problem I encountered while sorting complex types in Go, and the solution I came up with, keysort.

Inaugural post

This is the first ever post to this blog.

Ratchets Run Faster with Resharp

Switching from the regex crate in Rust to Resharp makes Ratchets run 15% faster on the Sculptor codebase

Quiet in the Zoo

A reminder (to myself, mostly) on the importance of stepping away from the agents to make time for reflection