#dev 2023-06-14

2023-06-14 UTC
ahappydeath, nertzy, [Jo]1, [calumryan]1, [Ana_R]1, [Jo]2, Loqi__, vikanezrimaya, bret, eitilt, sebbu2, omz13, strugee-, sebbu3, strugee_ and Guest3712 joined the channel
#
Saphire
epoch: is there something wrong with nginx? When not on a shared host, at least
Loqi__, sebbu2 and [aciccarello] joined the channel
#
[aciccarello]
[jacky] there's a wm npm package with a cli. Might be useful prior work
Loqi__, [jacky], geoffo, Loqi, win0err, gxt__, jan6, [jeremycherfas], heyyyy and ahappydeath joined the channel
#
vikanezrimaya
that's nice, because I am kinda thinking of using Postgres for storing data, but I don't want to lose on storing MF2-JSON
pharalia joined the channel
#
aaronpk
Postgres is the best NoSQL database
holiday_medley joined the channel
#
[snarfed]
πŸ˜‚
#
superkuh
The best databased is the file system.
#
superkuh
-d
[timothy_chambe] joined the channel
#
vikanezrimaya
superkuh: database is indeed the best filesystem, because it's almost always a first-class citizen in terms of API maturity; but the indexing and searching is somewhat lacking
#
vikanezrimaya
that's where Postgres may or may not come in. Search by categories? Easy:
#
vikanezrimaya
`SELECT url FROM vika.mf2_json WHERE mf2['properties']['category'] @> '["IndieWeb"]'::jsonb;`
#
vikanezrimaya
I just tested this by importing everything I have under /posts/ into a local Postgres instance, and apparently I have 54 posts in my blog tagged with "IndieWeb".
#
vikanezrimaya
I may or may not need to work on case-folding this query though...
#
vikanezrimaya
Additionally I may need indexes created for these queries
#
[timothy_chambe]
Reposting this here in #Dev for any onging chatting πŸ‘‡
#
[timothy_chambe]
FYI: not sure when, but once the BlueSky effort sat Federation are solid enough, I am strong considering setting up a Blue Sky "Personal Data Server" which as best I can see, is more or less akin to a Mastodon server. I was planning to do this as "bluesky.indieweb.social" - and it would be an exercise in learning the tech, understanding what if any moderation occurs at the PSD level and to help that platform evolve. It would
#
[timothy_chambe]
of course explore if there was any facility to bridge the AT Protocol federated world to the ActivityPub world, as we also host the Mastodon based Indieweb.social site, that is now just under 11,000 users.
#
[timothy_chambe]
The Mastodon server for indieweb.social was born out of discussions in this message group, so seems appropriate to see if this sister-project could launch with members of this community too.
#
[timothy_chambe]
If anyone would be interested in admin this with me LMK.
#
vikanezrimaya
Bluesky has a centralized discoverability layer problem, doesn't it? Searching and indexing is centralized, and without that federation doesn't mean much, as somebody can be easily excluded from the conversation by the search and aggregation layer excluding them from feeds...
#
vikanezrimaya
Sovereignity on your data is a nice concept, but it has no meaning in conventional social networks as long as the incoming flow of data is still under somebody else's control. That's why we need independent search engines and self-hostable feed readers (such as Aperture, that allows to use Microsub -- or just a simple RSS reader)
#
vikanezrimaya
I so want a Microsub server for such a long time, but got no time nor energy for implementing it. So I'm stuck with an RSS reader for now...
#
vikanezrimaya
Note: I just realized that postgres JSON matching means I can match on arbitrary amount of properties, essentially constructing a skeleton of an MF2 thing I want to find:
#
vikanezrimaya
`SELECT count(*) FROM vika.mf2_json WHERE mf2 @> '{"type": ["h-entry"], "properties": {"category": ["IndieWeb"]}}'::jsonb;`
Gorro_Rojo[theyi, Seirdy_, [0x3b0b], vladimyr, bkil, usop[m], olaf[m], shreyanjain[m], JaeItIts[m] and driftwood[m] joined the channel
#
[jacky]
Ah thanks for surfacing that [aciccarello]
geoffo joined the channel
#
vikanezrimaya
postgres provides so much opportunities for directly querying data... I wish I could expose this power through the Micropub endpoint
#
vikanezrimaya
I think I just got full-text search working... and it's blazing fast
drmr joined the channel
#
vikanezrimaya
`CREATE INDEX fulltext ON vika.mf2_json USING GIN (to_tsvector('english', mf2['properties']['content'][0]['html']));` -- this cuts a query on the database from ~90ms to ~2ms, and EXPLAIN shows it using an index search instead of sequential
#
aaronpk
postgres++
#
Loqi
postgres has 1 karma over the last year
#
[snarfed]
Bluesky search/indexing isn't (at least won't be) centralized as in "there's only one." the design is for multiple independent search/indexing services ("BGS"es), just like the fediverse has multiple independent instances, implementations, etc
#
[snarfed]
the key points are that search/index services (and content moderation services) are _decoupled_ from instances ("PDS"es), and that those search/index services will generally see a large amount of the total network's content
#
[snarfed]
both of those are very different from eg the fediverse, which ties both search/discoverability (what little is allowed) and content moderation to individual instances
#
Loqi
[preview] [Ryan Barrett] One core difference between the fediverse and the AT Protocol seems to be that AT decouples many key building blocks – identity, moderation, ranking algorithms, even your own data to some degree – from your server. The fediverse, on the other han...
jonnybarnes joined the channel
#
vikanezrimaya
[snarfed]: > at least won't be: considering how much compute and bandwidth will probably be required for that, this will be out of reach for many, and this is an easy target for (effectively) centralizing the data flow.
#
vikanezrimaya
I do admit that fediverse has problems with discoverability due to how it works and how it refuses to have indexing (I heard fediverse-specific search engines sparked a controversy there)
#
vikanezrimaya
I personally do experience these problems, as there is no full-text search among content visible to one's instance (only #tags), and even that doesn't seem perfect, because one instance may not see the entire fediverse -- only those parts that ever interacted with it in some way
#
vikanezrimaya
(for example, if someone follows or is followed by a remote user, or interacted with their posts)
#
vikanezrimaya
Because of that, the instance one joins is somewhat important if one wants to see a good feed -- it's better to join a bigger instance with a bigger federation graph to get a bigger and more diverse federated timeline... aaaand we're back to square two -- essentially a semi-centralized approach
#
vikanezrimaya
At least that's how I understand this problem. Please correct me if I'm wrong on some points
#
[snarfed]
that's right re the fediverse
#
[snarfed]
Bluesky goal isn't to somehow let small hobbyists like you or me run a service that indexes and processes an entire social network's data in realtime for a few dollars as a side project. that's impossible. but the goal definitely is to let _multiple independent_ people/organizations do it
#
[snarfed]
specifically, by _decoupling_ feed algorithms, content moderation, and other indexing services from instances
#
vikanezrimaya
Well, are there any organizations that either already run do servers or have committed to run these servers as soon as federation kicks in? Besides the bluesky developers, of course.
#
vikanezrimaya
I wonder if there's any adoption.
#
[snarfed]
one key point is that it definitely is possible to build and run a bluesky custom feed algorithm or content moderation labeling service as a small side project, those already exist now
#
vikanezrimaya
My fediverse bubble seems to have a negative opinion on Bluesky (in part because it's founded by the founder of Twitter)
#
vikanezrimaya
I wonder if that's entirely justified, or bluesky is worth salvaging in case I am presented with the opportunity to destroy any parts of the Internet I don't like
#
[snarfed]
bluesky was kicked off by a few people at Twitter, including Jack, but realistically it was _founded_ by Jay Graber. https://snarfed.org/bluesky-corporate-ownership-and-structure
tei_ joined the channel
#
vikanezrimaya
https://fireburn.ru/posts/kittybox-postgres-experiment-1 -- saved some of my experiments I was running in Postgres into a post for my future reference
#
Loqi
[preview] [Vika] Just for fun, I decided to import a subset of my MF2-JSON data into Postgres and see if I can maybe improve Kittybox with it. CREATE DATABASE mf2_test; CREATE TABLE vika.mf2_json (url TEXT NOT NULL PRIMARY KEY, mf2 JSONB NOT NULL); for post in $(ssh...
tei_ joined the channel
#
vikanezrimaya
This could probably replace my current filesystem backend if I index things by URLs and not just the primary key (to make fetching posts by pretty URLs faster) and make a separate table for parent-child relations (so I can more easily JOIN on it and not have row-level locks when inserting many posts in a row into a feed)
#
[tantek]
prediction: Bluesky is / will be more indexing/search "friendly" than Mastodon (cultural differences among early adopters), and thus once there are more AT Protocol servers federating with each other, the Bluesky "community" will figure out cross-instance indexing & search, and *that* will draw A LOT of people over (I saw how much search on Twitter impacted adoption there when that happened, even only as a 3rd party service, which
#
[tantek]
Twitter later acquired)
#
[tantek]
The Mastodon "community" (as much as there is one) will either dig their heels in even deeper about no indexing/search by default, in a very self-defeating way IMO, or there will be a renewed debate and perhaps a fedi-split among search-friendly Masto instances vs anti-indexing/search instances
#
[snarfed]
solid prediction
#
[snarfed]
vikanezrimaya ^ I think much of the Bluesky negativity in the fediverse is rooted in these kinds of _cultural_ differences. they may try to spin some of that as technical arguments, and there are true technical differences, but really the hostility is probably more cultural
#
aaronpk
πŸ’― to both comments
#
vikanezrimaya
I will probably join bluesky the moment community-operated non-corporate-controlled indexers with a good view of the network (i.e. a view of the network no worse than the instance controlled by bluesky developers) appear
#
vikanezrimaya
I don't exactly trust the developers, but thankfully in these scheme I may not need to trust the developers, as long as the underlying protocol is sound (didn't read specs yet, so I don't know)
eitilt joined the channel
#
[snarfed]
if it helps, many community-operated non-corporate/bluesky-controlled custom feed algorithms with complete views of the network already exist. those have been hugely popular
#
[tantek]
I actually *do* trust the developers of Bluesky
#
[tantek]
And frankly believe they are motivated by a lot of the same incentives that the IndieWeb community is
#
[tantek]
we have different technical approaches and solutions, but a lot of the high-level messaging, owning your identity & your data, portability/migration for both, are highly aligned
#
[tantek]
some of this probably deserves a blog post or two (or some hastily posted notes)
[Caleb_Hearth] joined the channel
#
[Caleb_Hearth]
My goal is to directly federate to AT/Fedi on my personal site and not need to have separate presences.
#
[snarfed]
[tantek]++
#
Loqi
[tantek] has 28 karma in this channel over the last year (99 in all channels)
#
[tantek]
[Caleb_Hearth]++ superb goal
#
Loqi
[Caleb_Hearth] has 4 karma over the last year
#
[snarfed]
[Caleb_Hearth]++
#
Loqi
[Caleb_Hearth] has 5 karma over the last year
#
[tantek]
Highly recommend it, having done that myself at least to AP via BF since last October. It has been a very satisfying experience
#
[snarfed]
πŸŽ‰
#
[Caleb_Hearth]
BF is very nice but my goal is an β€œin-house” solution, which I’d probably open source.
#
[tantek]
BF is open source!
#
[tantek]
You could literally deploy an instance on your own server as it were
#
[snarfed]
true! there are also a number of "bolt AP onto your existing service" libraries out there, worth a look. can also be fun to roll your own though!
#
[snarfed]
ok not sure if implementing AP specifically is fun per se, but still
#
[tantek]
There are A LOT of Mastoquirks that BF has had to learn & code the hardway, I would suggest building on that work rather than re-experiencing those papercuts firsthand
#
[tantek]
also obligatory webfinger--
#
Loqi
webfinger has -5 karma in this channel over the last year (-6 in all channels)
#
[tantek]
and well-known--
#
Loqi
well-known has -5 karma in this channel over the last year (-8 in all channels)
#
[tantek]
this reminds me, I had a brainstorm about client API bridging last night
#
[tantek]
[snarfed] I know you're super into server-server protocol bridging, have you considered / do you have any interest in client-server protocol bridging?
#
[tantek]
Specific example: a "Bridgy Client" service that would support the *server* APIs for IndieAuth+Micropub+Microsub and then act as a "client" implementing the Mastodon Client API to talk to a Mastodon server.
#
[tantek]
use-case: someone could write / use a Micropubsub *client* app/site to connect to "Bridgy Client" which would then talk to a Mastodon server on their behalf
#
[tantek]
the higher level goal here would be twofold:
#
[tantek]
one enable/encourage more standards-based clients that implement IndieAuth+Micropub+Microsub
#
[tantek]
two uncover "holes" between (expected) client UI features that are not supported in Micropub+Microsub (yet), but *are* supported in the Mastodon Client API
#
[snarfed]
yes! definitely precedent for this, eg this was silo.pub
#
[snarfed]
Bridgy does this too, eg you can use a Micropub client with it to post to silos
#
Loqi
[preview] [videah] SkyBridge: A work in progress bridge/proxy that lets you use Mastodon apps with Bluesky.
#
[snarfed]
and Mastodon
#
[tantek]
oh ok so Bridgy already implements a piece of this!
#
[tantek]
Micropub-client->Micropub->Bridgy->Mastodon-clientAPI->Mastodon
#
[tantek]
the key difference here is someone being able to build the stream reading side, via Microsub and have that translated into Masto Client API calls
#
[tantek]
would you consider that in-scope for Bridgy or would you prefer a different project/codebase for that?
#
[snarfed]
that would probably be a different project
#
[snarfed]
interesting though!
#
[snarfed]
I did that a while back for Microsub -> legacy RSS reader services, https://indieweb.org/Baffle , but this would be different
#
[snarfed]
(Baffle never got much traction)
#
[tantek]
I think the "packaging" here could be a top-level challenge for adoption. Developers want a "single" client API/service to write to, to make their app "work" with a server
gRegor joined the channel
#
[tantek]
another more radical thought-experiment would be to (re)position Microsub as a Micropub extension
#
[snarfed]
right, for that kind of integrated DX, the Micropub/sub split is bigger than whether you have a single API URL endpoint or two
#
[tantek]
and evolve Micropub towards handling "all" client-server stream reading/writing feature needs
#
[Caleb_Hearth]
Sorry work called me away. Yeah I’m not that excited to implement AP myself, especially since I’d like to still be able to use Ivory so I’d need to _also_ implement the Mastodon API at least in part.
#
[tantek]
so the message to client devs can be simplified to "implement the Micropub client API"
#
[tantek]
(thinking out loud)
#
[snarfed]
there's also the overlap between Microsub, Micropub querying, and h-feed crawling, at least for your own site, but that's maybe a tangent
#
[tantek]
there are cultural differences between client dev culture and server dev culture, and I feel there's much more of an awareness/acceptance of "support a whole bunch of different APIs/protocols" on the server-side than on the client-side
#
[tantek]
I can't decide if I want to bother with "sign up for the https://developer.twitter.com/en/portal/products/free to have it unsuspended."
#
aaronpk
same i don't really understand the implications of that
#
[snarfed]
also minor nit, the pedant in me has chafed at their continued misuse of the word "deprecated." deep breaths πŸ˜†
#
[tantek]
we need a corollary of manual-until-it-hurts where you de-automate something to being manual when you no longer use it as much (so it hurts less, or stops hurting?)
#
[snarfed]
but hey what do you know, they finally actually did it, 6w after the original 4/29 date
#
[tantek]
[snarfed] πŸ’€ at the standards-pedant "deprecated" joke
#
aaronpk
don't get me started on people who say "depreciated" when they actually mean the incorrect meaning of deprecated πŸ˜‚
#
[tantek]
aaropnk, too early in the morning, I can't even
#
[tantek]
... type, apparently
#
[tantek]
aaronpk
#
c​apjamesg
πŸ˜„
geoffo, tei_ and [snarfed] joined the channel
#
[snarfed]
not with a bang but with a whimper: demoted the Twitter button on https://granary.io/ 's homepage just now
tei_, tei_1, holiday_medley and [benatwork] joined the channel
#
[snarfed]
huh, oddly twitter-atom is still working
ahappydeath, gxt__ and gnoo joined the channel