@movq@www.uninformativ.de Cool! :-) I just implemented a workaround for the time being.
@movq@www.uninformativ.de I noticed that your feedâs last modification timestamp was missing in my database. I cannot tell for certain, but I think it did work before. Turns out, your httpd now sends the Last-Modified with UTC instead of GMT. Current example:
Sat, 03 Jan 2026 06:50:20 UTC
Iâm not a fan of this timestamp format at all, but according to the HTTP specification, HTTP-date must always use GMT for a timezone, nothing else: https://httpwg.org/specs/rfc9110.html#http.date
@movq@www.uninformativ.de Letâs hope they find the guys who fired that rocket onto the balcony and we actually get a fireworks ban.
@prologic@twtxt.net Very impressive! :-)
@movq@www.uninformativ.de Very nice! We also had some snow this morning, but itâs already melted. And the sun is missing, too. :-D
@movq@www.uninformativ.de Wow, thatâs sick! :-)
@movq@www.uninformativ.de Iâm pretty sure I know a bunch of people who love to blow up their money. :-(
Holy shit! :-O At least, the walls didnât shake here. But we also had some very loud explosions, maybe they were far enough away. :-? Of course, the bangs continued last night.
Maybe some politicians need to be personally attacked with this sort of shit first in order to ban it once and forever.
@shinyoukai@neko.laidback.moe @prologic@twtxt.net Yeah, itâs been ages that I came across Trac. :-D
The only good thing about this absolute craziness is that I can restock my rocket sticks. I picked up twelve along the way. Unfortunately, it looks like 99.999% of ammunition is bombs instead of rockets. Some sections of my street look exactly like an arbitrary Pakistanian town that Iâve seen online.
There was surprisingly much snow in the woods. Also, all ponds have frozen over. I didnât expect that. Not at all. There were even illegal ice skating tracks in the natural reserve. We came across a large puddle and it was at least 10cm solid ice to the ground. Crazy!
fib(35) doesn't regress too badly as I continue to evolve the language.
@prologic@twtxt.net Not bad for a start, ey! Looking forward to see you going down these rabbit holes and opening one can of worms after the other. :â-D Very, very impressive, hats off to you. :-)
@prologic@twtxt.net Can you just make them optional? :-) But that of course complicates things.
println("Hello World"):
@prologic@twtxt.net Thatâs impressive. How large are the resulting binaries? You donât have any optimizations in place yet, do you?
@movq@www.uninformativ.de I hid in the workshop with earmuffs for the absolute worst part.
@javivf@adn.org.es Heck yeah, letâs do this! :-) Welcome to 2026.
@shinyoukai@neko.laidback.moe We finally abandoned our GitLab. I publicly mirrored my code in the Mills Data Center a few days ago: https://git.mills.io/lyse/tt2
@movq@www.uninformativ.de Well, just a very limited subset thereof:
- inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
- markdown links using using
[text](url)
- markdown media links using

