Live data from Hacker News

Introduction to AT Protocol

mackuba.eu

91–100 of 117 posts

Re: Introduction to AT Protocol

#91

If you are interested in building on ATProtocol, one of the best places to start is the Discord (until we have an atproto native alt @blebbit.app) https://discord.atprotocol.dev/ Of course the spec is good too, very easy read https://atproto.com https://docs.bsky.app

When discord alternative?

Re: Introduction to AT Protocol

#93
post #87

Earlier quoted context omitted.

A quick back-of-the-envelope calculation says that USD 0.1 would be about 700 Wh, so, give or take, a high-performance desktop processor running full tilt for over four hours. Personally, I'd prefer something like an expansion of how XMPP works. By default you only see what people in your contact list have sent you, and anything else is marked "dubious", and it's up to you to read it or not. I think it's a mistake th…

> By default you only see what people in your contact list have sent you, and anything else is marked "dubious", and it's up to you to read it or not. Any email client could implement this policy. You could even prioritize mail over who sent it or whether it's a reply to a mail you sent or have already read.

Yes, but if the third server down the line didn't propagate the email, there's not much the client can do. That's what sucks about email as a protocol; it's been taken over by a handful of providers who will refuse to play ball with anyone outside their club, or who doesn't have the time to monitor the continuously-updated black lists.

Re: Introduction to AT Protocol

#94
post #4

Been pondering for my team to use it for our product’s timeline. I don’t particularly want our user base to be Bluesky, but it’d be good to have support for the protocol, and control over the system. Have there been any products go embraced this? Or is it like ActivityPub where basically the whole thing is Mastodon.

Similarly our news site is considering a live-blog feature and I'm wondering if AT Proto would be a fun way to do it.

Re: Introduction to AT Protocol

#95
One nitpick about ActivityPub actor identity — the username doesn't have to be part of your ID (the URL that points to the JSON object representing your actor). It is in Mastodon, but some other software (Smithereen that I work on, and also Misskey) uses opaque identifiers derived from database row IDs. This allows for cleanly changeable usernames since you can just update your `preferredUsername` and `url` fields.

Re: Introduction to AT Protocol

#96

> unicode scalars, which most languages index strings in Very few do. Of moderately popular languages, Python is the only one I can think of. Well, Python strings are actually sequences of code points rather than scalars , which is a huge mistake, but provided your strings came from valid Unicode that doesn’t matter. Languages like Rust and Swift make it fairly easy to access your string by UTF-8 or by scalar. Langua…

Hmm… Yeah, I guess each language does it kinda differently. At least Ruby also does it similarly like Python.

> I’m confused here. You established indexing is by UTF-8 code unit, then said it’s because of JavaScript which… doesn’t do UTF-8 so well?

It's not that UTF-8 is because of JavaScript, it's that indexing by bytes instead of UTF-8 code units is because of JavaScript. To use UTF-8 in JavaScript, you can use TextEncoder/TextDecoder, which return the string as a Uint8Array, which is indexed by bytes.

So if you have a string "Cześć, #Bluesky!" and you want to mark the "#Bluesky" part with a hashtag link facet, the index range is 9...17 (bytes), and not 7...15 (scalars).

Re: Introduction to AT Protocol

#97

If you are interested in building on ATProtocol, one of the best places to start is the Discord (until we have an atproto native alt @blebbit.app) https://discord.atprotocol.dev/ Of course the spec is good too, very easy read https://atproto.com https://docs.bsky.app

When discord alternative?

I've been building Mikoto Platforms on https://github.com/mikotoIO/mikoto

Re: Introduction to AT Protocol

#98
post #76
post #60

Earlier quoted context omitted.

there shouldn't be a rush to replace the things that have stood the test of time. Lindy's law would suggest a protocol that's been around 40+ years is fundamental and won't be going anywhere anytime soon.

When it comes to SMTP for email, time has only served to highlight its inadequacy. DMAC, DKIM, SPF, S/MIME, PGP are all ugly workarounds. The issues are fundamental.

those ugly workarounds are actually brilliant signs of adaptability (not signs of failure). SMTP isn't inadequate, it's resilient. There's a good chance we'll still have SMTP around another 50-500 years.

Re: Introduction to AT Protocol

#99

> unicode scalars, which most languages index strings in Very few do. Of moderately popular languages, Python is the only one I can think of. Well, Python strings are actually sequences of code points rather than scalars , which is a huge mistake, but provided your strings came from valid Unicode that doesn’t matter. Languages like Rust and Swift make it fairly easy to access your string by UTF-8 or by scalar. Langua…

Hmm… Yeah, I guess each language does it kinda differently. At least Ruby also does it similarly like Python. > I’m confused here. You established indexing is by UTF-8 code unit, then said it’s because of JavaScript which… doesn’t do UTF-8 so well? It's not that UTF-8 is because of JavaScript, it's that indexing by bytes instead of UTF-8 code units is because of JavaScript. To use UTF-8 in JavaScript, you can use Tex…

> indexing by bytes instead of UTF-8 code units

When the encoding is UTF-8 (which it is here), the code unit is the byte.

They called the fields byteStart and byteEnd, but a more technically precise (no more or less accurate, but more precise) labels would be utf8CodeUnitStart and utf8CodeUnitEnd.

Re: Introduction to AT Protocol

#100

Earlier quoted context omitted.

Hmm… Yeah, I guess each language does it kinda differently. At least Ruby also does it similarly like Python. > I’m confused here. You established indexing is by UTF-8 code unit, then said it’s because of JavaScript which… doesn’t do UTF-8 so well? It's not that UTF-8 is because of JavaScript, it's that indexing by bytes instead of UTF-8 code units is because of JavaScript. To use UTF-8 in JavaScript, you can use Tex…

> indexing by bytes instead of UTF-8 code units When the encoding is UTF-8 (which it is here), the code unit is the byte. They called the fields byteStart and byteEnd, but a more technically precise (no more or less accurate , but more precise ) labels would be utf8CodeUnitStart and utf8CodeUnitEnd.

Sorry, I keep mixing these - bytes instead of scalars, which I think would be more natural to iterate over in most languages (at least the ones I use).
Post reply on HN