movq

uninformativ.de

No description provided.

Regarding jenny development: There have been enough changes in the last few weeks, imo. I want to let things settle for a while (potential bugfixes aside) and then I’m going to cut a new release.

And I guess the release after that is going to include all the threading/hashing stuff – if we can decide on one of the proposals. šŸ˜‚

⤋ Read More
In-reply-to » This scheme also only support threading off a specific Twt of someone's feed. What if you're not replying to anyone in particular?

@prologic@twtxt.net Yeah, that thing with (#hash;#originalHash) would also work.

Maybe I’m being a bit too purist/minimalistic here. As I said before (in one of the 1372739 posts on this topic – or maybe I didn’t even send that twt, I don’t remember šŸ˜…), I never really liked hashes to begin with. They aren’t super hard to implement but they are kind of against the beauty of the original twtxt – because you need special client support for them. It’s not something that you could write manually in your twtxt.txt file. With @sorenpeter@darch.dk’s proposal, though, that would be possible.

I don’t know … maybe it’s just me. 🄓

I’m also being a bit selfish, to be honest: Implementing (#hash;#originalHash) in jenny for editing your own feed would not be a no-brainer. (Editing is already kind of unsupported, actually.) It wouldn’t be a problem to implement it for fetching other people’s feeds, though.

⤋ Read More
In-reply-to » (#o) @prologic this was your first twtxt. Cool! :-P

@quark@ferengi.one

Since jenny can’t fetch archived twtxts

I wiped my entire maildir and re-fetched everything. I did that recently because @aelaraji@aelaraji.com asked me to šŸ˜…, but I guess I also did this back in 2023.

What did you do to make yours work?

jenny does fetch archived feeds during the normal jenny -f operation. Only when using the recently implemented --fetch-context, archived feeds are not fetched (yet). That was an oversight and I intend to fix that.

⤋ Read More
In-reply-to » The tag URI scheme looks interesting. I like that it human read- and writable. And since we already got the timestamp in the twtxt.txt it would be somewhat trivial to parse. But there are still the issue with what the name/id should be... Maybe it doesn't have to bee that stick?

@sorenpeter@darch.dk

  1. (replyto:http://darch.dk/twtxt.txt,2024-09-15T12:06:27Z)

I think I like this a lot. šŸ¤”

The problem with using hashes always was that they’re ā€œone-directionalā€: You can construct a hash from URL + timestamp + twt, but you cannot do the inverse. When I see ā€œ, I have no idea what that could possibly refer to.

But of course something like (replyto:http://darch.dk/twtxt.txt,2024-09-15T12:06:27Z) has all the information you need. This could simplify twt/feed discovery quite a bit, couldn’t it? šŸ¤” That thing that I just implemented – jenny asking some Yarn pod for some twt hash – would not be necessary anymore. Clients could easily and automatically fetch complete threads instead of requiring the user to follow all relevant feeds.

Only using the timestamp to identify a twt also solves the edit problem.

It even is better for non-Yarn clients, because you now don’t have to read, understand, and implement a ā€œtwt hash specificationā€ before you can reply to someone.

The only problem, really, is that (replyto:http://darch.dk/twtxt.txt,2024-09-15T12:06:27Z) is so long. Clients would have to try harder to hide this. šŸ˜…

⤋ Read More

Alright, I saw enough broken threads lately to be motivated enough to extend the --fetch-context thingy: It can now ask Yarn pods for twt hashes.

https://www.uninformativ.de/git/jenny/commit/eefd3fa09083e2206ed0d71887d2ef2884684a71.html

This is only done as a last resort if there’s no other way to find the missing twt. Like, when there’s a twt that begins with just a hash and no user mention, there’s no way for jenny to know on which feed that twt can be found, so it’ll ask some Yarn pod in that case.

⤋ Read More

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. šŸ˜‚)

⤋ 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