The 12°C sunshine was rather windy all day long as witnessed by the ruffled 02. https://lyse.isobeef.org/waldspaziergang-2026-03-18/
@movq@www.uninformativ.de Sure, I quit on my own!
@movq@www.uninformativ.de Schlimmer geht immer.
@movq@www.uninformativ.de No idea why this didn’t occur to me. But you’re absolutely right.
@movq@www.uninformativ.de I would have done the same. ;-) My only hope with an abuse report is that the hoster would give this fuckwit a proper dressing-down.
sqlparse is also unsuitable for me: https://github.com/andialbrecht/sqlparse/issues/688
I’m supporting incremental SQLite schema changes to just upgrade from an older database version to whatever the current software version supports. In the past, I already noticed that this is quite expensive in unit tests when each test case runs through the entire schema patches and applies them one by one.
To speed up test execution I now decided that I finally go through the troubles of maintaining both a set of incremental patches and a full schema setup in one go. A unit test verifies that both ways end up with the same structure. This gives me a set of SQLs to check the structures:
SELECT type, name, tbl_name, sql
FROM sqlite_schema
ORDER BY type, name, tbl_name
Unfortunately, the resulting CREATE TABLE SQL queries are formatted differently, depending on whether the full schema was set up in one big step or the structure had been modified with ALTER TABLE. Mainly, added columns are not on their own lines but appended in one physical line. That’s why I wanted an SQL formatting tool. Since I didn’t find one that works decently, I’m now doing some simple string manipulation. Joining consecutive whitespace into a single space character, removing spaces before commas and closing parentheses and spaces after opening parentheses. This works surpringly good enough. Of course, if it fails, the “diff” is absolutely horrendous.
Now for the cool part, my test execution dropped from around 5:05 minutes to just 1:32 minutes! I call that a win.
I just stumbled across PRAGMA table_info('tablename') https://sqlite.org/pragma.html#pragma_table_info, PRAGMA foreign_key_list('tablename') and friends. I guess, I have to play with that, now. It’s probably much better to use than the SQL text approach.
@movq@www.uninformativ.de For sure. Time for an absue report.
@prologic@twtxt.net Welcome back to your main home! :-)
@rdlmda@rdlmda.me In case you’re into terminal clients, you might like tt. We finally managed to abolished our GitLab instance, so I would need to make the code available to the public differently.
@rdlmda@rdlmda.me Oh boy, what a story! The infrastructure is indeed in need of overhaul. I’m glad you were so lucky in these circumstances.
(Btw. you posted the same message twice with just five seconds apart. I’m replying to the later one. Not sure if this is a client bug (like attempting to edit) or just operator error. ;-))
@thecanine@twtxt.net Hahaha, nice! :-D
To whoever is operating this “xt” client, there might be a misconfiguration. My feed is often, but not always, pulled twice within a few seconds:
2026-03-14T15:31:02+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:31:31+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:41:19+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:41:31+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T15:51:04+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:01:25+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:01:27+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:11:51+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:11:54+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:21:53+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:32:19+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:32:22+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:52:28+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
2026-03-14T16:52:31+01:00 "GET /twtxt.txt HTTP/1.1" 304 "xt/0.0.1"
Maybe this is caused by a development and a production setup, no idea. Since this client is sending the If-Modified-Since or If-None-Match request header, I’m good with that, though. Looking forward to discover a new feed hopefully soon. :-)
@thecanine@twtxt.net Haha, I just realized you could stick that on the side of @prologic@twtxt.net’s caravan to accompany these large pixels there. Secret mission in Down Under. :-D
@prologic@twtxt.net Oh yeah, this looks like a nice spot with these gums in the background. :-)
Turns out, I even go down to only 50% quality for my thumbnails: https://lyse.isobeef.org/tmp/galres.txt The difference between 50% and 80/90% is just barely noticeable.
$ convert -strip -quality 50 IMG_20251106_035048_448_size_400.jpg 50-stripped.jpg
$ convert -quality 50 IMG_20251106_035048_448_size_400.jpg 50.jpg
$ ls -lh 50*jpg | awk '{print $5 " " $9}'
26K 50.jpg
25K 50-stripped.jpg
@falsifian@www.falsifian.org Correct, the two smaller versions are loading perfectly fine. The hickup is only for the originals. But in all reality, the middle ones are sufficient for me personally. Please don’t get me wrong, at least for the people photos, the subjects are large enough. The Japanese landscapes, however, would definitely benefit from a bit more detail. ;-)
I just tried it once more, and now, the tree with the sign (/photo/5Zy4pqVIt0oP/IMG_20251106_035048_448.jpg) fully loaded very quickly. Same with the Japanese dish (/photo/tJbmg8oleYbh/IMG_20251030_091719_086.jpg) and shopping center (/photo/qXG5ucIjpPju/IMG_20251029_045002_778.jpg). But the previous and next ones all ran into the same problems again. When I’m very lucky, I eventually get the upper half. Typically not even that much, a third, a fifth, or even less.
Waiting a bit before making an attempt, the wooden walkway through the forest or park (/photo/ojQpDLfBoGN4/IMG_20251023_043829_011.jpg) eventually also made it. But unlike the other successful attempts, it took a long time.
The more photos you add, the more beneficial it might be to separate the index into several different albums. I didn’t measure it, but it felt like 10 to 20 seconds for all the thumbnails to load. That traffic adds up.
Another idea would be to strip the EXIF data from the thumbnails and reducing quality to 90% or even 80%. Using the famous tree with the sign, I cannot tell the difference between the original thumbnail and the 80% quality one. I’m sure it depends on the subject. Here are the numbers:
$ convert -strip IMG_20251106_035048_448_size_400.jpg stripped.jpg
$ convert -quality 90 IMG_20251106_035048_448_size_400.jpg 90.jpg
$ convert -quality 80 IMG_20251106_035048_448_size_400.jpg 80.jpg
$ convert -strip -quality 90 IMG_20251106_035048_448_size_400.jpg 90-stripped.jpg
$ convert -strip -quality 80 IMG_20251106_035048_448_size_400.jpg 80-stripped.jpg
$ ls -lh *jpg | awk '{print $5 " " $9}'
46K 80.jpg
45K 80-stripped.jpg
64K 90.jpg
63K 90-stripped.jpg
132K IMG_20251106_035048_448_size_400.jpg
127K stripped.jpg
$ ls -l *jpg | awk '{print $5 " " $9}'
46160 80.jpg
45064 80-stripped.jpg
65012 90.jpg
63916 90-stripped.jpg
135070 IMG_20251106_035048_448_size_400.jpg
129647 stripped.jpg
@rdlmda@rdlmda.me Holy fuck, you were really lucky! This could have gone really bad. You noticed it because of the blackout?
@rdlmda@rdlmda.me @prologic@twtxt.net The web is fucked. :-(
@rdlmda@rdlmda.me What a truly wonderful description. ;‘-D But sorry to hear that. Luckily, no issues over here. It’s extremely rare that this happens. Last time (around five years ago or so) they were cutting down trees in the forest and threw a tree in the overhead power line (which had been converted to underground last year). Power had to be killed in order for the fire brigade to actually extinguish the fire.
@bender@twtxt.net H-Blockx covered it, the original was by Snap! https://en.wikipedia.org/wiki/The_Power_(Snap!_song) But it’s actually not my type of music at all. The high pitch refrain “I’ve got the power” is iconic and has somehow burned itself into my brain. Must have been a short circuit.
@rdlmda@rdlmda.me @bender@twtxt.net Eventually: “I’VE GOT THE POWER!” https://www.youtube.com/watch?v=rOScKjXH-HE
For the record, the third thing is to activate agent forwarding. In ~/.ssh/config:
Host git.mills.io
ForwardAgent yes
@bender@twtxt.net Somehow, the enshittificator himself does not have to deal with enshittification in his own life. In fact, his job gets better with the internet! This can only mean one thing, we all have to becom…
@falsifian@www.falsifian.org Congrats, mate, no sleep at night anymore! ;-D That’s a cool age measuring blanket. Haven’t seen something like that before.
Btw. the index.html includes an out of place </ul>. And I just wanna let you know that the full-size photos don’t load for me over here across the pond. They always run into a timeout after a few slooow percent. But no worries. :-)
@movq@www.uninformativ.de @bender@twtxt.net You need a running SSH agent in order to make it through the deep layers of the Mills infrastructure: After ssh-add, git pull always works for me.
And contrary to what the UI shows, the username git always has to be replaced with your own one.
Let’s finalize https://git.mills.io/yarnsocial/twtxt.dev/pulls/28/.
@movq@www.uninformativ.de Now, they’re always cloning the entire repo I suppose. X-(
@bender@twtxt.net I agree, I had oats in yoghurt for dinner. :-)
@rdlmda@rdlmda.me You might or might not find this useful: https://lyse.isobeef.org/tmp/twthash.py
You are brilliant, @aelaraji@aelaraji.com! I laughed my ass off reading the first sentence. :‘-D
@movq@www.uninformativ.de Interesting.
@aelaraji@aelaraji.com Ta! Haha, there’s a snake with a wide open mouth in 01 in my opinion. :-)
Nice cloud formations this evening. Obviously, they looked much cooler in person. https://lyse.isobeef.org/abendhimmel-2026-03-09/
@movq@www.uninformativ.de Luckily, I’ve never encountered any bugs in Vim with my type of work and features I use.
@bender@twtxt.net Hehe. :-)
@bender@twtxt.net Haha, one could think it’s so cold over here, even the posts have to wear beanies. :-D 04 was actually in a villa garden not too far from the edge of the village. Those plants in 05 are tiiiny. Not sure if eating them is healthy. I’m glad about the temperatures, no interest in trading them. ;-)
@bender@twtxt.net Just for fun, I made it through the entire Wikipedia article and I find it interesting, how deeply one can analyze a fairytale. :-D This also made me realize that, as a kid, I never questioned why the princess was traveling alone without any servants etc.
Finally, the Danish language lacks the subjunctive. Wow! I didn’t know that.
After making three crosses (state and mayoral election) my mate and I went into the wildernes. Well, nature at least. There are heaps of people out there, too. The 13°C (and still raising) are very nice. I’m drowing in sweat, though.
@movq@www.uninformativ.de @prologic@twtxt.net @bender@twtxt.net Fuck! :‘-( I’ll never upgrade.
@prologic@twtxt.net How was the night? :-) Can the real fun begin soon?
@bender@twtxt.net I see. Other shot is also quite colorful.
@bender@twtxt.net Uuuhhhhhh, this looks incredibly nice! Did you hear anything or was it just a visual thing?
Dang, I missed an opportunity! My mate just said:
Velkom to the mechanikk press tchannel
I call it a success! (Please excuse the terrible background noise and bad audio in general. I’m not a sound engineer at all. Also, no idea why I use plural in the beginning. :-?) https://lyse.isobeef.org/tmp/5mm-dowels/
@movq@www.uninformativ.de Oh, right! I just looked at it. It’s bright. :-)
@movq@www.uninformativ.de Hurray!
Time rotate into archive feeds again.
@bender@twtxt.net Thanks, mate! These catkins are truly wonderful. So soft and fluffy to the touch. I love ‘em. :-)
I missed the 20°C on Friday, but I took profits of the 10°C this evening: https://lyse.isobeef.org/waldspaziergang-2026-03-01/
Awwwww, sooo beautiful! Handmade tiles for a tiled stove: https://www.youtube.com/watch?v=k8hBf5b99Jk