movq

www.uninformativ.de

No description provided.

Recent twts from movq
In-reply-to » 20° temperature drop in just a hand full of days. Ooof. We went on a stroll at 10°C today. I could have used a beanie, my ears were very cold. The sun was out, but hardly any people. Very nice. Also, no wind.

@lyse@lyse.isobeef.org Wow, those are some great shots. Fall is finally here! 😍 (Might be a bit exaggerated by my redshift. 😅)

That temperature drop was pretty sudden. Boom, cold, no warning. Give me some time to adapt, man! 😂

⤋ Read More
In-reply-to » @lyse Gosh, that sounds so horrible. 🙈🤢

Speaking of public transportation, though: If it works, then it’s an amazing system. I love it.

I recently took the time to find an alternative route to one of my doctors. Hardly any people using that route and it’s faster. Absolutely brilliant. It’s like having a chauffeur. 😅

But navigating through that system is also a total nightmare. Which bus takes you to which places at which times, getting info about current construction sites, all that stuff. It takes forever.

And it doesn’t help at all that this is what their website looks like:

https://movq.de/v/acb23dc1c2/s.png

You can’t move that window at the bottom. It just sits there and takes up space from the map. It gets even worse: When you ask for a route, you get to see the buses and individual stops and all that – but all in that little window with that large font! Why do we all have widescreen monitors and than stack UI items vertically?

Sure, 30 years ago it was much worse. But it could also be much better today. 😅

⤋ Read More
In-reply-to » Thinking about what to do for the next Advent of Code. 🤔

Another idea for the upcoming Advent Of Code 2024:

OS/2 Warp 4 came with Java and that not only meant a runtime but a JDK including API docs. So, for AoC, I could try to solve as many puzzles as I can in that environment, directly on my old Pentium. For later puzzles, I’ll definitely want to switch to my normal workstation for faster development cycles – but I can still use Java and try to backport the solutions.

Sounds interesting. 🤔

https://movq.de/v/81ac0142f2/1.ff.jpg
https://movq.de/v/81ac0142f2/2.ff.jpg

⤋ Read More
In-reply-to » @cuaxolotl 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? 🤔

@aelaraji@aelaraji.com Yeah, that’s pretty close to what was outlined here: https://twtxt.net/twt/ansuy4a 😅

⤋ Read More
In-reply-to » It’s one of those days.

I went straight to bed after posting this and slept for 3 hours. 😩 Can’t I just win the lottery and be done with this whole “money” thing? 🤪

@lyse@lyse.isobeef.org Oof, well, good luck. Those multi-day meetings are usually really exhausting (and mostly pointless) in our company, hopefully it’s different at yours. ✌️

⤋ Read More
In-reply-to » I'm finally continuing with my tt rewrite in Go. So, I thought I use the shiny io/fs.FS. That's supposed to be a super cool new file system API. It allowed me to write tests more elegantly. I don't have to place actual test files on disk, but can keep everything nicely in RAM with testing/fstest.MapFS. That actually worked out great, I do like that.

@lyse@lyse.isobeef.org Indeed, great news! If you need testers at some point, let me know. 😅

⤋ Read More
In-reply-to » @falsifian In my opinion it was a mistake that we defined the first url field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:

For the record, out of the 89 feeds that I follow, only a single one has more than one # url = field:

gemini://gemini.ctrl-c.club/~nristen/twtxt.txt

And I wonder if @nristen@gemini.ctrl-c.club is aware that the order of those fields matter. 🤔

⤋ Read More
In-reply-to » @bender Yes, they do 🤣 Implicitly, or threading would never work at all 😅 Nor lookups 🤣 They are used as keys. Think of them like a primary key in a database or index. I totally get where you're coming from, but there are trade-offs with using Message/Thread Ids as opposed to Content Addressing (like we do) and I believe we would just encounter other problems by doing so.

@prologic@twtxt.net Oh, wait, there’s already another thread about it. 😅

