@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!
https://lyse.isobeef.org/tmp/tt-confirm-message-removal.png
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
https://itsericwoodward.com/images/bba54e39.png
https://itsericwoodward.com/images/e472ea48.png
https://itsericwoodward.com/images/65b23473.png
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.
I won our only game of Magic for this week with my (yet-to-be published) āBolas Triumphantā deck: 5 players over 3 hours, including 4 board wipes (one of which came from my Nicol Bolas, God-Pharaoh), and I even got to cast Omniscience via a Fae of Wishes. I canāt speak for everyone, but I know I had a good time. š
As an enjoyer of delightfully bad graphic design, found on most Czech village center cork boards, Iām sad to see the stolen clipart and badly cropped watermarked stock images, gradually replaced with AI slop.
This is far from a serious rant, but generating images of my kind being telepathically hit with sharp rocks, surely gives me a right to complain.

So far these seem the most prominent slop categories, seem to beā¦
Architecture slop:
- find a sketch of what an old building looked like

- generate an AI version, without correcting any of the perspective errors - this one is diagonally levitating

- generate a recreation of the buildings demise - after going through the AI, for the second time, it is now a completely different building

Moralizing slop:


History slop:

school is back in full swing
@prologic@twtxt.net Awwwwwwww! I love these stripes, very cool!
Oh, I bet these inclines are no joke. I also know one about 200 meters long terribly steep dirt path up a hill around here. Climbing that is super exhausting. I just looked it up on a map. And itās just ~17° or ~30% incline. Okay, thatās absolutely nothing compared to your adventure. :-D
But you got your exercises for the day then. Which will make for an even greater sleep tonight. ;-)
Thank you, @prologic@twtxt.net, that looks really stunning! Seeing forests reaching beyond the horizon always amazes me. This does not exist around here. I also like those balancing rocks.
Keep āem coming. Looking forward to see more. But most importantly, enjoy your trip, mate! :-)
spring allergies suck
@lyse@lyse.isobeef.org 1, 3, and 22 are my picks on this very reduced set. Our bird is King/Queen, and that stop on the roof is their spot! š„°
What do the Gopher Troopers think of the following? The Gopher protocol is a nearly-forgotten network protocol from the early 1990s, designed to serve and navigate text-based menus and documents over the Internet. While itĀs far less common than HTTP/HTTPS today, there are still some security risks associated with Gopher and Gopher space. LetĀs break them down carefully: 1. Lack of Encryption Problem: Gopher was designed long before widespread use of SSL/TLS. All dataĀincluding credentials, file transfers, and menu selectionsĀis transmitted in plaintext. Impact: Anyone intercepting traffic (e.g., via a network sniffer, public Wi-Fi, or a compromised router) can read sensitive information, including usernames and passwords. 2. No Authentication or Access Control Problem: Gopher servers rarely implement robust authentication; access control is usually limited or non-existent. Impact: Unauthorized users might browse sensitive directories or download private files, particularly if servers are misconfigured. 3. Server Software Vulnerabilities Problem: Modern OSes can still run legacy Gopher servers, but the software is often unmaintained. Impact: Old software may contain buffer overflows, directory traversal bugs, or command injection vulnerabilities that attackers could exploit. 4. Malicious Gopher Links Problem: Gopher menus can contain links that point to scripts or other servers, similar to hyperlinks in HTTP. A client following a malicious link could inadvertently: Download malware Access sensitive internal network resources (server-side request forgery) Impact: Could serve as a vector for attacks if a user opens content from untrusted sources. 5. Legacy Protocol Weaknesses Problem: Gopher lacks modern web security mechanisms like: Content security policies Same-origin policies Cross-site request forgery protection Impact: If Gopher is bridged to other services (like modern browsers via gateways), old vulnerabilities may be exposed. 6. Information Leakage Problem: Gopher servers often provide directory listings without restriction. Impact: Sensitive files, backup directories, and internal documents may be exposed unintentionally. 7. Bridging Risks Problem: Some modern browsers access Gopher via gateways (HTTP-to-Gopher proxies). These bridges may: Expose sensitive internal resources to the gateway Introduce logging or tracking that wouldnĀt exist on pure Gopher Impact: Attacks could occur indirectly through insecure intermediaries. Key Takeaways Gopher is inherently insecure due to its design in a pre-HTTPS era. Main threats: eavesdropping, unauthorized access, malware delivery, and exploitation of unpatched server software. Safe practice: Use Gopher only in isolated, trusted environments, or through secure HTTP(S) gateways with proper sanitization.
(This one actually has the potential to live longer than 3 days.)
Went 2/3 at Magic today: Prosper dominated game 1, Ash and his Knights came within a single planar die roll of winning game 2, and then Atraxa came up with the win in a fairly tight game 3. All in all, not a bad afternoon of Magic.
This year for some reason or another, I decided to purchase an Ocarina, Iāve been practising a fair bit every now and again, basically during work breaks and sometimes in the afternoon / evenings (not enough to annoy the family š¤£) Anyhoo, that was 3 months ago, since then Iāve built up a bit of a Repertoire:
- Silent Night
- My Bonnie Lies Over the Ocean
- Amazing Grace
- O Holy Night
- Happy Birthday
- Greensleeves
- Scarborough Fair
- Sheāll Be Coming āRound the Mountain
Iāve now decided to purchase a slightly better quality Ocarina, the one I originally bought was a cheap $28 one, Iām now upgrading to a more professional instrument worth about $80 ā Wish my luck š
@prologic@twtxt.net it does! it wont let me do it like that tho
@bender@twtxt.net Uuuhhhhhh, this looks incredibly nice! Did you hear anything or was it just a visual thing?
@bender@twtxt.net Holy cow, I didnāt notice the ice! :-O Thanks for pointing that out! I was just after the bee. :-)
33°C down to 3°C, wow. O_o What a drop. But it raises again dramatically during day, right?
v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
@bender@twtxt.net Here is a properly formatted version of your message:
Not yet ā but thatās probably a good idea.
Instructions:
- Clone the repository
git clone https://git.mills.io/saltyim/saltyim.git
cd saltyim
- Check out the
v2branch
git checkout v2
- Build and install the CLI/TUI
make DESTDIR=$HOME/bin install
After installation, run:
salty-chat
@movq@www.uninformativ.de Oh, so just half a millimeter then! :-D Thatās plenty these days for everything to shut down, Iām afraid. If only the same Ć©lan was still in action as back then:
And here I am watching Mattias Bjƶrnstrƶmās gas pedal freezing at full throttle around -40°C. Well, falls apart and gets stuck.
https://www.youtube.com/watch?v=MLgmV15XeSY
Iām not an expert on this subject at all, but I reckon an automatic in addition with all its sensors is much worse than a manual one. All wheel drive, studded tires and diff locked is what one wants in icy situations. :-D
Iām trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
- maybe a predefined compound key sequence, like Ctrl+A
- maybe some modifiers, such as Shift, Ctrl, etc.
- maybe a rune if neither modifiers are present nor a predefined compound key exists
Itās hardcoded usage results in code like this:
func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyUp:
t.moveUp()
case tcell.KeyDown:
t.moveDown()
case tcell.KeyHome:
t.moveTop()
case tcell.KeyEnd:
t.moveBottom()
case tcell.KeyCtrlE:
t.moveScrollOffsetDown()
case tcell.KeyCtrlY:
t.moveScrollOffsetUp()
case tcell.KeyTab, tcell.KeyBacktab:
if t.finished != nil {
t.finished(event.Key())
}
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
t.moveUp()
case 'j':
t.moveDown()
case 'g':
t.moveTop()
case 'G':
t.moveBottom()
}
}
}
})
}
This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o
I just checked k9s and theyāre extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101
This seems to be much nicer to use. However, I fear this will break eventually. And itās more fragile in general, because itās rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an āextendedā one.
I will see if I can find some other programs that provide configurable tcell key bindings.
implemented curl, grep, jq, head & tail in javascript for my website, zsh now knows the difference between hi;hi and "hi;hi", and a bunch of documentation has been written for all that, too! i do normal people things for fun :3


