Why Nostr? What is Njump?
2024-12-19 09:21:32
in reply to

Mal on Nostr: nprofile1q…v7wld There are several points here which I'll tackle sequentially. ...

There are several points here which I'll tackle sequentially.

*Substantive considerations*

Pernickety says there's a fundamental difference between a) the timeline and b) what time it is.

On a timeline, from any point of view, there's always a future, and always a past. The future might be empty, but it usually isn't. So there's a 'down' that you haven't read. To get to it, you scroll down, and read it.

What time it is means the client knowing the last thing you have read. It's basically a pointer. It's where you are on the timeline. When you move up and down the timeline, you're changing the pointer in the timeline. The obligation of the client is to remember the value of the pointer, and whenever the client refreshes with new info, always to show you what you were last pointing at. The future will of course grow - so indeed might the past, if older messages somehow get inserted into it, perhaps from slower servers yielding up messages very late.

I don't see what's difficult about the relationship between the overall timeline, and threads with a connected conversation, like this very one! After all, the conversation thread is just a filtered subset of the overall timeline, one that matches my timeline expectations already in most clients - click on the convo, you get a timeline from OP down to most recent comment, and your convo pointer is pointing right at the thing you clicked on, just as it should. If more comments come in as you read (because it's *not* a bucket, it grows in exactly the same way as the main timeline, just slower), they are added lower down, in the future timeline. This convo filter operation suggests it would be really easy to implement as a filter on a correspondingly-organised overall timeline. That's why it feels mad to organise the overall timeline in the opposite direction. Like - make up your mind, Masto!

*Meaning of 'top'*

By 'top' I think you mean what I mean when I say the pointer. So I don't think of it as the future. 'Top' is where I want to pick up. That's most commonly where I was last - so, my pointer. Might be another pointer that I saved of course - timelines can support multiple pointers. But if I do want to go all the way into the future, and skip what lies between my pointer and `planet_earth.now()`, then I can: just by hitting the ⏬ button (client helpfully provides this of course), or by doing what we do now, hit the 🏠 bar at the top (but in my preference it would be at the bottom).

*Email, God help us all*

Your email analogy is interesting but I think different, mainly because email fossilised conflation between data and presentation. One reply email physically contains all its history, formatted so the history is 'down'. It's hideous - it would be hideous even if history was 'up' and future was 'down'. But short of implementing clever and error-prone text-formatting clients, it is what it is. There's no extrinsic timeline data for a client to format - just a block of disgusting text with conventional >, >>, >>>, >>>> indentations telling us where previous clients guessed previous messages were. Topped (bottomed) off by Outlook appending everyone's .sig at the bottom IN THE OPPOSITE ORDER asdfxnmdkjf. All superficially resembling `diff` output, but as though Morgoth had got hold of it and corrupted the original elf into an orc.

Every company I have worked for uses email like a degraded workflow database. There will be some crucial department, usually Accounts, that insists on checking email history for who last said what and when about some subject, and then finding the related embedded Excel attachment (also a martyr to its own mismanaged history) as the basis for next work. Don't tell me you haven't encountered this. It's all the result of the mismanagement of timelines in email.

*Other ideas*

Because timelines, I've occasionally thought about the Git mechanism of branches. Can one's main timeline actually be `main`? Or is `main` the Masto server's timeline? Is a convo a branch? Or is an account a branch? What does it mean to merge, if anything? I think there might be some meaningful debate here, but it's not *this* debate. Git's mechanism isn't a presentation issue, it solves substantive data model issues.
Author Public Key
npub192t7fcharu62m5peyv5nt6uyx5plxge2lnwj3s2vlf065ss2rrmssterkn