In #Magic last night, I debuted my new #Dune deck with an underwhelming performance - perhaps unsurprisingly for a desert-focused deck, I faced a real drought, starting the game with only 1 land in hand (even after a mulligan) and not pulling another land until turn 4(!). Because of our house starting mana, I wasnāt totally sunk, but everything I got out was just luck. I did die last thanks to my big wurms (so I guess I was 2nd place?), but still⦠underwhelming.
For game 2, I wanted to bring the thunder (especially after my pitiful performance last week), so I dusted off my Night of 1000 Squirrels deck (headed by the infamous Chatterfang, Squirrel General). By turn 3, the #squirrel army was forming, and thanks to well-timed casts of Fog and Make a Stand, the squirrels managed to overrun everyone just a few turns later.
Another fun night overall. I wonāt be able to play for the next few weeks, so Iām glad this one ended with a win. š #mtg
Oh man wow š® Problem 9 was quite hard š± I had to build two new functions in the Mu stdlib for computing combinations and permutations, but then the combinations of range(1000) for triples such as a + b == c is enormous! So i had to write iterator versions of these to do lazy evaluation. Anyway solution follows:
#!/usr/bin/env mu
// Special Pythagorean Triplet
import "iter"
fn usage() {
print("Usage:", args()[0], "<n>")
}
fn sqr(x) { x * x }
fn main() {
if len(args()) < 2 {
usage()
exit(1)
}
n := must(int(args()[1]))
print("n:", n)
// For a < b < c and a + b + c == n, both a and b are strictly less
// than n/2. Generate only (a,b) combinations and derive c directly. This
// keeps the search lazy and reduces n=1000 from C(999,3) = 165,668,499
// candidate triples to C(499,2) = 124,251 candidate pairs.
pairs := iter.combinations(iter.range(1, n / 2), 2)
triples := iter.map(pairs, fn(xs) {
a := xs[0]
b := xs[1]
return [a, b, n - a - b]
})
// Enforce b < c; a < b is already guaranteed by combinations over an
// increasing range, and a + b + c == n holds by construction.
triples = iter.filter(triples, fn(xs) {
return xs[1] < xs[2]
})
// Euler 9 has one answer for n=1000. find() stops the entire upstream
// iterator chain as soon as the first Pythagorean triple is found.
answer := iter.find(triples, fn(xs) {
return sqr(xs[0]) + sqr(xs[1]) == sqr(xs[2])
})
print(answer)
if answer != nil {
print(answer[0] * answer[1] * answer[2])
}
}
main()
@arne@uplegger.eu Also von da oben sieht das meiner Auffassung nach wirklich hübsch aus, da kann man echt nichts sagen. Mir gefƤlltās prƤchtig. Gut, wenn man dieser Brühe dann auf Meereshƶhe begegnet, ist das sicherlich āne andere Sache.
Yum, yum, yum. @david@daiwei.me, Iād absolutely love to taste your exploded kebab! It looks fantastic, my mouth is watering.
@movq@www.uninformativ.de Hell yeah, this is awesome! Great shots!
When I checked at the beginning, the sun was already way behind the trees. I then decided to wait until the end before leaving the house and melting in direct sunlight at 31°C. At the hill, there were around 15 people in camping chairs and on picnic rugs. Some dragged out their camera gear as well.
My first two photos were through the eclipse glasses. In contrast to others, I didnāt bring my tripod and just used a tree as a crappy makeshift one. With the large zoom itās impossible to keep it still for one second (what my cam decided to be the exposure time). Leaning the camera against the side of the tree is just not good enough.
Went 0-for-3 tonight, first time in a while. I was doing well both of the first two games, but the 3rd game⦠Well, the less said the better.
For next week, I guess itās time for the return of Chatterfang and another Night of 1000 Squirrels.
Just remember, they brought it on themselvesā¦
I finally managed to get back out disc golfing today at Vietnam Veterans Park and had a good time despite losing a brand new disc on hole 3 (on its 3rd throw ever, my glow-in-the-dark Lynx disappeared into an overgrown creek-bed and was swallowed by the underbrush). After my buddy lost a disc on hole 4, we were kinda demoralized and both threw for crap the rest of the course, but it was still a nice day to be slinginā in the sunā¦

