movq

uninformativ.de

No description provided.

All this hash breakage made me wonder if we should try to introduce ā€œmessage IDsā€ after all. šŸ˜…

But the great thing about the current system is that nobody can spoof message IDs. šŸ¤” When you think about it, message IDs in e-mails only work because (almost) everybody plays fair. Nothing stops me from using the same Message-ID header in each and every mail, that would break e-mail threading all the time.

In Yarn, twt hashes are derived from twt content and feed metadata. That is pretty elegant and I’d hate see us lose that property.

If we wanted to allow editing twts, we could do something like this:

2024-09-05T13:37:40+00:00   (~mp6ox4a) Hello world!

Here, mp6ox4a would be a ā€œpartial hashā€: To get the actual hash of this twt, you’d concatenate the feed’s URL and mp6ox4a and get, say, hlnw5ha. (Pretty similar to the current system.) When people reply to this twt, they would have to do this:

2024-09-05T14:57:14+00:00	(~bpt74ka) (<a href="https://yarn.girlonthemoon.xyz/search?q=%23hlnw5ha">#hlnw5ha</a>) Yes, hello!

That second twt has a partial hash of bpt74ka and is a reply to the full hash hlnw5ha. The author of the ā€œHello world!ā€ twt could then edit their twt and change it to 2024-09-05T13:37:40+00:00 (~mp6ox4a) Hello friends! or whatever. Threading wouldn’t break.

Would this be worth it? It’s certainly not backwards-compatible. šŸ˜‚

⤋ Read More
In-reply-to » Serious open (for anyone) question: what makes you follow someone on twtxt? Will you just follow anyone that you come across, simply because that someone using the "decentralised, minimalist microblogging service for hackers" microblog?

@bender@twtxt.net On twtxt, I follow all feeds that I can find (there are some exceptions, of course). There’s so little going on in general, it hardly matters. šŸ˜…

And I just realized: Mutt’s layout helps a lot. Skimming over new twts is really easy and it’s not a big loss if there are a couple of shitpostsā„¢ in my ā€œtimelineā€. This is very different from Mastodon (both the default web UI and all clients I’ve tried), where the timeline is always huge. Posts take up a lot of space on screen. Makes me think twice if I want to follow someone or not. šŸ˜…

(I mostly only follow Hashtags on Mastodon anyway. It’s more interesting that way.)

⤋ Read More

@cuaxolotl@sunshinegardens.org Ah, thanks for reporting back! Okay, so you’re basically manually ā€œcrawlingā€ feeds right now. šŸ¤” What do you think about the idea of adding something like # follow_notify = gemini://foo/bar to your feed’s metadata, so that clients who follow you can ping that URL every now and then? How would you even notice that, do you regularly read your gemini logs? šŸ¤”

⤋ Read More

Found this in an old copyright notice from 1993:

These images are not for use with the Microsoft Windows environment. Using these patterns in a Windows environment consitutes a copyright violation.

Someone clearly didn’t like Windows.

⤋ Read More
In-reply-to » @movq Is there a good way to get jenny to do a one-off fetch of a feed, for when you want to fill in missing parts of a thread? I just added @slashdot to my private follow file just because @prologic keeps responding to the feed :-P and I want to know what he's commenting on even though I don't want to see every new slashdot twt.

@falsifian@www.falsifian.org @bender@twtxt.net I pushed an alternative implementation to the fetch-context branch. This integrates the whole thing into mutt/jenny.

You will want to configure a new mutt hotkey, similar to the ā€œreplyā€ hotkey:

macro index,pager <esc>C "\
<enter-command> set my_pipe_decode=\$pipe_decode nopipe_decode<Enter>\
<pipe-message> jenny -c<Enter>\
<enter-command> set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<Enter>" \
"Try to fetch context of current twt, like a missing root twt"

This pipes the mail to jenny -c. jenny will try to find the thread hash and the URL and then fetch it. (If there’s no URL or if the specific twt cannot be found in that particular feed, it could query a Yarn pod. That is not yet implemented, though.)

The whole thing looks like this:

https://movq.de/v/0d0e76a180/jenny.mp4

In other words, when there’s a missing root twt, you press a hotkey to fetch it, done.

I think I like this version better. šŸ¤”

(This needs a lot of testing. šŸ˜†)

⤋ Read More

Just realized that phone came with a bunch of ā€œhiddenā€ Meta/Facebook services pre-installed and they cannot be uninstalled, so I guess me trying to ā€œfightā€ WhatsApp is pointless anyway. 🤪

… and then people call me a ā€œludditeā€. šŸ¤£šŸ–•

⤋ Read More
In-reply-to » The ā€œMatrix Experimentā€, i.e. running a Matrix server for our family, has failed completely and miserably. People don’t accept it. They attribute unrelated things to it, like ā€œI can’t send messages to you, I don’t reach you! It doesn’t work!ā€ Yes, you do, I get those messages, I just don’t reply quickly enough because I’m at work or simply doing something else.

@bender@twtxt.net Sigh. 🫤 Elon Musk should buy Meta. Problem solved. 🤣

⤋ Read More

I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.

But sadly they’re full of pitfalls. Pitfalls everywhere you look.

Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:

$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable

Why’s that happening? I know the answer. Do you? šŸ˜‚

Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.

⤋ Read More

Regarding complexity budget, slow software, all that:

Very few people do take pride in building simple, elegant, high-quality systems, do they? Why is that? Why are huge shiny things with tons of features more attractive? šŸ¤”

I never explicitly thought about this, to be honest. It was only at the back of my head. And I never tried to teach our younger ā€œstudentsā€ at work: ā€œHey, it’s a great achievement to build something simple and elegant. That’s something to be proud of!ā€

Worse, simple software is often described as ā€œboringā€. Yes, in a way, it is boring, because your brain doesn’t have to get into overdrive to understand it. But that’s exactly the point. And it’s hard to achieve that! Simple software isn’t just ā€œfewer lines of codeā€, you have to be pretty clever to solve a problem in a simple and elegant way. So it’s something to be proud of.

Could this be an intuitive, emotional way to get more people on board the ā€œsimple softwareā€-train? šŸ¤”

⤋ Read More

The ā€œMatrix Experimentā€, i.e. running a Matrix server for our family, has failed completely and miserably. People don’t accept it. They attribute unrelated things to it, like ā€œI can’t send messages to you, I don’t reach you! It doesn’t work!ā€ Yes, you do, I get those messages, I just don’t reply quickly enough because I’m at work or simply doing something else.

I’ll probably shut it down.

Nobody cares about privacy. The reasons I bring up in discussions are ā€œtoo nerdyā€. They put all their stuff to Google or Apple, so why would messaging be any different? (We’re not even using all those Matrix crypto stuff … That would be insane.)

It’s a lost cause. I’m frustrated.

Will I give in and use WhatsApp instead? Not sure yet.

⤋ Read More
In-reply-to » I've been thinking about a new term I've come across whilst reading a book. It's called "Complexity Budget" and I think it has relevant in lots of difficult fields. I specifically think it has a lot of relevant in the Software Industry and organizations in this field. When doing further research on this concept, I was only able find talks on complexity budget in the context of medical care, especially phychiratistic care. In this talk it was describe as, complexity:

@prologic@twtxt.net Hmm, yeah, hmm, I’m not sure. šŸ˜… It all appears very subjective to me. Is 2k lines of code a lot or not?

I mean, I’m all for reducing complexity. šŸ˜… I just have a hard time defining it and arguing about it. What I call ā€œtoo complexā€, others might think of as ā€œjust fineā€. šŸ¤”

⤋ Read More

Even if it might sound a bit overdramatic: Having a ā€œmostly workingā€ dwl Wayland setup now is a huge relief. šŸ˜… It’s quite the weight off my shoulders.

There are still lots of items on my TODO list, but if X.Org were to die tomorrow, I wouldn’t be completely screwed. Only, like, 30% screwed.

⤋ Read More

Speaking of ā€œAIā€ … I guess I gotta find out soon how to disable/sabotage Microsoft’s ā€œRecallā€, before this garbage takes over the family computers. 😩

(There’s no way the people in question will switch operating systems. I’ve tried, countless times.)

⤋ Read More

Thinking about disabling the two extra buttons for ā€œforwardā€ and ā€œbackwardā€ on my mouse, because today’s websites don’t support this anymore, and it’d safe me the constant moments of ā€œoh for fuck’s sakeā€. šŸ™„

⤋ Read More

Another thing that doesn’t work anymore after blocking network traffic from my Android phone: Some push notifications.

I run a Matrix server for our family. I use ā€œFluffyChatā€ on my phone. Traffic from the phone to my Matrix server is allowed and chatting in FluffyChat works.

But I don’t get any notifications anymore on new messages.

So, what’s going on here? Does FluffyChat, which only really needs to talk to my own server, rely on some cloud service for notifications? Seriously? šŸ¤” How does that work, does this cloud service see all my notifications or what?

Anyone around who did app development on Android? Can you shed some light on this?

⤋ Read More
In-reply-to » Today I learned about ā€œeierschalensollbruchstellenverursacherā€, and one is coming my way from Amazon. šŸ˜‚

@bender@twtxt.net To quote from the german version of ISO 27001:

Ƅnderungen an Informationsverarbeitungseinrichtungen und Informationssystemen sollten Gegenstand von Ƅnderungsmanagementverfahren sein.

Fuck off, you cunts. šŸ¤£šŸ–•

⤋ Read More

Hey @sorenpeter@darch.dk, I’m sorry to tell you, but the prev field in your feed’s headers is invalid. šŸ˜…

First, it doesn’t include the hash of the last twt in the archive. Second, and that’s probably more important, it forms an infinite loop: The prev field of your main feed specifies http://darch.dk/twtxt-archive.txt and that file then again specifies http://darch.dk/twtxt-archive.txt. Some clients might choke on this, mine for example. šŸ˜‚ I’ll push a fix soon, though.

For reference, the prev field is described here: https://dev.twtxt.net/doc/archivefeedsextension.html

⤋ Read More

More basement:

I completely forgot that DVD-RAM was a thing once. Found my old disks and they still work. 🤯 The data on them is from 2008, so they’re not that old. Still impressive.

The disks are two-sided. On the photo, that particular side of the disk on the left appears to be completely unused. šŸ¤”

And then I read on Wikipedia that DVD-RAMs aren’t produced anymore at all today. Huh.

(I refuse to tag this as ā€œretrocomputingā€. Read/write DVDs that you can use just like a harddisk, thanks to UDF, are still ā€œnew and fancyā€ in my book. šŸ˜‚)

Image

⤋ Read More

I’m this close to making an Android app for managing a shopping list.

I just accidentally deleted the wrong list in the app that I’m currently using, and now there’s no way to get it back. Recreating it is a major pain, because typing on a phone sucks ass. Fuck.

Maybe I should just go back to using pen and paper …

⤋ Read More

Not making THREADING the default view of e-mail clients and thus teaching users that e-mail is ā€œchaoticā€ (if you get a lot of mail, it becomes unusable without threading) and ā€œneedsā€ full quoting all the time was one of the worst mistakes ever.

⤋ Read More
In-reply-to » I finally found the NASM assembler.

@prologic@twtxt.net High five, I’m ā€œgeneration Javaā€ as well! šŸ˜‚ There were some leftovers of C++, we used that in the computer graphics courses in Uni a lot. But pretty much anything else that involved programming was Java.

(There was nothing even remotely resembling CS in our ā€œhigh schoolā€. That school neither had the required teachers nor the equipment / PCs.)

⤋ Read More

I finally found the NASM assembler.

https://nasm.us/index.php

I had heard that name before, many times, but somehow never looked into it. Weird. šŸ¤ØšŸ¤”

This is the kind of program I was looking for.

  1. It is free software. Especially in the DOS ecosystem, free/libre software is a very scarce resource.
  2. It’s a small command line program, not a huge behemoth.
  3. Documentation appears to be well written.
  4. It can even cross-compile DOS binaries from Linux.

⤋ Read More
In-reply-to » man... day17 has been a struggle for me.. i have managed to implement A* but the solve still takes about 2 minutes for me.. not sure how some are able to get it under 10 seconds.

@xuu@txt.sour.is That was one of the horror puzzles where I had to look for help. 🄓 I modelled my solution after this: https://www.youtube.com/watch?v=2pDSooPLLkI (I can’t explain it better than the video anyway.) It takes a second on my machine and that’s with my own hashmap implementation which is probably not the fastest one.

⤋ Read More
In-reply-to » @xuu Despite that these AoC math text problems are rather silly in my opinion (reminds me of an exercise in our math book where somebody wanted to carry a railroad rail around an L-shaped corner in the house and the question was how long that rail could be so that it still fits — sure, we've all carried several meter long railroad rails in our houses by ourselves numerous times…), these algorithms are really neat!

@lyse@lyse.isobeef.org They sure are silly at times. :-) You really have to combine this event with something else, like learning a new language. Otherwise it gets boring real quick.

What I absolutely love about AoC is that it’s – indeed – a bit like school. šŸ˜… The problems are well-defined, the inputs are well-defined, and there is a definite answer. It’s either right or wrong – period. Compared to real life and work, I welcome this very much. 🤣

⤋ Read More
In-reply-to » I’m really bad at competitive programming. šŸ™„ For today’s #AdventOfCode puzzle, I spent an eternity trying to understand exactly what kind of bG9naWMgY2lyY3VpdAo= the puzzle input describes – I haven’t done that in well over a decade, so I made little progress. I knew right from the start that SSBoYWQgdG8gbG9vayBmb3IgY3ljbGUgbGVuZ3RocyBhbmQgdGhlbiBmaW5kIHRoZSBMQ00K. It just didn’t occur to me to just run my program on cGFydGlhbCBpbnB1dAo= and print those numbers. 🄓 I only did that after over 4 hours (including time to debug my nasty C code) and then, boom, solution …

But when you do take the time to analyze / reverse-engineer this puzzle, then it’s really cool. Might be my favorite one so far. 😃

⤋ Read More

I’m really bad at competitive programming. šŸ™„ For today’s #AdventOfCode puzzle, I spent an eternity trying to understand exactly what kind of bG9naWMgY2lyY3VpdAo= the puzzle input describes – I haven’t done that in well over a decade, so I made little progress. I knew right from the start that SSBoYWQgdG8gbG9vayBmb3IgY3ljbGUgbGVuZ3RocyBhbmQgdGhlbiBmaW5kIHRoZSBMQ00K. It just didn’t occur to me to just run my program on cGFydGlhbCBpbnB1dAo= and print those numbers. 🄓 I only did that after over 4 hours (including time to debug my nasty C code) and then, boom, solution …

⤋ Read More