Top all-time · #1458
Adam Johnson
Personal blog · adamj.euprogrammingweb
Adam Johnson is a personal blog at adamj.eu about programming and web. Since 2015, 51 different Hacker News readers have linked it 88 times, most often “Tips for Debugging with Print()”. It is still writing: the last post was on 2026-10-30, and you can follow it by feed.
Most-linked posts?
- Tips for Debugging with Print()3 people · 4 mentions · first linked 2021-10-09
- Expectations of professional software engineers3 people · 3 mentions · first linked 2022-10-03
- Django: what’s new in 6.03 people · 3 mentions · first linked 2025-12-04
- New Testing Features in Django 4.0 – Adam Johnson2 people · 3 mentions · first linked 2021-09-28
- AWS H3 is the Future of Hotels (Parody)2 people · 2 mentions · first linked 2016-10-31
- How to Split Types by Python Version – Adam Johnson2 people · 2 mentions · first linked 2022-04-27
- Python Type Hints – How to Handle Optional Imports2 people · 2 mentions · first linked 2021-12-29
- Django: Profile Memory Usage with Memray2 people · 2 mentions · first linked 2026-02-05
- How to Make Django Raise an Error for Missing Template Variables2 people · 2 mentions · first linked 2022-03-30
- Flake8-Logging2 people · 2 mentions · first linked 2023-09-08
What Hacker News says?
> Via its incr and decr commands, memcached provides a built-in way to atomically add k to a number. But it doesn’t provide other arithmetic operations; in particular, there is no “atomic multiply by” operation. Your programming challenge: Add a mult command to memcached. Protip for people in junior roles: if you're interviewing for a more senior position, the correct answer would *not* be to jump in straight and wa…
Comment linking /tech/2021/11/03/software-engineering-is-programming-integrated-over-time/
on “The best engineering interview question I've ever gotten”Submitted Django: what’s new in 6.0 as a story · 379 points
HN discussionI think they should. Not sure if they will. However Adam Johnson mentioned django-tasks as the reference implementation that may be included in Django here https://adamj.eu/tech/2025/12/03/django-whats-new-6.0/ .
Comment linking /tech/2025/12/03/django-whats-new-6.0/
on “Django 6”Submitted Expectations of professional software engineers as a story · 220 points
HN discussionLet me save you a bunch of money: https://adamj.eu/tech/2021/04/13/reindexing-all-tables-after...
Comment linking /tech/2021/04/13/reindexing-all-tables-after-upgrading-to-postgresql-13/
on “How we upgraded our 4TB Postgres database”Submitted How to Find and Stop Running Queries on PostgreSQL as a story · 125 points
HN discussionCheck out the HTMX example in the blog, this helped me better understand how it could be used https://adamj.eu/tech/2025/12/03/django-whats-new-6.0/#rende...
Comment linking /tech/2025/12/03/django-whats-new-6.0/
on “Django: what’s new in 6.0”Submitted Solving Algorithmic Problems in Python with Pytest (2019) as a story · 77 points
HN discussionI don't think there is a moral justification for circular dependency scopes to always be individual files, especially given that import statements count as circular. The same issue in other languages where circular scopes are individual files leads to some horrible workarounds: * Python TYPE_CHECKING https://adamj.eu/tech/2021/05/13/python-type-hints-how-to-fi... * C/C++ header files But regardless, there is too muc…
Comment linking /tech/2021/05/13/python-type-hints-how-to-fix-circular-imports/
on “Why is my Rust build so slow?”Submitted Python Type Hints – How to Handle Optional Imports as a story · 47 points
HN discussion* [Adam Johnson]( https://adamj.eu/tech/ ) - Ansible, AWS, Django, and Python. * [Julia Evans]( https://jvns.ca/ ) - Linux, Rust, Debugging, Comics, HTTP.
Comment linking /tech/
on “Ask HN: What are some great engineering blogs?”Submitted Django: Fix a view using a debugger with breakpoint() as a story · 16 points
HN discussionHere’s my post summarizing new testing features in Django 4.0: https://adamj.eu/tech/2021/09/28/new-testing-features-in-dja...
Comment linking /tech/2021/09/28/new-testing-features-in-django-4.0/
on “Django 4.0 release candidate 1 released”Submitted Django: What's New in 6.0 as a story · 6 points
HN discussion> "one url, one file" by letting Apache handle the routing Source of many issues when someone forgets the "include auth.php" equivalent in that one specific file. (not theoretical, this happened so many times) > I have to restart the application to see changes I make. https://adamj.eu/tech/2021/12/16/introducing-django-browser-...
Comment linking /tech/2021/12/16/introducing-django-browser-reload/
on “Myths About CGI Scalability”Submitted Django: What's New in 5.2 as a story · 5 points
HN discussionIf you're interested in some of these concepts (i.e. smaller, more incremental PRs and stacked branches) but don't want to jump whole-hog into using a new product or tool, I highly recommend taking a look at `git rebase --update-refs`[0] to grease the wheels so to speak of implementing a similar approach with stock tooling. There's a great write-up on the feature and how it can help you here[1]. [0]: https://git-scm…
Comment linking /tech/2022/10/15/how-to-rebase-stacked-git-branches/
on “Your GitHub pull request workflow is slowing everyone down”Submitted AWS H3 is the Future of Hotels (Parody) as a story · 5 points
HN discussionReally cool - I was just reading this and worrying about cross scripting attacks: https://adamj.eu/tech/2020/02/18/safely-including-data-for-j... Could see your site being really useful as a linting/ci tool. Is that where you're planning on taking it?
Comment linking /tech/2020/02/18/safely-including-data-for-javascript-in-a-django-template/
on “Show HN: DJ Checkup – Check your Django site for security errors”Submitted Git: Detect an in-progress cherry-pick, merge, rebase, or revert as a story · 4 points
HN discussionWhile it is a bit of a pain, it can be made a lot easier with the --keep-base option. This article is a great example https://adamj.eu/tech/2022/03/25/how-to-squash-and-rebase-a-... of how to make rebasing with merge conflicts significantly easier. Like you said though, it's not super user-friendly but at least there are options out there.
Comment linking /tech/2022/03/25/how-to-squash-and-rebase-a-git-branch/
on “Git Rebase for the Terrified”Submitted Dry-run data imports in Django with roll-back transactions as a story · 4 points
HN discussionShould link here instead - my post is just a link and my own summary notes: https://adamj.eu/tech/2023/11/02/github-actions-faster-pytho...
Comment linking /tech/2023/11/02/github-actions-faster-python-virtual-environments/
on “GitHub Actions: Faster Python runs with cached virtual environments”Submitted Python Type Hints – How to Type a Descriptor as a story · 4 points
HN discussionThis article is a few years old but it compares both really well: https://adamj.eu/tech/2019/04/03/django-versus-flask-with-si... Flask works for simple projects but as your needs grow, the built-in and extensive Django ecosystem will have you covered. And as seen above, Django in its simplest form is no more complex. Some people really don't like the Django ORM, so in this case you might avoid Django altogether. It…
Comment linking /tech/2019/04/03/django-versus-flask-with-single-file-applications/
on “Building a Blog in Django”Submitted Python Type Hints – How to Handle Optional Imports as a story · 4 points
HN discussionI'm guessing someone got inspired by https://adamj.eu/tech/2021/05/11/python-type-hints-args-and-... IMHO mixing args and kwargs together like this - having a dict with mixed types for keys - looks kinda grotty.
Comment linking /tech/2021/05/11/python-type-hints-args-and-kwargs/
on “Python Proposal (Inspired by Lua)”Submitted Pre-commit: install with uv as a story · 3 points
HN discussionYeah, that is odd. Python still has no immutable dict type, except it kinda does: https://adamj.eu/tech/2022/01/05/how-to-make-immutable-dict-...
Comment linking /tech/2022/01/05/how-to-make-immutable-dict-in-python/
on “Python Type Hints – *args and **kwargs”Submitted Django: Create sub-commands within a management command as a story · 3 points
HN discussion