⤋ Read More
In-reply-to » @bender Yes, they do 🤣 Implicitly, or threading would never work at all 😅 Nor lookups 🤣 They are used as keys. Think of them like a primary key in a database or index. I totally get where you're coming from, but there are trade-offs with using Message/Thread Ids as opposed to Content Addressing (like we do) and I believe we would just encounter other problems by doing so.

@prologic@twtxt.net

the right way to solve this is to use public/private key(s) where you actually have a public key fingerprint as your feed’s unique identity that never changes

Okay, this is interesting. How would this work in practice? 🤔

⤋ Read More
In-reply-to » @movq Another idea: just hash the feed url and time, without the message content. And don't twt more than once per second.

@falsifian@www.falsifian.org If the timestamp included a nanosecond part (which is not a valid twtxt feed at the moment, because it mandates RFC3339 timestamps and those only permit one subsecond digit), this could solve the editing problem with little effort. 🤔

Btw, @prologic@twtxt.net, in my experience, people editing their twts is a much more common thing than people changing the URL of their feed. 😅 It breaks threading all the time.

⤋ Read More
In-reply-to » Swa this pop up in my Github news feed today 🤔 Media Which links to https://github.com/musingstudio/go-subclub

@prologic@twtxt.net @lyse@lyse.isobeef.org Yeah, same. They say:

If you post quality content and you’ve developed a loyal audience, you should be able to ask your most passionate followers to support you with a premium subscription.

You already can ask your most passionate followers to support you: You can ask for donations.

I regularly donate to people if their content is great and if they actually ask for donations (many just don’t). The platforms for that already exist, I think. 🤔

I’m not interested in the slightest in stuff that has a paywall. “Subscribe for more content!” No, why, go away. Pages that do this immediately feel shady and not trust-worthy. 🤔

⤋ Read More
In-reply-to » @lyse @prologic Sorry, I have hardly slept last night. 😅 I probably didn’t chose the best words to describe this. 🥴

(Let’s not rush things, obviously. Such a change would have to be well thought through and actually be worth it. It’s not like the current state of Yarn/twtxt is completely unusable.)

⤋ Read More
In-reply-to » @movq It sounds complicated. After reading it only twice, I haven't gotten it. :-D

@lyse@lyse.isobeef.org @prologic@twtxt.net Sorry, I have hardly slept last night. 😅 I probably didn’t chose the best words to describe this. 🥴

Yes, I’m all for dedicated message IDs. That would be a whole new format then. But I would be fine with it.

Honestly, me too. When Yarn originally showed up, I was concerned that it would extend twtxt in dramatically incompatible ways or, worse, change it in a way so that you needed server software. 😅 The latter would have ruined it for me. A major reason why I still use twtxt/Yarn is that it’s still just a file you put somewhere. If there was the need to run a daemon, I’d give up and just use some ActivityPub thingy instead.

What I did not expect, however, was that the original twtxt itself would just … die. There has been no development in the original software anymore and virtually all the original feeds are dead. Some feeds are left, but they’re just used as an alternative to Atom/RSS for some blogs. I don’t know what happened behind the scenes that killed off twtxt (I have a few guesses, though), but the sad truth is that it’s gone.

So, yeah, maybe this gives us the freedom now to break with the original twtxt spec (if needed) and come up with a format that fixes the issues we’re seeing.

(Oh god. Are we re-inventing Usenet then? Again? 😂)

⤋ 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://we.loveprivacy.club/search?tag=hlnw5ha">#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 » @bender 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. 😅

@bender@twtxt.net The size … it depends. 🥴

$ du -sh ~/Mail/twt
244M   /home/user/Mail/twt

But:

$ du -sh --apparent-size ~/Mail/twt
33M    /home/user/Mail/twt

There are about 60k twts in there.

Regarding one-way junk: True. Looks like I mostly unfollowed those, I don’t really have that in my inbox. 🤔

These are the Top 10, btw:

$ awk '/^From: / { user[$2]++ } END { for (u in user) { print user[u], u } }' * | sort -k1rn | head -n 10
24020 "prologic"
5269 "lyse"
3928 "movq"
2285 "adi"
1985 "abucci"
1713 "mckinley"
1415 "off_grid_living"
1352 "darch"
1280 "eaplmx"
956 "bender"