Iām still on a deckbuilding kick, so I was thrilled that we managed to get 3 games of Magic in last night.
In game 1, my Marvel Villains deck couldnāt stand up to Doctor Whoās Missy and her army of Cybermen (and Daleks). Since someone else was playing a dark lord Sauron deck, I guess that means sheās even more āvillainousā that anything Marvel or Tolkien could offer.
For game 2, I ran my Guardians of the Multiverse deck (formerly known as The B-Vengers or Marvel Heroes 2: Electric Bugaloo). It was working well, and I had quite an army going, but I was still one turn from a win when an opponentās tribal elf deck went off, killing everyone with 19 19/19 forest-walking elves. ĀÆ_(ć)_/ĀÆ
Then in game 3, I ran my Avengers deck, and finally got the win thanks to a Heroesā Podium, a pair of Hawkeyes, and a flying, shield-wielding Captain America. Assemble, indeed.
Last night will likely be my final Marvel-only game night for a while. I still need to test the decks out some more, but theyāre basically complete (I donāt currently plan on adding any more cards to them). Plus, while Iām on this kick, Iād like to finally finish my Sauron deck, and Iāve got some cards on order for both a Dune-themed deck and a couple of decks inspired by the old-school Beatdown Box.
Richtig geniale Vorstellung von mittelalterlichen Instrumenten mit Hƶrproben: https://youtu.be/mrAq5WLU91I
Klingt groĆartig. <3
@movq@www.uninformativ.de I understand. Take a break and bear up! Still looking forward to any of your stuff. :-) Thank you very much for all the great things I learned from you and wonderful conversations we had. In a while, crocodile. :-)
@david@daiwei.me if you have some weekend home type place, with no Internet, getting TV through an antenna and a DVBT box, my recommendation is to just buy some old Dell monitor with HDMI to 3.5mm audio output built in, so you can connect speakers to it.
Doesnāt have to be Dell, but you can often just buy one of those from your employer, for under $25 here.
Were this sadly makes much less sense, in with Internet TV services. Those usually need a dedicated TV app to function and while that can be replaced with a $200 TV box, that some providers force you to rent, thus making you pay more for your Internet TV forever - this also means giving up the āarchive appā, that gives you access to all the on demand content, included in the price of your mandatory TV license. None of these overpriced boxes come with it, as theyād mauch rather make you pay, for yet another subscription service instead.
So yes, you can kinda do it with an Internet TV too, assuming you trust the expensive box to not spy on you, but in that case youāre mostly just paying a whole lot more, for a lot less, than you would be, with the LG TV.
Fuck me dead, how cool does this knive handle made from honeycomb and epoxy look!? :-) https://www.youtube.com/watch?v=4ZDLkqVoK5w
Does this seem right to you so far @david@daiwei.me ? š¤
2026/07/18 02:55:52 sync-reaper: observe-only pass ā 1145 namespaces, 3 anchored, 1089 undatable, 0 idle candidate(s), 0 reaped
So far only 3 users of the Twtxt App have achieved their device settings with a recovery key? š
@prologic@twtxt.net twet 1.3.0 built from v1.3.0-21-gff43ee0 at 2025-08-25T23:27:41Z, from https://github.com/quite/twet. Unmaintained since 2020. To be honest, I was considering writing a basic client of my ownā¦
I trip over this in our code at work all the time.
Python has this concept of āpropertiesā:
class Oink:
def __init__(self):
self._foo = 3
@property
def my_property(self):
return self._foo
a = Oink()
print(a.my_property)
my_property() is a method but it can be used as if it were a field.
This can also be used to define a setter:
class Oink:
def __init__(self):
self._foo = 3
@property
def my_property(self):
return self._foo
@my_property.setter
def my_property(self, value):
self._foo = 123 * value
Because, for some reason, Python people donāt like getters and setters. Instead, they hide it behind a property.
The result is, when you read this:
a.my_property = 5
print(a.my_property)
You have no idea that this actually calls a method.
@GabesArcade@gabesarcade.com The no-JS part is one thing, but you also have to disable the (nowadays common) forced-HTTP-to-HTTPS-redirect, because those old browsers canāt do modern crypto. And make sure that your webserver serves the correct page even if no Host header is sent by the client. And donāt even think about serving UTF-8 or even just putting utf-8 in the content type. š
And for the JPEG thumbnails I pass a special flag to ImageMagick so that IBM Web Explorer from OS/2 wonāt trip. 𤣠And always use link rel="stylesheet" for CSS, because some browsers render inlined CSS as literal text. And ⦠probably more that I forgot by now. š
@david@daiwei.me Not sure, actually. Letās see. Those are the ones where I still have the original disks (or have bought them on eBay again):
- SuSE Linux 6.4 (itās a massive 7 CD distro with a huge manual, best thing ever)
- OS/2 2.1
- OS/2 Warp 3 (red and blue spine because
$reasons)
- OS/2 Warp 4
- PC DOS 7
- MS-DOS 6.22
- Windows 3.1
- Windows for Workgroups 3.11
- Windows 95 C
- Windows 98
- Windows NT 4 Workstation (still in the mail, though š
)
- Windows 2000
- Windows XP Professional (last Windows I ever used on my private PCs)
(Plus a few āclassicā office products as can be seen here: https://movq.de/blog/postings/2024-05-23/0/POSTING-en.html )
Okay, wow. Windows NT 4 wasnāt part of my timeline back then, so this is the first time Iām seeing it in action. And this thing came with IE 2, which Iāve also never seen before. (Thatās interesting, because I remember using IE even on Win 3.x, but apparently that was already IE 3?)
It also makes me really happy to see my website work in these old browsers. Fullscreen images are ābrokenā because those are PNG or WebP, but the rest works just fine. š„³
For game 2, everyone else brought out bigger guns - tribal dragons, tribal giants, tribal spiders (led by the completely broken Cosmic Spider-Man), and Atraxa (equipped with Captain Americaās shield, no less), while I ran my new (also unlisted) 5-color tribal Super Villains deck (fronted by the Super Skrull). Although I got off to a slow start, it kept me mostly under the radar, allowing me to ultimately win with the Villains by goading everyone elseās creatures into attacking each other on one turn (via Maximum Carnage), and then killing off the remaining players over 3 combat phases on the follow-up turn (Full Throttle).
Boo-yah!
Twtxtory v0.0.3 supports Twt Hash v2 Extension š¾
i wish we could private message on here
Java 1.3 on Windows 95 with Proton as the editor could be another option for next Advent of Code.
Win95 runs pretty smoothly on my old box (no surprise, that box came with Win95) and I like Java, so ⦠why not ā¦
Not sure about the speed, though. š„“

@lyse@lyse.isobeef.org This apparently depends on the program now ⦠Some Qt6 programs still allow that, others donāt. I canāt remember if GTK ever had that feature. š¤ But yeah, this whole āmove stuff around as you pleaseā-mentality is mostly gone.
I know I keep referring to StarOffice 3.1 a lot, but itās just such a good example for all these things. All the toolbars and panels could be rearranged:

(This is running in Wine, btw.)
LibreOffice is the descendant of StarOffice and it doesnāt support anything like that anymore.
Maybe it was deemed too confusing for users? āOh no, I mis-clicked something and now that bar is gone! How do I get it back? I donāt even know what itās called!ā š¤
@movq@www.uninformativ.de iām tired too
Ran 3.25 km, started about an hour after sunset. Felt good but stopped there because it is so hot and humid.
@movq@www.uninformativ.de It is horribly hot and humid here, and is not even 08:00. AC ran overnight for 3+ hours. It is going to be hellish, not going to lie.
Your birthday, or someone elseās? Either way, happy birthday! š„³š May many more years come, with good health⦠and less heat! āŗļø
Happy Summer Solstice and/or Fatherās Day, to those who celebrate.
I spent mine setting up a gift from my wife, a Govee TV Backlight 3 Lite, and then watching a couple of movies that really brought the colors out: Flash Gordon (1980) and Dune (2021) (with Rifftrax commentary).
Iād call that a good day.
How truly wonderful! I went out tonight and the first thing I noticed was the temperature drop. It felt actually quite pleasing. What a welcome surprise, I didnāt expect that at all. It was warmer in the forst than between the fields. The tiniest breeze helped to cool off the surroundings I think. Right now, the temperature shows 23°C. Itās supposed to reach 18°C at 5 in the morning before it rapidly shoots through the sky again.
When I left the house I even saw the very end of a nice sunset. A bat was around, too. The several thousand fireflies delivered a fantastic show. Itās such a pity that I cannot show this to you. :-(
There were many frogs or toads around. Luckily, the light tan gravel road made for a good constrast to the darker hopping amphibians. So, I spotted them just in time. No animals were harmed.
The moon was out and lit up the scenery. I was perfectly chasing my own shadow for several hundred meters on a forest road. I had the moon right in my back. That moon light shadow felt magical. <3
It must have set a new record on picking up spider webs along the way. The threads around arms and legs always feel quite yucky. People were blasting music somewhere in town. You could here that noise in the entire forest. I found that rather annoying. All street lamps are operational again, so I got already blinded right at the entrance to the town. But other than that, this was a very nice evening stroll. Totally recommended. Already looking forward to tomorrow. :-)
Ran 3.25 km ( 2 miles ) at the lake but it was 30 degrees ( yes I use Celsius ), sunny and humid.
@lyse@lyse.isobeef.org It was before my time as well. 3.0 was my first. š
But itās Windows, it doesnāt have a place in my heart.
The older I get, the more Iām glorifying anything pre XP. š But thatās only because everything today is so horrible.
Well, not anything pre XP. 3.0 or newer would be nice, because Windows 2.x was still pretty bare bones:
(OS/2 was great, though, except for the lack of a good file manager.)
@lyse@lyse.isobeef.org In what way was KDE 3ās menu organized? KDE 1 is the only KDE version I ever used. š Weāre talking about this one, right?
Isnāt Notepad++ and Python cheating!? :-D
Well, Python was certainly already a thing back then, but Notepad++ is from 2003, right. I think I used https://www.wintotal.de/download/proton/ at the time? Maybe? I donāt know. š
@movq@www.uninformativ.de Regarding https://movq.de/blog/postings/2026-06-16/0/POSTING-en.html:
In my opinion, the KDE 3.5 menu was organized way better than the Windows Start menu. Granted, a typical KDE installation had much more applications to offer, too. So, there was more need to get it right. And it probably was also later in time.
Isnāt Notepad++ and Python cheating!? :-D
Crazy story on the clockās seconds. I never heard of that before. Neat.
Yeah, UI these days is horrible. (Thatās why my own TUIs suck, too!)
In Magic today, the Phyrexian Invasion failed in the first game, but the second game was EPIC!
I played my (unlisted) Dragons 2: Draconic Boogaloo deck, andā¦
Turn 1: Nothing special
Turn 2: Miirym (when a dragon enters, copy it)
Turn 3: Tiamat (choose 5 dragons from deck, put in hand)
Turn 4: Klauth (when dragons attack, create mana equal to their total power)
I attacked with all 5 dragons, which made 28 mana x2 = 56(!) mana.
Then (still turn 4) I played Scourge of Valkas (when a dragon enters, deal damage to target equal to number of dragons) + 5 other dragons, dealing 6 + 2 x (7+8+9+10+11+12+13+14+15+16+17) = 270(!) direct damage (more than double enough to kill the other 3 players).
Damn fine win, if I do say so myself.
Every now and then, I think that I have carefully proof-read my message enough times and hit the āAdd messageā button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up ttās cache. This is rather tidious:
- Recall the
sqlitebrowser ~/.local/share/twtxt/tt2.sqlitefrom my shell history.
- Switch to the āBrowse dataā tab.
- Go to the
messagestable and wait a second or two until itās loaded.
- Sort by the
created_atcolumn twice, so that I get descending order.
- Select the first message, which is typically the one in question.
- Find the āRemove currently selected rowā button in the tool bar.
- Commit the changes.
- Close sqlitebrowser.
So, I finally implemented the removal of messages from the cache in tt. I can now hit d and confirm the removal. Bam! Should have done that ages ago!

Next up is the search, I think.
testing 1 2 3
I am about to start working on #IndieConnector version 3, and I need your help! In this post, I describe what I plan to change and would like your feedback and ideas. So if you are a user or you want to use it, please let me know what you would expect from the new version.#kirbycms #getKirby https://maurice-renck.de/blog/2026/planning-indieconnector-3
@movq@www.uninformativ.de I really like your style of writing, btw. Itās much calmer and less aggressive then mine. :-) When I turned my bullet points into paragraphs, I got a bit mad in the process.
Sure, feel free to include anything you want. Regarding citing, this is where twtxt falls short in my opinion. Especially with feed rotation, classic links die quickly. Message hashes only help so much. Nobody outside the twtxt universe knows how to deal with them. So, not perfect for inclusion on a web page. Linking to a thread or message on some yarnd instance might be the more user-friendly option. But the disadvantage is that itās ājustā a mirror, not the primary or original source. In all reality, this could be considered splitting hairs, though.
I should have probably written a proper article. That would have given me time to review the result more carefully, too. ;-) Perhaps thatās something for the future. But honestly, Iām not sure if I really want to waste my time and energy on that subject. So many other fun or useless things come to mind right away that I could do instead. 8-)
So, yeah, do whatever feels best to you. I donāt mind being cited or linked, but I also donāt mind not to be cited or not to be linked to. :-D Not a helpful answer, I know. Sorry. ;-) But anyway, thanks for asking, mate! I do appreciate it.
To finish my thought, linking to my frontpage is probably also useless, since I deliberatly do not have a table of contents there. In fact, my entire frontpage is rather silly.
@movq@www.uninformativ.de I only had 3.5ā disks.
@movq@www.uninformativ.de Great find! Other than a couple of games I bought over the years, my 5.25ā disks were always dark grey / black.
And 3.5ā disks were another matter entirely⦠š
hello everyone, I wish you a good day <3
Interesting read on the ECONNRESET saga, @movq@www.uninformativ.de. Thanks for the writeup! <3
Iām pleased to announce that express-twtkpr (my ExpressJS library for hosting, editing, and posting to a twtxt.txt file) continues to crawl towards a full release with another (pre-alpha) update published to NPM. This update includes a whole new plugin system, and even a (little) more documentation. Check it out, if you dare (and use it at your own risk): https://www.npmjs.com/package/express-twtkpr
And speaking of plugins, hereās where the funās at: announcing express-twtkpr-core-plugins, a set of 3 plugins for your TwtKpr install: emojiButton, uploadButton, and postToMastodon. Like express-twtkpr, this set of plugins is still in pre-alpha, and lacks documentation, examples, tests, installation flexibility, or polish (so also use them at your own risk). Other than that, they work great: https://www.npmjs.com/package/express-twtkpr-core-plugins