And thatâs it. No bold, italics, lists, quotes, headlines, etc.
Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. Theyâre also colored differently, similarly to code segments.
I definitely should write some documentation and provide screenshots.
It totally sounds like an active warzone around here. So, I just went on a very, very, very quick stroll to check out our sunset from ontop our hill (were all the bangs are way more horrible): https://lyse.isobeef.org/abendhimmel-2025-12-31/
Hurray, I finally fixed another rendering bug in tt that was bugging me for a long time. Previously, when there were empty lines in a markdown multiline code block, the background color of the code block had not been used for the empty lines. So, this then looked as if there were actually several code blocks instead of a single one.
https://lyse.isobeef.org/tmp/tt-bugfix-empty-lines-in-multiline-code-blocks.png
@movq@www.uninformativ.de Because theyâre just boxes. :-D
@movq@www.uninformativ.de Yeah, I see. Just crudely checked on my computer, with around 0.013 seconds, Python 2.7 seems a tad faster than Python 3.14âs 0.023 seconds in this little program.
The lazy imports sound not too bad, but I just skimmed over them. There are surprisingly many exceptions, but yeah, no way around them. :-)
@movq@www.uninformativ.de Thatâs cool! I also like the name of your library. :-) I assume you made the thing load quickly, didnât you?
I just fixed another bug in tt where the language hint in multiline markdown code blocks had not been stripped before rendering. It just looked like it was part of the actual code, which was ugly. I now throw it away. Actually, itâs already extracted into the data model for possible future syntax highlighting.
Phew, it was just a one-time thing. Ta! :-)
Btw, @shinyoukai@neko.laidback.moe, thatâs a super cool logo on your yarnd. I like it a lot!
It just doesnât look aligned properly: https://lyse.isobeef.org/tmp/misalignment.png Could be a yarnd issue, though, it might not expect a logo this large. Just wildguessing, no idea.
@shinyoukai@neko.laidback.moe Because you might not want to commit all changed files in a single commit. I very often make use of this and create several commits. In fact, I like to git add --patch to interactively select which parts of a file go in the next commit. This happens most likely when refactoring during a feature implementation or bug fix. I couldnât live without that anymore. :-)
If you have a much more organized way of working where this does not come up, you can just git commit --all to include all changed files in the next commit without git adding them first. But new files still have to be git added manually once.
@shinyoukai@neko.laidback.moe Do we now need ad filters in twtxt clients, too? O_o I hope not! Personally, I cannot stand the âSent with my crappy $phone/$appâ e-mail footers.
But congrats on your client. :-)
os.UserConfigDir() up until a few seconds ago! I always implemented that myself.
@shinyoukai@neko.laidback.moe Yeah, they donât truly support XDG. In fact, I looked in the Go stdlib source code to notice all the differences and shortcomings.
$HOME is not specified it tries to resolve the user's home directory by user.Current().HomeDir. Maybe that's overkill, I have to check the XDG spec.
Ok, the standard library implementation is wonky at best, at least in regards to XDG, because it really doesnât implement it properly. https://github.com/golang/go/issues/62382 I stick to my own code then. It doesnât properly support anything else than Linux or Unixes that use XDG, but personally, I donât care about them anyway. And the cross-platform situation is a giant mess. Unsurprisingly.
os.UserConfigDir() up until a few seconds ago! I always implemented that myself.
Hmm, mine also resolves a leading tilde in these variables. And if $HOME is not specified it tries to resolve the userâs home directory by user.Current().HomeDir. Maybe thatâs overkill, I have to check the XDG spec.
But Iâm definitely missing os.UserDataDir(). Thatâs a bummer.
@shinyoukai@neko.laidback.moe Cool, I didnât know about os.UserConfigDir() up until a few seconds ago! I always implemented that myself.
@movq@www.uninformativ.de Thanks! Iâll have a look at SnipMate. Currently, Iâm (mis)using the abbreviation mechanism to expand a code snippet inplace, e.g.
autocmd FileType go inoreab <buffer> testfunc func Test(t *testing.T) {<CR>}<ESC>k0wwi
or this monstrosity:
autocmd FileType go inoreab <buffer> tabletest for _, tt := range []struct {<CR> name string<CR><CR><BS>}{<CR> {<CR> name: "",<CR><BS>},<CR><BS>} {<CR> t.Run(tt.name, func(t *testing.T) {<CR><CR>})<CR><BS>}<ESC>9ki<TAB>
But this of course has the disadvantage that I still have to remove the last space or tab to trigger the expansion by hand again. Itâs a bit annoying, but better than typing it out by hand.
Oh, suddenly Mother Hulda dumped a centimeter of snow tonight! https://lyse.isobeef.org/schnee-2025-12-30/01.jpg
Magpie from the day before yesterday: https://lyse.isobeef.org/elster-2025-12-28/
Question to my fellow Vimers: Which snippet insertion mechanism are you using or can you (not) recommend?
Pro tip: Donât keep the christmas biscuits close to the bird fat balls. I nearly mixed up the bags. :-D
@movq@www.uninformativ.de Yeah. I had that in my Python implementation and was really missing that.
@movq@www.uninformativ.de I see. Yeah, all the Unicode stuff certainly doesnât help here, thatâs for sure.
Maybe âspeedcursesâ could be a name. Or just select any Palatinate curse. ;-)
lldb or gdb đ
@prologic@twtxt.net Oh yeah, I bet it is horrible to troubleshoot.
@prologic@twtxt.net Yeah, the parser part is what I typically enjoy. Havenât really looked into code generation itself.
Iâm currently looking at your ” commits from the last few days. Holy cow! :-)
pwgen --no-capitalize --no-numerals 5 and since that already showed up in DDG search results, I simply appended the last two, which yielded nothing on DDG and Google).
Dang it, thereâs a Swede by the username of Quongsi: https://www.flashback.org/u1404408 :-D
println(1, 2) was bring printed as 1 2 in the bytecode VM and 1 nil when natively compiled to machine code on macOS. In the end it turned out the machine code being generated / emitted meant that the list pointers for the rest... of the variadic arguments was being slot into a register that was being clobbered by the mu_retain and mu_release calls and effectively getting freed up on first use by the RC (reference counting) garbage collector đ€Šââïž
@prologic@twtxt.net Tada, congratulations! I find that rather interesting, thanks for telling us. :-)
@movq@www.uninformativ.de How about âQuongsiâ? I generated the first five letters with pwgen --no-capitalize --no-numerals 5 and since that already showed up in DDG search results, I simply appended the last two, which yielded nothing on DDG and Google).
What kind of project is it? Maybe we can help you find a name or nudge you in the right direction.
The tt URLs View now automatically selects the first URL that I probably are going to open. In decreasing order, the URL types are:
- markdown media URLs (images, videos, etc.)
- markdown or plaintext URLs
- subjects
- mentions
I might differentiate between mentions of subscribed and unsubscribed feeds in the future. The odds of opening a new feed over an already existing one are higher.
@prologic@twtxt.net In my opinion, the integrity isnât lost. The same input data always result in the same output hash, no matter when you calculate the hashes. Itâs true that a corrupt database contents yields to corrupt hashes, but then you have a whole bigger problem than just receiving different hashes. :-D
@zvava@twtxt.net By hashing definition, if you edit your message, it simply becomes a new message. Itâs just not the same message anymore. At least from a technical point of view. As a human, personally I disagree, but thatâs what Iâm stuck with. Thereâs no reliable way to detect and âcorrectâ for that.
Storing the hash in your database doesnât prevent you from switching to another hashing implementation later on. As of now, message creation timestamps earlier than some magical point in time use twt hash v1, messages on or after that magical timestamp use twt hash v2. So, a message either has a v1 or a v2 hash, but not both. At least one of them is never meaningful.
Once you âupgradeâ your database schema, you can check for stored messages from the future which should have been hashed using v2, but were actually v1-hashed and simply fix them.
If there will ever be another addressing scheme, you could reuse the existing hash column if it supersedes the v1/v2 hashes. Otherwise, a new column might be useful, or perhaps no column at all (looking at location-based addressing or how it was called). The old v1/v2 hashes are still needed for all past conversation trees.
In my opinion, always recalculating the hashes is a big waste of time and energy. But if it serves you well, then go for it.
@shinyoukai@neko.laidback.moe The CSS 404ing highlights the improvability of the content to noise ratio. :-)
@movq@www.uninformativ.de The asshats are everywhere. Luckily, it has been rather quiet so far. But of course, I now jinxed it.
Itâs this time of the year again, where people burn money on the streets.
Almost all photos turned out to be blurred today. That made sorting a very quick process. Delete, delete, delete, ⊠https://lyse.isobeef.org/waldspaziergang-2025-12-26/
@movq@www.uninformativ.de @prologic@twtxt.net Holy shit, this is sooo fucking cool! :-) Wow, I absolutely love it. Itâs extremely fascinating what these optimizers do.
Woof, woof, @thecanine@twtxt.net! Thatâs cute.
@movq@www.uninformativ.de I have not, thanks! <3
@prologic@twtxt.net @movq@www.uninformativ.de Oh, I take my 0°C over the 36°C anytime! Even with yesterdayâs gray and windy sleet in my face. However, there are definitely more pleasant times to walk in town, Iâll give you that. For example on 0°C sunny today: https://lyse.isobeef.org/waldspaziergang-2025-12-25/
@movq@www.uninformativ.de Hahaha, this is hilarious! :â-D
@movq@www.uninformativ.de Only the roofs are a little white. Itâs also windy here. https://lyse.isobeef.org/weisse-weihnachten-2025-12-24/01.jpg
Indeed, tiny, tiny snowflakes coming down.
@zvava@twtxt.net I might misunderstand what you wrote, but only hashing the message once and storing the hash together with the message in the database seems a way better approch to me. Itâs fixed and doesnât change, so thereâs no need to recompute it during runtime over and over and over again. You just have it. And can easily look up other messages by hash.
Happy birthday Katrina! https://www.uninformativ.de/blog/postings/2025-12-23/0/POSTING-en.html :-)
Oh wow, there might be snow tomorrow! Probably not much, though. Letâs see.
@movq@www.uninformativ.de Maybe thereâs another meaning Iâm not aware of, but this doesnât look like a shitpost to me. Congrats, I guess. ;-)
I just had a closer look at https://git.mills.io/prologic/mu and it motivated me to do some compiler building myself again. Hopefully, I find some time in the next free days. Iâm bad at it, but itâs always great fun.
Oh great, I received an e-mail that my SMTP credentials have been exposed. Once again, just another shitty scanner that generates garbage reports from tests it doesnât understand. Thank you for nothing!
conf := &Config{
SMTPHost: "smtp.example.com",
SMTPPort: 587,
SMTPUser: "user",
SMTPPass: "hunter2",
SMTPFrom: "from@example.com",
}
@prologic@twtxt.net @movq@www.uninformativ.de A crocodile had bitten the big submarine internet cable that connects Australia to Europe. The investigations revealed that some construction work last week accidentally tore up the protective layer around it. That went unnoticed, unfortunately, so marine life had an easy job today. For just 40 minutes, they were quite fast in repairing the damage if you ask me! These communication cables are fricking large.
Just kidding, I completely made that up. :-D I didnât notice any outage either. But I didnât try to connect to Down Under at the time span in question.
@movq@www.uninformativ.de Very nice! I often wish other languages had something similar. Sometimes, I use lambdas, but that also looks ugly and feels a bit like a misuse. Other times, just the normal blocks are enough, but itâs not the same. Especially with the mutability aspects as the article explains. Typically, I just put it in a function or ignore it if itâs just a few lines.
@movq@www.uninformativ.de Ah, cool! :-) Yeah, itâs very wild what is happening under the hood all the time.
Wow, @movq@www.uninformativ.de, so many tables. No idea what I expected (Iâm totally clueless on this low-level stuff), but that was quite an interesting surprise to me. https://www.uninformativ.de/blog/postings/2025-12-21/0/POSTING-en.html
@kiwu@twtxt.net Ta, same to you!
@movq@www.uninformativ.de Oh, a table of contents is indeed a great idea!
@movq@www.uninformativ.de Interesting. I never found a big use for these kind of lists in general. But I might give it a shot again.
@movq@www.uninformativ.de Not sure what it had in its beak. It looked a wee bit like a large biscuit. But it must have been rock-hard.
@kiwu@twtxt.net Iâm doing great, howâre ya going? Just two more days and then I never have to work anymore. In this year.
I just baked two trays of gingerbread. One definitely good one and another experiment.
This morning was also super pretty: https://lyse.isobeef.org/morgensonne-2025-12-19/
Magpie and sunset: https://lyse.isobeef.org/waldspaziergang-2025-12-18/
@shinyoukai@neko.laidback.moe I think I never watched it. In any case, enjoy reading your books.
@movq@www.uninformativ.de Neither have I. :-D
@shinyoukai@neko.laidback.moe These are all Debian release names: https://www.debian.org/releases/
- Bookworm is current oldstable
- Trixie is current stable
- Forky is current testing
Thatâs some cool science in @xuu@txt.sour.isâs backyard: https://youtu.be/bzBcs0jv9G4
Right at sunset we went for a quick stroll into the woods. Cannot complain about the colors in the sky: https://lyse.isobeef.org/abendhimmel-2025-12-12/
@shinyoukai@neko.laidback.moe Time to become a trixie or forky!
@aelaraji@aelaraji.com Yes, exactly. It also blows my mind that with sooo much less budget and equipment, her videos are way superior to productions of big TV stations.
@aelaraji@aelaraji.com Anytime! Glad you like it, too. :-)
We got a very colorful sunset today: https://lyse.isobeef.org/abendhimmel-2025-12-09/
@prologic@twtxt.net Nice! And foggy as heck, very beautiful! Or is this smog?
@movq@www.uninformativ.de The terminal colors change quite drastically, but not the photo. Interesting.
Fuck me, soooooooo beautiful! Awwww! :â-) https://www.youtube.com/watch?v=oYfKgi133qo
This focuses more on the landscape part, other episodes also have amazing interactions with the locals. I cannot recommend the Itchy Boots channel enough. Itâs in my top three channels of all time I believe. I hardly get the travel bug, but this has now changed. Watching Noralyâs videos brings me great joy. It also shows humanity is not lost, contrary to what one might think in this crazy world. :-)
Caution, this channel gets very addictive!
@movq@www.uninformativ.de :â-D
git log. They simply donât experience the pain that comes with bad commits / commit messages.
@movq@www.uninformativ.de I reckon youâre right. There cannot be any other explanation.
@movq@www.uninformativ.de Same. :â-( I just donât get how people do code archeology with all their shit messages and huge commits changing a gazillion of different things. I always try to lead by setting good examples, but nofuckingbody is picking up on that. At all. Even when bringing this up every now and then.
@prologic@twtxt.net Yeah, I donât like them either.
As for changelogs, I prefer hand-written ones over something automatically cobbled together. Typically, they are just utter rubbish in my experience.
@shinyoukai@neko.laidback.moe @prologic@twtxt.net Maybe that is helpful to you: https://git.mills.io/yarnsocial/twtxt2html/issues/12#issuecomment-20792
@prologic@twtxt.net Awwww, I wanna run my hands through this fur so badly! :-)
@movq@www.uninformativ.de @bender@twtxt.net @prologic@twtxt.net Four people! Exactly my thoughts, bender, but super cute. :-)
@prologic@twtxt.net @bender@twtxt.net Reminds me of an apple, too. :-)
@bender@twtxt.net Goes to show you just have a good nose for that. :^)
No doubt, I really do love them. Not only wonderful humans and like-minded, but also technically gifted. That made for a superb combination. I just hope the new team turns out to be equally great.
Bwahahahahaaahaaahaaahaaa, what a brilliant story! :â-D Iâve been given at most ten weeks to return, letâs see. ;-)
@bender@twtxt.net Mate, I donât know how you do it, but the frequency of words I havenât come across before is actually quite high in your work. I noticed it in your twtxt messages in the past, but your notes are also full of them. I love it, always learning something new. Thank you for teaching me without knowing. In case youâre wondering, âyesternightâ and âsqualidâ are the ones I stumbled across today. :-)
@bender@twtxt.net Thatâs the best one of them. An almonds cake with hazelnut chocolate glaze. The one in front is similar, but with chocolate only. Gingerbread on the right. But it develops the best flavor and consistency only in a few weeks, right now itâs quite hard like a rock, but it will soften up.
All those years I always said that my teammates are THE VERY BEST I ever had. Fuck me, look at that, I didnât leave the company, just changed projects and this is my farewell present: https://lyse.isobeef.org/tmp/abschiedsgeschenk-2025-12-03.jpg How absolutely beautiful is that, Iâm in awe! Now I feel even worse deserting. :â-(
This emblem is the fleur-de-lis of the world scout movement: https://en.wikipedia.org/wiki/World_Organization_of_the_Scout_Movement#WOSM_emblem I reckon I must have mentioned casually that Iâm a scout. ;-)
Letâs hope that the two cakes turn out better than last week: https://lyse.isobeef.org/tmp/tote-und-lebendige-kuchen-2025-12-02.jpg Got some gingerbread as backup. Yeah, best lightingâŠ
@prologic@twtxt.net @bender@twtxt.net Nice! And thanks for the additional info. :-)
@movq@www.uninformativ.de Thatâs also a quite clever approach. :-)
@prologic@twtxt.net Lol, these sails on that boat! :-D