Arsenal VS Liverpool 3-0
@movq@www.uninformativ.de Ahh nice! Itās been several decades since Iāve played that! Probably 3 actually come to think of it š¤£
And now the event loop is not a simple loop around cursesā getch() anymore but it can wait for events on any file descriptor. Hereās a simple test program that waits for connections on a TCP socket, accepts it, reads a line, sends back a line:
https://movq.de/v/93fa46a030/vid-1767547942.mp4
And the scrollbar indicators are working now.
Iāll probably implement timer callbacks using timerfd (even though thatās Linux-only). š¤
Published January 3, 2026. The Kingdom of Sweden: Chaos broke out during the night when around 400 vehicles got stuck on the E22 between Oskarshamn and MƶnsterƄs. https://www.expressen.se/nyheter/sverige/stopp-pa-e4-efter-lastbilsolycka/
@eldersnake@we.loveprivacy.club
Steps to world domination:
- āInventā āAIā (by using other peopleās data).
- Get people hyped about it and ideally hooked on it.
- Only provide it as a cloud service. But hey, if you want to, you can run it locally!
- Buy all hardware available on the market, so that nobody but you can build more systems.
- All PCs of consumers and competitors are too weak now and canāt be upgraded anymore.
- Everybody depends on your cloud service! Win!
All of that is possible because corporations donāt have a āconscienceā in capitalism. Nobody forces the RAM manufacturers to sell all their stuff to just one or two buyers, but since the only goal of that manufacturer is to make money, they do it.
@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.
@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. :-)