Latest posts
- Pasting screenshots into Claude Code over SSH
- You didn’t just do that, Heroku
- The Django Speed Handbook: making a Django app faster
So Claude Opus 5.5 is out today. It’s cheaper and supposedly better than Fable. I only care about one thing though: does it still cram five different concepts into one sentence, invent jargon, and blabber endlessly? Anthropic dedicate a section to this:
Opus 5.5 communicates more naturally than prior models. Early testers found its writing clearer and easier to follow, which addresses some of the common feedback we heard about Opus 5. It puts the most important information up front, and its style makes it a better work partner over long sessions. As one early tester put it, “it writes the way I do.” In our own use, this has made Opus 5.5’s work easier to follow and check—which is a safety benefit as well as a practical one.
Then again, they said the same about Fable 5.1. We’ll see.#
- Replacing Linear MCP with linear-cli#
Linear is one of my favorite software finds of the last few years. I’m not as big of a fan when it comes to their token-hungry MCP server though. I recently switched to this (unofficial) CLI and my rough estimate is that it saves me between 5k to 25k tokens a session.
I asked Claude to sample the differences and it came back with medians based on 71 tickets. Note the unit here is characters:
Operation MCP CLI MCP ÷ CLI Update issue 3,061 211 14.5× Read (no comments) 3,721 2,311 1.6× Read (with comments) 4,531 2,615 1.7× The explanation for both differences is simple and comes down to sane defaults and flexibility, both of which the MCP lacks:
get_issuereturns thirty-one fields. Those include the issue’s body and status, but also fields likeslaStartedAt,slaMediumRiskAt,slaHighRiskAt,slaBreachesAt. The last few are alwaysnullin my workspace. The CLI doesn’t return them by default.For updates, the CLI returns a simple success message while the MCP’s
update_issueresponse is almost as big as the read payload. Neither MCP tools accepts a parameter that makes its response smaller. - How to scaffold Django projects with Cookiecutter
This post is a guide on how to scaffold (quick-start) new projects efficiently with Cookiecutter, a library that creates projects from project-templates. It outlines how I created my own Django cookiecutter, Scaffold Django X, but the same can be applied to Flask and pretty much any other Python project.
- Eliminating indentation by returning early
Returning early is a fairly basic but useful technique and it’s one that I’ve only adopted relatively late in my Python journey. The Zen of Python states that “flat is better than nested” and returning early can definitely make a noticeable difference in this regard.
- Django tutorial: as-you-type search with Ajax
This is a walkthrough tutorial on how to implement what’s defined as “incremental search” in a Django app. We want results to refresh (with a tiny delay) as the user types their search term. We’ll also give a visual indication that the search is running by animating the search icon.
- A more Pythonic dictionary
Dictionaries are versatile, fast, and efficient. This post will cover two dictionary related features that I feel don’t get enough attention:
setdefaultanddefaultdict. They’re presented together to highlight both the differences and the similarities between them. - Grouping in Django templates
I’ve recently deployed a tiny changelog app in one of my Django projects. The
models.pyfile looks like this: - macOS migrations with Brewfile
Perhaps the most-dreaded aspect of setting-up a new machine is the time spent on reinstalling apps and reapplying all of the customizations from the previous one. As my MacBook Pro is about to turn six, I had been looking for a way to automate this process. At least for the applications part, I recently found a good solution (that’s apparently been around for a while).
- Django: Keeping logic out of templates (and views)
When I first started dabbling with Django and web-development, a good friend with a little more experience advised that I should keep logic away from my templates. “Templates should be dumb”.
- Django templates: 'include' context
Something I learned today which should come handy. The
includetag allows rendering a partial template from another: - Restoring a database from Heroku for local development
I’ve recently had to download my Django app’s database for local inspection. Heroku lets you do that pretty easily with: