Email or username:

Password:

Forgot your password?
1,576 posts total
Alex Gleason
Sometimes I'm reading an article, and I try to respond to it like it's ChatGPT.
Alex Gleason
Was concerned I was sent a bomb. I opened the package very carefully. But it turns out it was just some Mastodon merch. Unfortunately the soft elephant plushie wasn't available so I'll have to wallow in despair a bit longer. Thanks @Gargron
Alex Gleason
Ratioed. Good discussion, I agree with what a lot of you are saying or at least understand it. And a small portion of you are just retarded, but that's okay because I still love you.
Alex Gleason
Baphomet statues absolutely are first amendment free speech. You are free to hate it but the whole point of free speech is to defend people and ideas you DON'T like. It is literally a slippery slope where Christians and Catholics will become censored if they don't allow devil worshipping. Sorry folks but it has to go both ways.
BigTony
@alex I'm Christian and I agree with this people being retarded and gross is annoying but when you censore retards it makes marters out of them and makes them look like they might have something worth listening to which leads to more people becoming retarded
anime graf mays 🛰️🪐
@alex >driverless

I don't know if you remember but the release of iOS 6 included Apple Maps in an attempt to take on Google Maps and it was so poorly developed it would tell people to take left hand turns off a bridge onto a highway below, take people down dirt roads hundreds of miles off course. I hope this isn't real but google tells me it is. God help everyone who buys product
Alex Gleason
So much work being done for Nostr outbox model. You should not have to query relays at all except your main one because your followers should send events to your relay, inbox model.
Alex Gleason
I'm building a class in TypeScript that manages hundreds of WebSocket connections. Those sockets are Nostr relays.

Most existing Nostr pool libraries are based around finding messages from across all relays in the pool. This library does not do that, and instead focuses on the capabilities of each relay in order to avoid being rate-limited and to optimize network usage.

It is based around the lifecycle of Subscription objects. When a socket dies, it only reopens if a subscription is active. But the lifecycle of the socket itself is separate from the subscription, and a new subscription will not interrupt the state of a socket, eg if it's in exponential backoff. They merely overlap (check each other's state at key moments).

The whole thing is built on web standards. The subscription is an EventTarget, and the system makes heavy use of AbortSignal from top to bottom, greatly simplifying the codebase.

To avoid rate-limiting, it uses semaphores to limit access to each relay, so no one relay is overwhelmed by too many subscriptions. Relays can be individually configured, and it supports loading a giant config map so you can sync with a database to have granular control over relays.

Finally, it is low-level enough to build things on top of it. It requires you to provide explicit relays for each query, and it returns all messages from all relays without any signature verification or validation. Those things, while required for a functioning software, are done outside of the pool for maximum flexibility. It's a feature not a bug.

In conclusion I am building a big Nostr thing that I really need, that nobody has done before in TypeScript. You can see my progress here: https://gitlab.com/soapbox-pub/nostr-machina/-/merge_requests/1
I'm building a class in TypeScript that manages hundreds of WebSocket connections. Those sockets are Nostr relays.

Most existing Nostr pool libraries are based around finding messages from across all relays in the pool. This library does not do that, and instead focuses on the capabilities of each relay in order to avoid being rate-limited and to optimize network usage.
Alex Gleason
@fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52 might be interested in this. The main thing missing is a piece on top that selects the best relays for filters, which is something maybe NDK can do. I'm interested in sharing code somehow.
Alex Gleason
Since Threads requires signed fetches, and you can easily circumvent blocks of it by switching to a new domain, it suggests they will move to a domain reputation system in the future where new domains need to become established in the network, similar to email, before federation is allowed. They are operating on a blacklist for now but it will slowly become more whitelistly as people push back.
Alex Gleason
What I mean by "you can easily circumvent it": you can stay on the server that you're on, but run a separate service on a different domain to sign fetches for you, and then transfer the response to your main site. You can do this infinitely to keep circumventing it until they switch to a reputation system. It's inevitable. The question is whether or not we should speed up that process.
Alex Gleason
All I want to know is if Threads puts mentions in the text of replies.
Alex Gleason
If they don't, then Mastodon will change to work like Soapbox.
Alex Gleason
GM, my websocket thingy is almost done. It just needs semaphores. Then Ditto will be able to look things up on Nostr a lot better.
Alex Gleason
I'm building a new Nostr relay pool system based entirely around this idea:
Alex Gleason
Nostr is making me become a master of WebSockets.
Alex Gleason
Bluesky is proprietary software that doesn't federate. Threads is proprietary software that federates. What a world.
Go Up