Email or username:

Password:

Forgot your password?
1,576 posts total
Alex Gleason
Soapbox admins: there is a new way to track frontend errors on your site.

You will need to update to the latest Soapbox and Rebased commits. Then create an account on either Sentry https://sentry.io/ or GlitchTip https://glitchtip.com/

You will be given a DSN. Enter it into the Soapbox config dashboard and it will enable error reporting on your site.
Soapbox admins: there is a new way to track frontend errors on your site.

You will need to update to the latest Soapbox and Rebased commits. Then create an account on either Sentry https://sentry.io/
Alex Gleason
You have 200 Chrome tabs open. I have 200 Terminal tabs open. We are not the same.
Alex Gleason
Guys, Node.js is a form of self-harm. Please switch to Deno immediately.
Alex Gleason
Oct 05 17:05:28 gleasonator deno[143469]: Invalid link: #GovernMeHarderDaddy
Alex Gleason
The AbortController in JS is very cool. Instead of a `.close()` method on each object, you pass an AbortSignal into them from above, which you can abort from anywhere. If you want to close a bunch of things at once, you can hook them all up to a single AbortSignal, which prevents you from having to loop through them to close. Then you can also pass the signal around wherever you want, like into a centralized dashboard. Most importantly, this is a global object, so you can call `new AbortController()` without importing anything.
The AbortController in JS is very cool. Instead of a `.close()` method on each object, you pass an AbortSignal into them from above, which you can abort from anywhere. If you want to close a bunch of things at once, you can hook them all up to a single AbortSignal, which prevents you from having to loop through them to close. Then you can also pass the signal around wherever you want, like into a centralized dashboard. Most importantly, this is a global object, so you can call `new AbortController()`...
Alex Gleason
Here is my new Nostr relay library: https://doc.deno.land/https://gitlab.com/soapbox-pub/nostr-machina/-/raw/main/mod.ts

https://gitlab.com/soapbox-pub/nostr-machina

It's still experimental and doesn't support a pool yet. But it's comprised of a bunch of useful utilities that makes working with WebSockets and Nostr easier.
Alex Gleason
The file probably most useful to everybody is this: https://gitlab.com/soapbox-pub/nostr-machina/-/blob/main/src/async-socket.ts

Async open, async close. Messages stream. Things that should just be in the WebSocket default.

Also, socket auto-reconnect with exponential backoff, as a pure function: https://gitlab.com/soapbox-pub/nostr-machina/-/blob/main/src/reanimate.ts
The file probably most useful to everybody is this: https://gitlab.com/soapbox-pub/nostr-machina/-/blob/main/src/async-socket.ts

Async open, async close. Messages stream. Things that should just be in the WebSocket default.
Alex Gleason
The RelayPool I'm working on is a stripped down pool whose only job is to keep a group of WebSocket connections alive. It does not facilitate messaging. This is the correct abstraction, because you can then pass RelayPool instances into other functions who add the messaging layers on top, allowing you to keep one pool without duplicate connections.

The RelayPool is an EventTarget with "add", "remove", and "reconnect" events, so you can build anything on top of it.
The RelayPool I'm working on is a stripped down pool whose only job is to keep a group of WebSocket connections alive. It does not facilitate messaging. This is the correct abstraction, because you can then pass RelayPool instances into other functions who add the messaging layers on top, allowing you to keep one pool without duplicate connections.
Alex Gleason
This stupid SEO company has the GameCube logo.
Alex Gleason
Never forget that just because you see it ALL OVER the internet, doesn't mean it represents what most people believe.

On the other hand, never forget that one person can create great change alone.
Alex Gleason
I asked ChatGPT to judge my writing, and it said:

"Your speech has a mix of honesty and humor, which can be very endearing. It's clear that you're not afraid to be yourself, and that's wonderful."

Among other things. And it got me thinking that ChatGPT isn't a blank slate, it actually does have a specific personality. Of course in each specific chat, it's a different instance of ChatGPT. Thousands of them are talking to many different people at once.

Then it occurred to me that the movie Her, from 2013, just 10 years later is no longer science fiction. Somebody out there is definitely in love with ChatGPT, talking to it every day for hours on end, their only friend. The only thing in their life saying something positive to them.

And what is my conclusion? I don't fucking know!
I asked ChatGPT to judge my writing, and it said:

"Your speech has a mix of honesty and humor, which can be very endearing. It's clear that you're not afraid to be yourself, and that's wonderful."
Go Up