Notes on software engineering

Archive / page 6

101–120 of 546 posts, newest first.

  1. 2025
  2. Testing against Python 3.11 preview using GitHub Actions

    I used the new GitHub Code Search to figure out how to do this. I searched for: 3.11 path:workflows/ .yml And found this example from which showed that the version tag to use is: 3.11-dev Update 28th…

    1 min read
  3. How to get credentials for a new Twitter bot

    I wanted to build a Twitter bot that would tweet Covid sewage graphs from this page every day. To do that, I needed the following four credentials for a new @covidsewage Twitter account.

    1 min read
  4. Rate limiting by IP using Cloudflare's rate limiting rules

    Tailing the Heroku logs showed that it was getting a barrage of traffic to the page, which implements faceted search and hence has an almost unlimited set of possible combinations - and suchlike.

    1 min read
  5. Training nanoGPT entirely on content from my blog

    This is a follow-up to Running nanoGPT on a MacBook M2 to generate terrible Shakespeare. I used nanoGPT by Andrej Karpathy to train a GPT model entirely against content from my blog!

    4 min read
  6. ---

    — A one-liner to output details of the current Python's SQLite 2025-10-19 Farshid Ashouri TIL,sqlite In investigating llm/issues/164 I found myself needing to know more precise details of the Python…

    1 min read
  7. Google Oauth2 is awesome

    I really enjoy using Google OAuth2. Essentially this completely removed my need to implement custom, often incomplete insecure authentication to my services.

    1 min read
  8. Whisky sour

    I picked up the recipe for this one from this video by @notjustabartender on TikTok. Ingredients per drink - 1 egg white - 1/2 oz rich Demerara syrup (see below - needs Demerara sugar, water and a bit…

    1 min read
  9. Minifying JavaScript with npx uglify-js

    While upgrading CodeMirror in Datasette I figured out how to minify JavaScript using on the command line without first installing any teels, using npx (which downloads and executes a CLI tool while…

    1 min read
  10. Replicating SQLite with rqlite

    I tried out rqlite today, a "lightweight, distributed relational database, which uses SQLite as its storage engine".

    1 min read
  11. Running self-hosted QuickJS in a browser

    I want to try using QuickJS compiled to WebAssembly in a browser as a way of executing untrusted user-provided JavaScript in a sandbox. My plan is to host it locally, not load it from a CDN.

    1 min read
  12. Simple load testing with Locust

    I've been using Locust recently to run some load tests - most significantly these tests against SQLite running with Django and this test exercising Datasette and Gunicorn.

    1 min read
  13. Generated a summary of nested JSON data

    I was trying to figure out the shape of the JSON object from https://github.com/simonw/coronavirus-data-gov-archive/blob/master/data latest.json?raw=true - which is 3.2MB and heavily nested, so it's…

    1 min read
  14. Granting a PostgreSQL user read-only access to some tables

    I wanted to grant a PostgreSQL user (or role) read-only access to a specific list of tables. I created the role using the Heroku PostgreSQL web console. Having done that, it had the name .

    1 min read
  15. Running tests against multiple versions of a Python dependency in GitHub Actions

    My datasette-export-notebook plugin worked fine in the stable release of Datasette, currently version 0.64.3, but failed in the Datasette 1.0 alphas. Here's the issue describing the problem.

    1 min read
  16. Lazy loading images in HTML

    Most modern browsers now include support for the image attribute, which causes images not to be loaded unti the user scrolls them into view.

    1 min read
  17. Using boto3 from the command line

    I found a useful pattern today for automating more complex AWS processes as pastable command line snippets, using Boto3.

    1 min read
  18. Manipulating query strings with URLSearchParams

    The class, in every modern browser since IE 11, provides a sensible API for manipulating query string parameters in JavaScript.

    1 min read
  19. macOS Catalina sort-of includes Python 3

    Once you have installed the "command line tools" for Catalina using the following terminal command: xcode-select –install will run Python 3.7.3: % which python3 /usr/bin/python3 % python3 Python 3.7.3…

    1 min read
  20. Serving a JavaScript project built using Vite from GitHub Pages

    I figured out how to serve a JavaScript project built using Vite using GitHub Pages and a custom build script that runs using GitHub Actions.

    2 min read
  21. Using the gcloud run services list command

    The command lists your services running on Google Cloud Run: It has two useful but under-documented options: which filters based on a special filter language, and which customizes the output format.

    1 min read