⤋ 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
In-reply-to » I guess I can configure neomutt to hide the feeds I don't care about.

@falsifian@www.falsifian.org @prologic@twtxt.net @bender@twtxt.net The twt was edited. In my cache, it also has hash st3wsda and it started like this:

(<a href="https://twtxt.net/twt/yqke7sq">#yqke7sq</a>) I've been sketching out some …

When fetching the feed now, the twt starts like this and the current twt gets the hash 6mdqxrq:

(<a href="https://we.loveprivacy.club/search?tag=yqke7sq">#yqke7sq</a>) I've been sketching out some …

This can’t be avoided, really. Publishing twts and then editing them is like doing a git push --force after rewriting the commit history. Chaos will ensue. 😅

⤋ Read More
In-reply-to » @prologic @movq my setup is pretty old-school tw.txt hosting-wise. just a text file and a very simple static bridge for pikkulog-style subscribers on gemini. i do try to keep up on the twtxt format spec so i'm publishing a modern and well-formed feed. my dual-hosted website/gemcapsule is meant to eventually be entirely bespoke (my friend wrote the gemini server i'm using, so that counts enough for now) and i'd like to eventually support some of the server extensions that yarn has piloted. follow-wise, rn i kinda just manually try to pick up on who is following me by browsing random feeds. my custom clients usually do a FoaF crawl, but i don't have anything that really works running rn.

@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
In-reply-to » Interesting read about the Windows 95 bluescreen by Raymond Chen:

And the bonus read is also interesting:

https://devblogs.microsoft.com/oldnewthing/20211129-00/?p=105979

Confession: I completely forgot that Alt+Tab existed in text mode. 🤦 It’s not even a hidden feature, it’s advertised right when you start a fullscreen dos box. Well, Alt+Tab wasn’t a thing I did regularly anyway – it was usually Ctrl+Esc to open the window list (which also worked in OS/2). 🤔 I think I only started using Alt+Tab when Windows 95 removed Ctrl+Esc (because it had no use anymore, it essentially got replaced by the tasklist).

⤋ Read More
In-reply-to » I'm out of shape. I decided to walk up the local mountain to watch the sunset, but I arrived five minutes late, even though I sped up at the end. Should have started my journey ten or fifteen minutes earlier. I saw the setting sun at foot, but the photos were total disasters.

@lyse@lyse.isobeef.org

But maybe with the climate getting hotter and hotter, they migrate north to me, too.

And a lot of other nasty stuff with it, bugs, spiders, you name it. Didn’t we migrate all this way up north to be free from such Ungeziefer? 😅

⤋ Read More

There was a time when WebKit (I think it was WebKit) stored metadata of downloads in extended attributes. Like the URL you were downloading it from.

https://movq.de/v/f79b94485a/s.png

This was really useful. 🤔 Chromium also did it for a while and then they removed it due to privacy concerns. Now none of the popular browsers do it anymore. 🫤

⤋ Read More
In-reply-to » Anyone had any intereractions with @cuaxolotl yet? Or are they using a client that doesn't know how to detect clients following them properly? Hmmm 🧐

@prologic@twtxt.net There’s another thing to consider: I have a feeling that (some/most/many?) Gopher/Gemini users wouldn’t even want that. I’ve heard them say a couple of times: “If you follow me, just drop me an e-mail.” 🤔 I don’t know if this is a widespread opinion or not, but I do feel the need to first gather some feedback from them, before we start drafting a spec. 😅

⤋ Read More
In-reply-to » Anyone had any intereractions with @cuaxolotl yet? Or are they using a client that doesn't know how to detect clients following them properly? Hmmm 🧐

@prologic@twtxt.net You mean a way of letting them know that someone is following them? 🤔 I guess that’s gonna be hard (I think we discussed stuff like that a few years ago), but I’m open for suggestions. 😅

⤋ Read More

This would have been a lovely morning, wind softly rustling in the trees. If it wasn’t for the constant droning of the air planes. 🫤

I also saw a string of starlink satellites passing by. What a strange sight that was.

⤋ Read More
In-reply-to » Anyone had any intereractions with @cuaxolotl yet? Or are they using a client that doesn't know how to detect clients following them properly? Hmmm 🧐

@prologic@twtxt.net I don’t think so, no. Judging by their web site, they appear to be primarily a Gemini user (no concept of a “user agent” there). This also works:

gemini://sunshinegardens.org/users/xj9/twtxt/tw.txt

But there are nick, url, and description metadata headers in the feed, even an avatar. 🤔

⤋ Read More
In-reply-to » I'm out of shape. I decided to walk up the local mountain to watch the sunset, but I arrived five minutes late, even though I sped up at the end. Should have started my journey ten or fifteen minutes earlier. I saw the setting sun at foot, but the photos were total disasters.

@lyse@lyse.isobeef.org That is one flat snake. 🫤 Looks quite pretty, what’s left of it anyway.

What’s going on with the frogs? I guess they can’t properly see in the dark? 🤔

That large “individual” towards the would have freaked me out. Was it at least furry? Or was it a huge spider? 🤪

⤋ Read More
In-reply-to » In the process of tweaking my little static HTML index/thumbnail creator so that it a) properly supports dark/ligh mode and, more importantly, b) gracefully degrades on ancient browsers.