Stay tuned for more! š¤
@movq@www.uninformativ.de oh no! I hope u get well soon <3
@lyse@lyse.isobeef.org green or not, it is lovely. So effortlessly perked at the top of the tree! Ah, if only we could see the world as birds doā¦! <3
@prologic@twtxt.net Oh yeah, very beautiful! I can hear the roaring of the waterfall and like to be there, too. The first shot makes it look like youāre in the middle of a cave. :-)
I completely forgot, I saw my very first badger in the wild the day before yesterday. :-) That was absolutely cool! <3
I heard something comparatively large rustling in the bush right next to me and thought that it must be dear. Naturally, I stopped and tried to see whatās in there. The rustling went up the bank and it suddenly came down again towards the road I was on. Thatās when I first layed eyes on it and identified it as a badger. For a split second I thought that itās going to get after me and was ready to get running. But it just hadnāt noticed me yet. When it eventually spotted me, it froze for a few seconds and ran off uphill. My camera took too long to boot, so it was already gone by the time the photo machine was good to go.
@lyse@lyse.isobeef.org thank you <3
@prologic@twtxt.net @movq@www.uninformativ.de @bender@twtxt.net Thank you very much! <3
I only filtered out the noise floor of the camera itself. I selected one second of āsilenceā in Audacity and used the āEffectā ā āNoise reductionā (Rausch-Verminderung in German) dialog with its default settings. I repeated that two or three times in total with different sections of āsilenceā. Itās very hard to find something where there is really no other bird singing in the background. But in contrast to the original audio, the edited version is noticeably more squeaky I find.
Oh, and I increased the volume. Especially after the noise reduction, everything is a bit quieter.
I got rather lucky, only a few cars went by and my microphone is too shitty, to really pick it up. :-D Itās kinda drowned out by the background noise. 45 seconds into the video, a car passes. Also at 1:10 without a doubt. Iām sure there were actually many were. Most of them passed behind me, the mic is facing away from that sound source. Of course, the densely built-up area still reflects a lot.
It also helped that Azabache is a loud singer himself. Fortunately, no idiots screaming either.
If you want to compare yourself or play around to see what other improvements you are able to achieve, I uploaded the original from the camera in the same directory under the lovely name DSCN5687.MOV. Itās 236.1 MiB in size.