HTML video with subtitles
Via Mariatta I found my PyVideo speaker page, and thanks to that page I learned that a talk I gave in 2009 had been rescued from the now-deceased Blip.tv and is now hosted by the Internet Archive…
Notes on software engineering
61–80 of 547 posts, newest first.
Via Mariatta I found my PyVideo speaker page, and thanks to that page I learned that a talk I gave in 2009 had been rescued from the now-deceased Blip.tv and is now hosted by the Internet Archive…
I needed to run Selenium on macOS for the first time today. Here's how I got it working. Install the chromedriver binary If you have homebrew This is by far the easiest option: brew install…
I finally figured out how to package Datasette for installation with Homebrew. My package was accepted into Homebrew core, which means you can now install it like this: brew install datasette Prior to…
TIL the Python standard library struct module defaults to interpreting binary strings using the endianness of your machine. Which means that this code: Behaves differently on big-endian v.s.
tree-sitter is a "parser generator tool and an incremental parsing library". It has a very good reputation these days.
Given a large, heterogeneous table I wanted to identify patterns in the rows in terms of which columns were not null.
When giving a workshop it's often useful to have a URL to the workshop materials visible on screen at all times. I use a bit.ly link for these.
I previously wrote about Packaging a Python CLI tool for Homebrew. I've now figured out a pattern for automatically updating those formulas over time, using GitHub Actions.
For sqlite-utils issue 250 I needed to locate some test CSV files that start with a UTF-8 BOM. Here's how I did that using ripgrep: The option means the search spans multiple lines - I only want to…
I wanted to write alt text for the following screenshot (of this page), so I could include it in this post on Mastodon.
I'm a big fan of snapshot testing - writing tests where you compare the output of some function to a previously saved version, and can re-generate that version from scratch any time something changes.
Take for example an API endpoint that returns something like this: I want to efficiently assert against the second two keys, but I don't want to hard-code the SQLite version into my test in case it…
The San Francisco Microscopical Society has some extremely high resolution scanned images - one of them is a 1.67GB PNG file with a 25,088 × 17,283 pixel resolution.
For sqlite-utils 364 I needed to write a test for a Click app which dealt with input streamed to standard input.
One of our cameras takes raw photos in ORF format, which I believe stands for "Olympus Raw Format". Here's a recipe I found for converting them to JPEG on macOS: The result is a directory containing a…
Google Chrome still includes support for Web SQL, the long since abandoned proposed standard for shipping a SQL engine in browser JavaScript.
The goal: run Varnish in a Fly container as a caching proxy in front of another Fly application. I ended up switching to Cloudflare for running a Varnish-style cache in front of my Fly application…
I used to use a combination of and in all of my Python GitHub Actions projects in order to install Python dependencies via a cache, rather than hitting PyPI to download copies every time.
For Datasette.app I wanted to ensure that links to external URLs would open in the system browser. This recipe works: The event fires before any in-browser navigations, which means they can be…
For simonw/museums 32 I wanted to have certain lines in my Bash script ignore any errors: lines that used to add columns and configure FTS, but that might fail with an error if the column already…