It just happened with twtxt.net as well! 🥳
It’s the little things that make me happy these days. Like adding a function to search for text with various encodings to my hex editor. All neatly organized in the menu and with accelerators.
Just saw it happen on Mastodon, so I think that scrolling is simply broken in Firefox. ☠️
FTR, also happens with Openbox on X11 and with labwc on Wayland, so this isn’t related to my custom X11 window manager.
Oh god … this appears to be related to the input device? Using the scrollbar is fine but using the mouse wheel is not? https://movq.de/v/66db24e1ee/vid-1787378419.mp4
Emptied the CSS, removed the <meta name="viewport" content="width=device-width, initial-scale=1">, now it’s just plain HTML and it still happens.
There is this extremely annoying issue with my website:
https://movq.de/v/4acced3c8e/scroll.mp4
Notice how I’m scrolling, then switching to another tab, switching back, and then the scrolling position is different?
What the hell could cause this? It’s not always like this and I have only seen it in Firefox so far (but I very rarely use Chromium anyway), and this really happens a lot on my site but not on others.
Any ideas? Did I screw up the CSS somehow? 🤔
@arne@uplegger.eu They’re everywhere, send help
@arne@uplegger.eu Einfach so als Wahlergebnis verkünden. Dann denken die alle: „Ach, Mist, wie blöd, schon zu spät, na dann muss ich ja nicht mehr hin.“ Fertig. ✅
@lyse@lyse.isobeef.org Oh yeah, going full Prinzessin Müllabfuhr! 🥳 👸
@lyse@lyse.isobeef.org I don’t do it that often, either. But when I do, I always wanted to have such a tool. :-) And since it turned out super easy to “implement” … Why not.
@lyse@lyse.isobeef.org These look extra great with redshift enabled. 😅
@lyse@lyse.isobeef.org Not that often – except for the last few months. 😅 I was reorganizing lots of repos, merging them, splitting them, changing author names, whatever. Having an empty root commit was super handy (if there was one).
@thecanine@twtxt.net haha https://en.wikipedia.org/wiki/Don%27t_be_evil
Website might come back soon, although probably mostly unchanged. I have no idea how to stop the bots. 🤷♀️ So I’ll just gonna live with it? Is that the key to happiness™? 🤷♀️
@arg@twtpub.com ohai
@david@daiwei.me Next year, apparently, but less spectacular. 🤔
@lyse@lyse.isobeef.org Nice! Oh yes, observing the sun is exhausting, it’s always so hot. And for not using a tripod, these shots are pretty good!
Solar eclipse: https://movq.de/v/25e6071e0c/
The author of the Xfce Wayland compositor on LLMs:
https://www.spurint.org/journal/2026/07/llms-and-xfwl4
He openly admits that he’s totally aware of the issues. But he simply doesn’t give a fuck.
This is (part of) why this whole AI/LLM topic makes me so sad and angry: Many people in tech are such a disappointment. You’re smart and intelligent, but you don’t give a fuck about anything. “It’s just a tool.”
@itsericwoodward@itsericwoodward.com It only did that after I asked it what’s going on. Before that, it treated all my attempts as regular trustworthy (but silently “corrected”) sources. Only a completely garbled up page (all words put into random order) was recognized as garbage. Everything else was: “Hey, that’s a good source! Here’s a summary: $correct_summary_with_original_meaning_even_though_the_actual_page_said_otherwise”
I hate having my website offline, so I tried to bring it back in a honey-potted version: “AI” agents get served article versions with inverted meaning, like “do” replaced with “don’t” and so on.
It didn’t work. Claude noticed it and “fixed” it back to the original version. When I asked it, “wait, nowhere on the page does it say $string, check again”, it said:
This is the creepiest shit ever. Silently “fixing” stuff behind my back is the epitome of untrustworthiness.
Open the bay doors, HAL.
@david@daiwei.me Sorry, I can’t do this anymore. A large part of my work (text, code, thoughts, …) of the last 20-25 years has been stolen and is now being sold at rampant prices to idiots who then complain about me being a backwards bitch (I get to hear this every single day). Everything I say and do in public is being abused.
Fuck that, I’m out.
I give up.
@lyse@lyse.isobeef.org That sounds pretty elaborate. We did something similar last year (when this stuff still mattered, lol), but it was super easy to spot.
And then there was this, of course:
🤣@thecanine@twtxt.net This is brilliant, I love it. 😃
@lyse@lyse.isobeef.org Hmm! I expected worse. 😅 (Never heard Czech in person.)
@prologic@twtxt.net I only have one potential machine for this: My old netbook. I don’t want to accidentally brick it, though … 😅 It was scary enough to run my own OS on this.
Aber Auslöffeln werden es trotzdem wieder ganze andere Leute müssen. Wie immer. Das ist das bittere an der Sache. Trifft immer die Falschen.
Prinzessin Müllabfuhr. Den Namen mache ich mir jetzt zueigen. Mich dagegen wehren kann ich eh nicht. 😐
Kollege meinte mal halb sarkastisch, irgendwann werden Firmen dann wieder Menschen einstellen, weil die billiger sind.
Wir gehen teilweise von Cloud-IaaS-Hostern wieder zurück zu Hardware, weil das billiger, flexibler, schneller ist … Derzeit zumindest. Die Cloud-Hostern kommen mit dem Nachkaufen von RAM nicht hinterher, sodass ständig „die Cloud voll“ ist. (Und, ja, natürlich wird sich darüber heftigst aufgeregt, aber dass das genau am eigenen Verhalten, nämlich der religiösen Liebe zur AI, liegt, merken sie nicht.)
Es ist auch jedes Augenmaß weg. Die „fette“ Kiste mit 64 CPUs, 256 GB RAM und 2 TB Platte wird nach allen Regeln der Kunst vollgekleistert. Irgendein Furz-Workload braucht 24 GB RAM, aber das ist jetzt normal und wird akzeptiert. So ist das jetzt halt.
@prologic@twtxt.net Just out of curiosity, have you ever ran this on real hardware? 😃
Hm, interesting: https://git.mills.io/prologic/muos/src/branch/main/nucleus/nucleus.asm You’re clearing the VGA buffer in each mode (real mode, protected mode, long mode). Why’s that? Wouldn’t it be good enough to only do that after you’ve reached long mode? 🤔
Germans love consonants – and it’s the opposite with Scandinavian languages, isn’t it? 😅 This is so crazy for me to listen to:
Love me some Finnish:
@lyse@lyse.isobeef.org Ja und auch so: „Raus mit den Entwickler:innen! Das Marketing macht seine Software jetzt mit KI selber!!1!“ Kannste dir alles nich ausdenken. (Jaja, ist natürlich im Moment billiger. Aber diese Kurzsichtigkeit …)
Ich könnt’ so platzen ob des ganzen Vibecoding-Schrotts, der dann jetzt doch wieder vor meinen Füßen landet …
Alles so vorhersehbar. Mann, ey.
@itsericwoodward@itsericwoodward.com lol! “Yeah, it was me. What you gonna do about it? Hm? Hm?” Cats. Typical arrogant cats. 😂
@lyse@lyse.isobeef.org Pretty good! Had an apple, too. 🤣
@lyse@lyse.isobeef.org Ha! 😂
@lyse@lyse.isobeef.org I also got up at 5 (I always do 😅) and went on a quick stroll around 6:30, but boy, that was chilly. So I said to myself: Screw that, I’ll try again later.
And now we’re at 32 °C. 🤣
muos/amd64 that boots into a running shell, with a tiny little vfs, UNIX-like semantics, syscalls, read/write, etc. It works pretty nicely, and aside from a small Assembly "nucleus", most of the Kernel and Userspace is written in Mu.
@prologic@twtxt.net Yeah, sound impressive, I gotta try this. 👌
Next heat wave coming up?
Still a few days to go, luckily, and these models aren’t super accurate … we’ll see …
@lyse@lyse.isobeef.org Ruff, the formatter/linter, yeah.
Lol, never heard of that banana moment before, but it sounds very fitting. :-D
No wonder. I just made that up. 🤣
Why.
Python’s numeric types complex, float and int are not subtypes of each other, but to support common use cases, the type system contains a straightforward shortcut: when an argument is annotated as having type float, an argument of type int is acceptable; similar, for an argument annotated as having type complex, arguments of type float or int are acceptable.
https://typing.python.org/en/latest/spec/special-types.html#special-cases-for-float-and-complex
(Wieder so ’n „soll ich’s einfach lassen und lieber ’ne Banane essen“-Moment.)
Bonus points for this:
$ man ruff
No manual entry for ruff
I am sooooooooooooooooooooooooooooooooooooooooooooooooOOOOOOOOOOOOOOoooooooooooooooo tired of “fast-moving” software. ruff changed a ton of stuff and now all my code bases “need fixing”. Blah.
And SemVer is worth nothing if your 4 year old program with over 16’000 commits is still at “version 0.x”. Blah!
Everything is horrible.
For the tags feed it would be cool to include the actual changelog entries
Did that now:
🥳
@lyse@lyse.isobeef.org Bingo!
Oh, yeah, newsboat is good. For this particular use case, I explicitly needed a graphical feed reader, though. 😅 I ended up using Thunderbird, which has its own interesting way of configuring/adding feeds:
https://movq.de/v/a3557e3dc9/vid-1784952576.mp4
Why are feeds categorized as “Mail”? What’s going on with that “Add” button on the left of the dialog? Why does the dialog indicate that there’s a folder called “list-files Recent Commits” which doesn’t really exist in the end? (Why does it take about 1-2 seconds to load 25 feed items?) And so on.
Tell me which one of those “plus” icons on this screenshot you can click and which one is just decoration.
FFS.
@lyse@lyse.isobeef.org Hats are back, aren’t they? Lots of people wearing hats these days, like, the big ones. 🤔
06.jpg looks like it’s from another planet. 😅
@klaxzy@klaxzy.net Hey, sounds exactly like the company I work(ed) for.
@prologic@twtxt.net Our company is paying a shitload of money for all these (different) AI tools … I’m probably not allowed to tell you the exact number, but it is a lot. The only other way would be to lay off employees, so we can pay even more for AI. (Needless to say, that would be the worst possible move.)
For a private person, $20 a month is also pretty expensive, isn’t it? And then assume that you maybe need more than one AI tool. You’re quickly up to $50 a month or much more. This isn’t something that I, as a private person, will ever be willing to spend for this kind of stuff.
“AI” is just expensive as fuck. On every level. They will have to (ab)use every possible way to squeeze more money out of it, and that includes ads and what not.
@prologic@twtxt.net This was to be expected and I’m glad that it’s finally happening. I seriously hope that AI/LLM output gets swamped with advertisements or unwanted code, so people see what they have gotten themselves into, especially the “vibe coders”.
@david@daiwei.me You might have ended up loading the page in an unfortunate moment while I was reworking it. 😅 The CHANGES file is there, in the browser:
@lyse@lyse.isobeef.org Yeah, the feed names are legacy and I didn’t want to set up redirect rules. (I can’t really tell if anybody actually uses them …)
Extracting the info from the CHANGES file would be nice. Maybe I’ll add that. :-)
I’ve stopped providing tarballs for branches now. This was pretty pointless, I think.
@david@daiwei.me Is this better? 🤔 Pretty hard to keep this concise but also not miss anything. 🤔 https://movq.de/git/jenny/
@david@daiwei.me Oh, that is a good idea. This could be included here, yeah. 🤔
Hmm …
My project pages have this “Downloads” section and I offer tarballs for each release:
https://movq.de/git/jenny/#downloads
I added this many years ago because an OpenBSD dev asked for it (but the project in question didn’t end up in their ports after all).
What are your thoughts on this? Is it necessary to offer tarballs?
I noticed that some distributions have already moved away from using tarballs and instead always clone from Git. 🤔
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
@prologic@twtxt.net Oh, yes, just for clarity: This wasn’t a “pro GitHub” argument. 😅 I won’t go back there (or to another “forge”).
I think we’re totally on the same page: Decentralized Git hosting is good, but we haven’t solved the “collaboration” part yet. Or rather: We have to modernize it. The tools are already there, but (many) people don’t want to use them and think they’re clunky.
@dce@hashnix.club Yeah, but I haven’t looked into this specific issue. I am very much anti-AI, but this particular thing might be human error. I don’t know.
@lyse@lyse.isobeef.org Oh, I’m sure they’ll keep hammering dead URLs for many years to come. These crawlers are 100% brain dead. And they don’t even need to be smarter, because they still grab valuable stuff left and right.
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
How many tickets and merge requests did you get before moving to your own server?
Hm, these were probably some of the more active projects:
- https://github.com/vain/lariza/issues?q=is%3Aissue%20state%3Aclosed
- https://github.com/vain/pdfPres/issues?q=is%3Aissue%20state%3Aclosed
- https://github.com/vain/xiate/issues?q=is%3Aissue%20state%3Aclosed
So it’s not a ton of stuff and there are many “issues” I opened myself, but it’s certainly more than these days.
Haven’t used
git send-emaileven once. I definitely have to look into that soon. Wanted to do that for several years. I typically upload the patch to my server and send a link via IRC.
git send-email is good for sending patches to a mailing list (because then the individual patches can be discussed easily), but since those are dying out as well, it loses its appeal. If you want to send patches to a single person, just sending the link to your repo is far easier. 🤔
@lyse@lyse.isobeef.org Oh dear, that’s cute. 😃
I’m seeing some slowdowns in Vim lately. Must have something to do with syntax highlighting or indentation rules or something: When I hit Enter to go to the next line, it sometimes freezes for like 100 ms. It’s pretty annoying.
Doesn’t happen in Vim Classic, so I switched all my machines to that now.
@lyse@lyse.isobeef.org Thanks. 😅 Yeah, I already found it slightly annoying myself. Let’s see how the bots respond to the new situation. 🤔
@prologic@twtxt.net Hmmm, I have no idea how to solve that problem. 😅 Some jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
I thought I had made that super easy, because you can just send me an email – no sign-up process, nothing. But that’s way too old-school, people don’t know how to use git format-patch (let alone git send-email) and they also don’t understand that they can just send me a link to their forked Git repo (which can be hosted anywhere). Git is super flexible and powerful, but those features are hardly ever used.
Maybe people even need some kind “reward”, or “fame”. Like those “achievements” that you can unlock on GitHub. (Something to put in their CV … ?)
Are you aware of the Residential Proxy pest?
https://spur.us/blog/smart-tv-apps-residential-proxy-sdks
This explains the access patterns that I see in my logs.
It’s funny, because I used to warn years ago that this might happen, and then I lost track of this topic. Now here we are and it’s a real issue. 🤦♀️
@prologic@twtxt.net Which is? 😅
Okay, so this is live now under https://movq.de/git/. („Kurzen Prozess gemacht.“)
@lyse@lyse.isobeef.org A small portion of people might do the headphone thing because of autism or sensory issues, to isolate them from annoying noises. I used to do that myself. 🤔
Okay, so, my website also includes my code / git repos, and those are made browsable by stagit. What I don’t like about this (these days) is that this includes all the diffs of my commits. In other words: All my code.
This makes it super easy for malicious crawlers to slurp up valuable data. I don’t like that.
I’m thinking about switching to this instead:
It still shows project infos and there are Atom feeds, but to get the code, you have to actually clone the repos.
🤔
(If you spot any bugs, let me know.)
@lyse@lyse.isobeef.org I was wondering for an embarrassingly long time why my NAS wouldn’t boot. (The main power supply switch was turn off.) 🤪
Falls sich hier noch jemand fragte, was genau mein Humor ist:
https://sueden.social/@DerSash/112366647794794897
Das Gegenteil von Erbse ist Verdiense.
@lyse@lyse.isobeef.org Das ertrag’ ich wahrscheinlich nur auf Mute. Scheiß Lärm. 🤣
Note to self: If you turn something off, this means it is not on.
@lyse@lyse.isobeef.org Stimmt, das hatte ich völlig vergessen. Gab da mal diese Zeit, in der „Forenbeiträge“ die Pest waren. 🤔 Da ist sie also wieder, die rosarote Nostalgiebrille. 😅
@prologic@twtxt.net @itsericwoodward@itsericwoodward.com “Enterprise” Java ruins everything, eh? 😅 I only did that very briefly, luckily.
Das jüngste Posting im Shell und Programmieren-Forum bei ubuntuusers.de ist jetzt 1.5 Monate alt. 😢
Was hab’ ich dieses Forum früher geliebt. Aber das Medium ist einfach tot, niemand ist mehr an so einem Austausch interessiert …
@lyse@lyse.isobeef.org It reads a lot nicer, yeah. And you can do oink.my_property += 1 as well, for example.
@lyse@lyse.isobeef.org Good question, I don’t know yet if the standard library has been extended a lot. 🤔
@prologic@twtxt.net No. After the cutoff-date, hashes are expected to be v2. End of story.
(In jenny, a twt can only ever have one thing that can be used for threading.)
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.
@david@daiwei.me The stuff in parens is lost on yarnd:
@david@daiwei.me Yeah, Oracle is a Dumpster Fire, that’s true. 🫤
Does yarnd still support the old “threading”? Let’s see.
I really think I should go back to Java.
Writing programs in Python is so exhausting. I want a compiler and I want static typing. No, linters and type checkers and IDEs are not good enough. Compilers catch way more errors in advance.
Rust is also exhausting. They’re constantly adding language features and, at the same time, the runtime library remains tiny and you need 3rd party libraries for everything. Many of those are still at version 0.x (SemVer!) and you can’t rely on anything. Often times, you need the latest Rust nightly compiler.
Go is … I don’t like it. And huge binaries.
I like C as a language, but it’s too fragile. I want to have a proper HashMap every now and then.
None of the above have good GUI libraries, at least not on Linux.
And then there’s Java. This is my fractal renderer that I wrote over 17 years ago:
https://movq.de/v/fcd3c4e557/vid-1784121825.mp4
It’s fast. It has a GUI with custom widgets and those weren’t even hard to make. It still works without changing a single line of code. The source code files have timestamps from 2009 and I just noticed that the JAR file I’m using in the video was compiled in 2010.
Java as a language is relatively easy to learn and to master. There are few surprises. The source code organization with packages is good. Java API docs are clear and well written.
The JVM ramp-up times have improved considerably:
https://movq.de/v/e7314e521e/vid-1784121998.mp4
This isn’t like the Dark Ages anymore. Might even be usable for some CLI tools.
The only thing where Java really sucks is anything close-ish to the kernel. Try issuing an ioctl() … I couldn’t have made my TUI framework in Java, but then again, I wouldn’t have needed to because Swing already exists and it just works.
@prologic@twtxt.net See, that’s what edit/delete is good for. 😅🤪
@david@daiwei.me That’s a good thing. I still use it heavily, but I also realize that it is addictive. This whole idea of getting likes and boosts is horrible. Seeing “number goes up” is inherently addictive design, if you ask me. This should never have been added to a Free Platform like Mastodon, and I’m glad that twtxt doesn’t have anything like it.
local means it only stores this stuff offline. So they claim. I don’t trust this and I don’t want to go anywhere near it.
@lyse@lyse.isobeef.org Yeah, okay, the default being local means it only stores this stuff offline. So they claim. I don’t trust this and I don’t want to go anywhere near it.
@prologic@twtxt.net It’s from Gabe’s feed: https://gabesarcade.com/twtxt.txt
Yeah, lol, fuck off. Tried to reproduce that hashing issue, thus playing around with Go a little bit. And what did I find?
$ tree ~/.config/go
/home/user/.config/go
└── telemetry
├── local
│ ├── asm@devel-devel-linux-amd64-2026-07-14.v1.count
│ ├── compile@devel-devel-linux-amd64-2026-07-14.v1.count
│ ├── go@devel-devel-linux-amd64-2026-07-14.v1.count
│ ├── link@devel-devel-linux-amd64-2026-07-14.v1.count
│ ├── upload.token
│ └── weekends
└── upload
4 directories, 6 files
It collects and uploads “telemetry” now.
No.
(Don’t tell me how I can turn that off. Not interested. This is a compiler and it wants to track me, without asking for consent. That’s a no-go.)
@david@daiwei.me It really is almost impossible to debug these hash issues. Only thing I can do is some trial-and-error, to see if I somehow end up at pmrf6ftxsdhr instead of ksou5aqw7w5a. So far, no luck. 😅
@kat@yarn.girlonthemoon.xyz Welcome back 🥳
Back at 29-30 °C in my apartment. 🥳🙄
@david@daiwei.me This is another dangling thread:
Trying to fetch "#kyjhiwcxeknm" from Yarn pod https://txt.sour.is ...
Trying to fetch "#kyjhiwcxeknm" from Yarn pod https://twtxt.net ...
Twt could not be found
@david@daiwei.me The one with www is correct: https://www.uninformativ.de/twtxt.txt is the canonical URL used in the url = metadata field. (For historical reasons, it also works without www and even with http.)
@david@daiwei.me Ah, edits. Okay. Let’s hope that it’s all fixed then. 🤞
… this came off more snippy than I wanted it to. Sorry. 😅
Good morning. I’m seeing so many broken threads. You’re still investigating this, right?