@lyse@lyse.isobeef.org I’m not surprised, it’s pretty archaic. It’s the only browser readily available on OS/2 Warp 3 and 4, though. 😅

⤋ Read More
In-reply-to » Found this in an old copyright notice from 1993:

@prologic@twtxt.net In a collection of (old) wallpapers that I downloaded a while ago. The source appears to be this:

http://www.avernus.com/desktop-textures/copyright.html

But the following addendum does not exist yet in the COPYRIGHT file on my disk. 😅

This restriction does not apply to use in World-Wide Web pages served from or viewed on Windows machines.

⤋ Read More

In the process of tweaking my little static HTML index/thumbnail creator so that it a) properly supports dark/ligh mode and, more importantly, b) gracefully degrades on ancient browsers.

Why? Because I often exchange data via HTTP with old systems and my tooling automatically invokes that indexer/thumbnailer script. 🥴 It’s really annoying when I just see garbage in Netscape 2 or IE5.

Screenshots and videos: https://movq.de/v/348819c482

⤋ 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 » I'm SO enjoying the new jenny --fetch-context 😁

@aelaraji@aelaraji.com @quark@ferengi.one Yep, I like it as well. 😅

There’s another situation that I’m not quite happy with.

Suppose there’s a twt like this:

2024-08-28T19:57:58Z    <a href="https://we.loveprivacy.club/external?uri=https://foo.example.com/tw.txt&nick=person_a">@person_a<em>@foo.example.com</em></a> <a href="https://we.loveprivacy.club/external?uri=gemini://a.b.c/tw.txt&nick=person_b">@person_b<em>@a.b.c</em></a> Hey! 👋

There’s no hash, so --fetch-context won’t do anything at the moment.

Option A: jenny asks interactively to fetch those feeds once.

No thread hash found
Do you want to fetch the entire feed https://foo.example.com/tw.txt? [Y/n] y
Do you want to fetch the entire feed gemini://a.b.c/tw.txt? [Y/n] n

(Bonus points for skipping feeds that you already follow.)

Option B: There could be an external/third-party tool that scans a twt for all mentions and asks the user if they want to follow them (permanently). Why an external tool? The thing is, the follow file has been completely user-managed so far and I kind of want to keep it that way. And if this is an external tool, then users can do all kinds of fancy stuff, like using fzf or whatever. Or it could allow the user to preview the feed before following it. I don’t want to have stuff like that in the core program, it depends too much on users’ preferences.

To “implement” option B, I’d only add some hints to the docs, maybe an example.

I think I’m leaning towards option B at the moment. 🤔

⤋ Read More