It was so great going to the sauna again, we were looking forward to that the whole week. :-) Itās been over a year, holy cow, time flies. We definitely have to pick up on that tradition again, thatās for sure.
We attended two Aufguss sessions, the first and last one in our four hour visit. Unfortunately, we didnāt make it to the other two, because the crazy people already occupied the entire sauna 15 minutes before the start. Yeah, no.
Now, the bellies are stuffed with kebabs. Yum! Letās see how often I wake up tonight to rehydrate.
@bender@twtxt.net Thanks for letting me know it was Mobile Safari! I just did some testing real quick and things are not working very well š¤ I think Iāve introduced some regressions last night as I was putting this into prod š services me right for late-night deployment 𤣠Iāve taken it down for now, will spend a bit more time on testing making sure things all work properly!
What a beautiful, beautiful 0°C Sunday arvo and evening! The weather forecast delayed the snow by the minute. An hour or so after it finally started very, very lightly, I headed off for the woods to check out the lake again. Unfortunately, with the fresh snow layer, the crazy wild surface texture of the ice sheet wasnāt visible anymore. But it brought some other nice views and photo opportunities.
I initially thought that I just go for a quick turn. However, with the snowfall a wee bit increasing I was hooked and kept going. Visibility was poor, but the snow blankets just looked too stunning. The road surfaces were quite slippery, so I often just walked alongside the pathways. On downhill slopes I had some good fun sliding down the road on my feet. With varying success. Luckily, I managed not to fall.
On the summit of the mountain the twigs had those absolutely magnificently looking windblown crystal coverings. Awwwwwww! They never get old. It was already getting dark, so the camera was tired and wanted to sleep. The snow program then made use of the flash and Iām quite pleased with how these shots turned out.
Two deer crossed the road in front of me and ran into the woods, that was sight for sore eyes. Although I felt bad that they had to flee from me in this white terrain. By the time I got home, the snow had accumulated around eight centimeters in height, even in town down in the valley. Walking on this fresh snow is just amazing. And I love the sound it makes. Today, the snow consistency must have been just right, because the crushing sound was really loud.
I cannot recall that I had frozen hair and beard before, but today, there was a thick ice buildup. In case I had, it was definitely never this much. Felt really cool.
Enough of this preliminary skirmishing, there ya go: https://lyse.isobeef.org/waldspaziergang-2026-01-25/
@movq@www.uninformativ.de Probably already dry by the time you get there. ;-)
@eldersnake@we.loveprivacy.club haha! I read as Golang the first time too. It is just the way our minds work. :-P
@kiwu@twtxt.net problems are aplenty everywhere, Kiwu. As we all know, ups and downs flare often times when we least expect them. When downs come, donāt despair: nothing lasts forever, and ups will soon come, one way or another. Paālante!
Took me nearly all week (in my spare time), but Mu (µ) finally officially support linux/amd64 š„³ I completely refactored the native code backend and borrowed a lot of the structure from another project called wazero (the zero dependency Go WASM runtime/compiler). This is amazing stuff because now Mu (µ) runs in more places natively, as well as running everywhere Go runs via the bytecode VM interpreter š¤
@bender@twtxt.net Iām already using it for tracktivity (meant for tracking activities and events, like weather, food consumption, stuff like that), which is basically a somewhat-fancy CSV editor:
https://movq.de/v/f26eb836ee/s.png
I have a couple of other projects where I could use it, because they are plain curses at the moment. Like, one of them has an āedit boxā, but you canāt enter Unicode, because it was too complicated. That would benefit from the framework.
Either way, itās the most satisfying project in a long time and Iām learning a ton of stuff.
@bender@twtxt.net ICQ, yeah, I vaguely remember these times, despite I still know my ICQ number like it was yesterday. :-D
@shinyoukai@neko.laidback.moe No, itās not dead. The one account in question actually is on jabber.org.
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de @prologic@twtxt.net Thatās what I like about Go, too. However, every now and then I really dislike the result, e.g. when removing spaces from a column layout. Doesnāt happen often, but when it does, I hate it.
I think I should have a look at Python formatters, too. Pep8 is deprecated, I think, itās been some time that I looked at it.
@kiwu@twtxt.net Oh? š¤ Whatās up? Can you share? Or just having a hrd time? š¤
@shinyoukai@neko.laidback.moe the whole bridge idea is a mistake done twice (I encouraged the first time, it was a mistake to do so). In this case, the āBabel Towerā works; there is no need to interact with āothersā, let it be just twtxt.
@bender@twtxt.net I also went back to my duty today and fixed a problem I created right before vanishing into the holidays. Of course, I discovered more problems while fixing the one thing. Luckily, another public holiday tomorrow. :-)
During my time off, I was a very lazy rat. I planned on doing some woodworking again, but instead I started watching Itchy Bootās Africa season: https://www.youtube.com/watch?v=pMvfS5mbsiI&list=PL8M9dV_BySaXNvQ_V1q4UU-DirPQlX0ZP
@prologic@twtxt.net so, you were not giving time off during the end of year? The company you work for didnāt give a break?
Spent most of the long weekend working on a few coding projects⦠specifically, I pushed some updates for TwtKpr to my test instance before spending some time working on the build process and demo page for my new twtxt-parsing library⦠which lead me to make some changes to my existing fluent-dom-esm library.
So, nothing actually got finished, but the incremental updates continueā¦
More widget system progress:
https://movq.de/v/87e2bce376/vid-1767467193.mp4
I like the oldschool shadow effect. š Not sure if Iāll keep it, but itās neat.
The menu bar is still fake.
Had to spend quite a bit of time optimizing the rendering today. This can get really slow really quickly.
Unicode is Pain.
I might be able to start porting my first program (currently uses urwid) soon. š¤
@movq@www.uninformativ.de Cool! :-) I just implemented a workaround for the time being.
Opinion / Question timeā¦
Do you think Mu (µ)ās native compiler and therefore emitted machine code āruntimeā (which obviously adds a bit of weight to the resulting binary, and runtime overheads) needs to support āruntime stack tracesā, or would it be enough to only support that in the bytecode VM interpreter for debuggability / quick feedback loops and instead just rely on flat (no stacktraces) errors in natively built compiled executables?
So in effect:
Stack Traces:
- Bytecode VM Interpreter: ā
- Native Code Executables: ā
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 Mu (µ)ās startup latency appears to be ~10ms on my machine:
$ time ./bin/mu ./foo.mu
real 0m0.011s
user 0m0.004s
sys 0m0.006s
The baseline here is about 55 ms for nothing, btw. Python aināt fast to start up.
$ time python -c 'exit(0)'
real 0m0.055s
user 0m0.046s
sys 0m0.007s
I assume you made the thing load quickly, didnāt you?
Thatās the problem with Python. If you have a couple of files to import, it will take time.
I want this to be reasonably fast on my old Intel NUC from 2016 (Celeron N3050 @ 1.60GHz) and I already notice that the program startup takes about 95 ms (or 125 ms when there are no .pyc files yet). Thatās still fine, but it shows that Iāll have to be careful and keep this thing very small ā¦
Python 3.14 will bring lazy imports, maybe that can help in some cases.
Phew, it was just a one-time thing. Ta! :-)
@lyse@lyse.isobeef.org Well, I used SnipMate years ago (until 2012). IIRC, itās more than just āinsert a bit of text hereā, it can also jump to the correct next location(s) and stuff like that. Donāt remember why I stopped using it.
Then I used nothing for a long time. Just before Christmas, I made my own plugin (⦠of course ā¦), which does everything I need at the moment (and nothing more).
It can insert simple templates and then jump to the next location:
https://movq.de/v/67cdf7c827/sisni%2Dpython.mp4
And replace a string after insertion:
https://movq.de/v/67cdf7c827/sisni%2Dheader.mp4
(Itās not public (yet?) and it also uses vim9script, so I guess it wouldnāt work on your system.)
This was the scariest movie Iāve seen in a long time, jesus. 𤣠https://en.wikipedia.org/wiki/Fall_(2022_film)
@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.
Itās this time of the year again, where people burn money on the streets.
@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/
very good blog post that reminded me why itās taking so long to ship bbycll ā previously i had computed the hashes of every post before storing them in the database, after realizing itās a much better idea to compute the hashes during runtime and only store the post content & timestamp iām now having to rewrite every function that reads & writes data. i hope the reason as to why i lost motivation is obvious ā thankfully i caught it early enough so that once iām done rewriting just those functions i should⢠be able to finalize 1.0-rc with little hassle
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.
@prologic@twtxt.net Iāve been awake at that time, didnāt notice anything. š¤ Where was that BGP analyzer again ⦠š Thereās a tool that keeps track of these things, right? I forgot what it was.
@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.
@lyse@lyse.isobeef.org These tables get shuffled around every time your OS switches to another process. Itās crazy that so much is going on behind the scenes.
@lyse@lyse.isobeef.org Yeah, well, given that I didnāt need this for such a long time, itās probably not an essential tool. š
Iāve often wanted to have an outline of text documents, though, and tagbar/ctags can do that as well:
https://movq.de/v/3c6d1a13d6/tagbar-md.png
https://movq.de/v/abc58e6d66/tagbar-latex.png
This isnāt as powerful as the āNavigatorā tool in StarOffice/LibreOffice (which can be used to rearrange the document), but still pretty useful:
https://www.uninformativ.de/blog/postings/2024-05-23/0/so31.mp4
@movq@www.uninformativ.de This is the total amount of cpu time consumed right?
Got a nice conspiracy theory for you:
https://mastodon.social/@mcc/115670290552252848
Actually wait I just thought about this and realized that the precise timing of the ACTUAL GitHub seed bank, by which I mean the Arctic Code Vault, on 2020-02-02, makes it more or less a perfect snapshot of pre-Copilot GitHub. Also precisely timed before we all got brain damage from COVID. This is the only remaining archive of source code by people with a fully working sense of smell
(Bonus points because the Arctic World Archive is located in Svaldbard and thatās the name of the AI in Stacey Kadeās āCold Eternityā.)
Day 9 also required some optimizations, if you arenāt careful, you end up with really inefficient algorithms with time/memory complexity beyond what a typical machine has š¤£
Day 7 was pretty tough, I initially ended up implementing an exponential in both time and memory solution that I killed because it was eating all the resources on my Mac Studio, and this poor little machine only has 32GB of memory (I stopped it at 118GB of memory, swapping badly!), This is what I ended up doing before/after:
- Before: Time O(2^k Ā· L), memory O(2^k), where k is the number of splitters along a reachable path and L is path length. Exponential in k.
- After: Time O(RĀ·C) (or O(RĀ·C + s) with s split events), memory OĀ©, where R = rows, C = columns. Polynomial/linear in grid size.
Iām seeing crashes in the 3D subsystem. (Gallium? Glamor? Whatever other Mesa thing they have? No idea.) In the logs I find this:
malloc(): unaligned tcache chunk detected
And thatās why I still care about Rust and want to learn more about it, even though itās giving me so much headache and Iāve given up so many times. Because Rust currently seems to be the only popular systems programming language that tries to eliminate these error classes.
And of course āthe Rust experimentā in the Linux kernel has recently been concluded as āsuccessfulā, so that alone is reason enough for me:
Alright, Advent of Code is over:
https://www.uninformativ.de/blog/postings/2025-12-12/0/POSTING-en.html
Itās been quite the time sink, especially with the DOS games on top, but it was fun. š„³
In case youāre wondering: All puzzles (except for part 2 of day 10) were doable in Python 1 on SuSE Linux 6.4 and ran in a finite time on the Pentium 133. Puzzle 10/2 might have been doable as well if I had better education. š¤£
@shinyoukai@neko.laidback.moe Time to become a trixie or forky!
Webp, though it has been around for a long while, wasnāt fully supported on all browsers until recently. The other formats have been in use for such a long time, proving to work just fine, that the advantages Webp provides havenāt been seemingly enough to merit a switch.
Google is also the one behind Webp, and, well, people donāt trust, nor like, them much.
@movq@www.uninformativ.de @zvava@twtxt.net I think people get sick of everything changing all the time and so donāt bother adopting things to change when things are already good enough š¤·
@bender@twtxt.net on the way o7 Ā spent enough time away from the codebase
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!
@prologic@twtxt.net Bwahahaha! I tried to establish some form of āconventionā for commit messages at work (not exactly what you linked to, though), but itās a lost cause. š Nobody is following any of that. Nobody wants to invest time in good commit messages. People just want to get stuff done.
Iām just glad that 80% are at least somewhat useful ā instead of āwipā or āshit i screwed upā.
@lyse@lyse.isobeef.org no wonder I picked that cake (albeit coincidentally), I adore almonds, and hazelnuts! Your teammates are absolutely amazing, dude! A very nice project farewell! On leaving places I have a small anecdote.
I know someone who on 3 February 2004 left his job to go elsewhere. At the time his teammates threw a party, and gave him a very nice portable storage. Twenty days later, he returned, and jokingly they asked him for the storage, and money spent on farewell party back. I heard, from a close source, that he gave them his middle finger, but donāt quote me on that. ššš
@kiwu@twtxt.net Iāve no idea about regulations in your area, but over here there are different taxation rules for video and photo cameras. Hence, manufacturers limit the video recording time of photo cameras typically to half an hour, so that they donāt classify as video cameras with their higher taxes.