$ ls -l /usr/lib/firmware/nvidia/510.60.02/gsp.bin
-rw-r--r-- 1 root root 40439760 ... /usr/lib/firmware/nvidia/510.60.02/gsp.bin
It says so right there on the first page of README.md in the repo, if anyone bothered to check...
"How am I supposed to do $simple_thing?!?!"
"Mmm, this actually makes sense..."
"Let me style all tertiary roads using dashed lines and have buildings in residential areas throw simple shadows and generate a 3x3 A4 poster optimized for B&W laser printer"
I'm having fun!
I'm playing the "Why?" game with the little one. My longest streak so far was 11 answers, since I didn't want to get into particle physics.
Winning strategies so far: not playing (stop responding) and/or steer the questions towards the little one ("Why?... Because you didn't want to do it, why didn't you want to do it? Because...")
Have you posted a photo on Mastodon and the preview image hides something important?
If you're using the web version of Masto, you can alter the focus of the preview image when posting photos. Just click "Edit" on the image and move the circle around. When you've finished click "Apply".
(And while you're editing, do remember to add an image description for blind people!)
The two photos below are identical, but one has the focus set to the right and one to the left.
#osm Trick to allow importing an entire country to pgRouting/PostGIS/PostgreSQL : first chop up the source into smaller pieces using splitter , otherwise the osm2pgrouting tool will keep crashing:
$ java -jar splitter.jar --output-dir=splits/ country.osm
$ ONCE=--clean; for f in splits/*.pbf; do osmconvert $f --out-osm -o=part.osm; osm2pgrouting -f part.osm $ONCE ...; ONCE=; done
Things I changed my opinion on based in practice - if you are committing a change, a test change should be included.
If you're modifying something, then either
a) it was tested before, and something must have started failing, or b) you're modifying something that wasn't tested before, so a new test case should be added.
Obviously one should apply common sense, but it's useful even for small/one-off projects...
Example where this is being done rigorously - SQLite, e.g. https://www.sqlite.org/src/info/3dc9fc2f2de8696b
It turns out that the extensions are maintained *per database*, so while I was upgrading the extension version in "postgres" database, I was *not* upgrading the extension in "mastodon" database.
After checking the extension versions in both using "\dx", the fix was simple - use the "postgres" user in the "mastodon" database and voila, it worked!
ERROR: column "total_plan_time" does not exist 
The supposed fix is to run the following command:
ALTER EXTENSION pg_stat_statements UPDATE;
Which only works under the "creator" creator account, so I ran it under "postgresql" role instead of "mastodon".
However, even after running it, it still didn't work...
A few years ago I made this flow chart of which Mastodon posts end up in which timelines!
So, you can see how each instance will have a different local timeline, and even a slightly different federated timeline - and you can see why the federated timeline moves so much faster than the local one, too.
This is why it's important to boost good posts and use hashtags - the fediverse is fragmented and harder to search by nature.
Another day, another system update, another failure to start Mastodon server followed by debugging, figuring out Postgres got upgraded too, having to manually do the `pg_upgrade` dance...
Why can't the system update do the pg_upgrade as a post install hook and keep a backup somewhere if something goes wrong?
After multiple attempts it suddenly worked. I have no clue what happened and why this suddenly worked. Maybe I tried the "Mastodon domain" instead of the "root domain"?
First I had to add a redirect for "/oauth/" from my "main" domain to the Mastodon subdomain for some reason.
Now I get a '404' toast after "approving" the permissions. Checking the server logs:
GET /api/v1/apps HTTP/2.0 404
mastodon-web-1 | ... method=GET path=/api/v1/apps format=html controller=ApplicationController action=raise_not_found status=404 duration=0.93 view=0.48 db=0.00