Notes on software engineering

Archive / page 21

401–420 of 550 posts, newest first.

  1. 2023
  2. Atuin for zsh shell history in SQLite

    Atuin (via Rhet Turnbull) "replaces your existing shell history with a SQLite database". Obviously I had to try this out!

    1 min read
  3. Installing Python on macOS with the official Python installer

    I usually use Homebrew on macOS, but I decided to try using the official Python installer based on this Twitter conversation.

    1 min read
  4. Testing the Access-Control-Max-Age CORS header

    Today I noticed that Datasette wasn't serving a header. This meant that any CORS pre-flight requests would be repeated for every request, which hurts performance - the browser should be able to cache…

    1 min read
  5. Writing an Azure Function that serves all traffic to a subdomain

    Azure Functions default to serving traffic from a path like - for example . If you want to serve an entire website through a single function (e.g.

    1 min read
  6. Cloudflare redirect rules with dynamic expressions

    I wanted to ensure would redirect to - including any path - using Cloudflare. I've solved this with page rules in the past, but this time I tried using a "redirect rule" instead.

    1 min read
  7. Commit a file if it changed

    This recipe runs a Python script to update a README, then commits it back to the parent repo but only if it has changed: My first attempt threw an error if I tried o run and the README had not…

    1 min read
  8. Only run GitHub Action on push to master / main

    Spotted in this Cloud Run example: Useful if you don't want people opening pull requests against your repo that inadvertantly trigger a deploy action!

    1 min read
  9. Quick and dirty mock testing with mock_calls

    I needed to write a test that checked for a really complex sequence of mock calls for s3-credentials 3.

    1 min read
  10. Running Ethernet over existing coaxial cable

    I recently noticed that the router in our garage was providing around 900 Mbps if I plugged my laptop directly into it via an Ethernet cable, but that speed fell to around 80Mbps (less than 1/10th…

    2 min read
  11. Using Playwright MCP with Claude Code

    Short version: run this before starting : That's it! Now when you run Playwright will be available. You can say things like: And a visible Chrome browser window, controlled by Claude Code, will open…

    1 min read
  12. Scroll page to form if there are errors

    For a Django application I'm working on (this issue) I have a form that can be quite a long way down the page.

    1 min read
  13. Styling an HTML dialog modal to take the full height of the viewport

    Today I got Claude to build me an experiment to use it for a side panel that would slide in from the right hand side of the screen, looking like this: But what's with that gap at the bottom?

    3 min read
  14. Writing pytest tests against tools written with argparse

    I usually build command-line tools using Click (and my click-app cookiecutter template), which includes a really nice set of tools for writing tests.

    1 min read
  15. Bulk editing status in GitHub Projects

    GitHub Projects has a mechanism for bulk updating the status of items, but it's pretty difficult to figure out how to do it. The trick is to use copy and paste.

    1 min read
  16. Freezing requirements with pip-tools

    I tried pip-tools for the first time today to pin the requirements for the natbat/pillarpointstewards Django app. The pip-tools README is really good. Here's how I'm using it.

    1 min read
  17. HTML datalist

    A Datasette feature suggestion concerning autocomplete against a list of known values inspired me to learn how to use the HTML element (see MDN).

    1 min read
  18. Running PyPy on macOS using Homebrew

    Towards Inserting One Billion Rows in SQLite Under A Minute includes this snippet: All I had to do was run my existing code, without any change, using PyPy.

    1 min read
  19. Scraping the Sky News Westminster Accounts, a Flourish application

    Sky News in partnership with Tortoise published a fantastic piece of investigative data reporting: the Westminster Accounts, a database of money in UK politics that brought together data from three…

    2 min read
  20. Understanding the CSS auto-resizing textarea trick

    Chris Coyier wrote about the new property, which can get a to automatically expand to fit its content - but currently only in Google Chrome Canary.

    5 min read
  21. Annotated code for a demo of WebSocket chat in Deno Deploy

    Deno Deploy is a hosted Deno service that promises a multi-tenant JavaScript engine running in 25 data centers across the world.

    1 min read