#social 2018-08-09

2018-08-09 UTC
#
nightpool[m]
federation is not difficult to code.
#
nightpool[m]
applications are difficult to code.
#
nightpool[m]
I added dead-simple federation for a class project in less then two days.
#
nightpool[m]
the "problem" of federation is the exact same problem as any other development, figuring out what UX you want, and then figuring out how to build it.
#
nightpool[m]
people just have less experience with federation UX so they have less hooks with which to get started.
#
kaniini
that's literally what litepub intends to provide, but okay
#
nightpool[m]
litepub intends to provide a UX?
#
kaniini
it intends to provide the hooks
#
nightpool[m]
the "hooks" are the existing UX patterns people are familiar with
#
nightpool[m]
if you have a schema of how a "instagram-like" website is supposed to work, and you're a programmer, you generally know where you'd start building one.
#
nightpool[m]
most people who start building federation projects do not have a schema for how a federated website is supposed to work
#
kaniini
the eventual goal is to provide those resources too
#
kaniini
if we are to crush the corporate social media machine
#
kaniini
we need like 50 mastodons
#
nightpool[m]
we have thousands
#
kaniini
i don't mean instances, i mean software
#
kaniini
we need to gather the fundamental details and make them available to aspiring designers like Gargron
#
kaniini
so that the Gargrons of the world can actually build these things
#
kaniini
(and make them actually look good)
#
nightpool[m]
nearly all ircd's are a fork of the original
#
nightpool[m]
i get why people are concerned about a monoculture, but i don't think the bottleneck is "more standardization initiatives"
#
nightpool[m]
frankly, we need another spec group like we need a hole in our head.
cwebber2 joined the channel
#
pantherse
cwebber2, I've been meaning to catch you and continue or conversation about reviving activipy's dev activity.
#
aaronpk
Who said we need another spec group?
#
aaronpk
I absolutely agree we need to make it easier for people like Gargron to make new projects that interop with the rest of them
#
aaronpk
also lol my autocorrect wanted to change interop to Interpol
#
pantherse
Given what I've read so far, it seems to me someone is having problems figuring out how to get their input to a form that the language can process effectively. At the risk of sounding like an pompous jerk; but, that "issue" has been around since the days of C.
ahihi2, nightpool, xmpp-social, vasilakisfil, vasilakisfil_ and fr33domlover joined the channel
#
tuxether[m]
Where do I post a remote follow? The Actor's outbox, the Target's outbox, or both?
tantek, ajordan and timbl joined the channel
#
cwebber2
tuxether[m]: to the actor's inbox
#
cwebber2
set the type to be Follow, the object to be the actor you want to follow
#
cwebber2
then they will have to either Accept or Reject that request
#
saranix
tuxether[m]: c2s -> sender's outbox -> sender's server<->target server -> target inbox
#
saranix
depending on whether your web browser (js) has activitypub smarts or if the server is acting as both client and server (usually is)
#
cwebber2
ah yeah
#
cwebber2
sorry I meant the target actor's inbox
#
cwebber2
not *your* actor
#
tuxether[m]
thanks! it seems to work now. I'm thinking my application be able to join the fediverse really soon 🙂
#
cwebber2
if it's c2s, you indeed post to the outbox
#
cwebber2
if it's s2s, you post to the person you want to follow's inbox
#
cwebber2
(er, in c2s post to *your* outbox)
#
kaniini
nightpool[m] we are just documenting a specific profile of activitypub that implementors can make use of right now.
#
kaniini
if cwebber2 is open to purging @context from activitypub 1.1, then that profile could be useful as a starting point for activitypub 1.1
#
kaniini
if not, it exists independently. no harm, no foul.
#
cwebber2
we're not purging json-ld from activitystreams, but we will maintain the current state where if using the base of activitystreams you don't need to use @context in activitypub because the AS2 context is implied
#
cwebber2
that is a pretty baked-in decision at this point
#
kaniini
as i said, i'm not against presenting extensions in a way that json-ld parsers can make use of them specially.
#
kaniini
litepub intends to present extensions in a JSON-LD compatible way, so they would behave as if there were a @context
#
kaniini
at least, based on my read of the JSON-LD specification, URI-namespaced keys are equivalent
#
kaniini
this allows for pure JSON implementations to extend the messages without needing JSON-LD
#
kaniini
which solves the problem
#
cwebber2
kaniini: you mean where you use the full expanded URI?
#
cwebber2
for the property?
#
kaniini
yes
#
cwebber2
you can certainly do that
#
kaniini
then, there we go :)
#
cwebber2
I'm not sure implementors will like doing it, but it's valid
#
kaniini
cwebber2 i have half a dozen top-level fediverse projects already agreeing to doing precisely that
#
kaniini
so, what i would appreciate from W3C side
#
kaniini
is a commitment to that same pattern in activitypub
#
kaniini
in lieu of @context for extensions
#
cwebber2
I'm not sure what the trouble is... if you already have a working json-ld library, you can just compact incoming messages to your local context and then never think about json-ld again
#
kaniini
the problem is that you cannot implement json-ld in statically compiled languages
#
kaniini
json-ld is great if you are using javascript or a scheme derivative
#
kaniini
json-ld is hell if you are using haskell, go, etc.
#
cwebber2
kaniini: I don't see how you can have an easier time with the extension system you proposed
#
kaniini
simple
#
cwebber2
when you compact locally as I described
#
cwebber2
you'd end up with what you said
#
cwebber2
where the URIs not in your local context are expanded
#
cwebber2
and from that point, you're in the same boat
#
kaniini
well, if you can update activitypub to say to do that
#
kaniini
then we can agree to disagree
#
kaniini
on the rest of json-ld
#
csarven
Who is using Haskell/miranda... with ActivityPub/JSON-LD right now? I'm geunuienly curious.
#
kaniini
and i feel this would be the most productive outcome :)
#
kaniini
see
#
kaniini
csarven Who is using Haskell/miranda... with ActivityPub/JSON-LD right now? I'm geunuienly curious.
#
kaniini
this right here, is getting back into the danger zone
#
cwebber2
I'm fine with adding non-normative errata explaining how to compact to a local context
#
cwebber2
kaniini: here's the thing though: the reason haskell and etc have trouble with open world systems like json-ld is that you can have an unlimited number of other fields
#
kaniini
nobody is using Haskell/miranda with it because it is too much of a pain
#
cwebber2
but that's the case also with any open world system, including when you have expanded URIs
#
kaniini
cwebber2 yes, what we are saying, as implementors
#
cwebber2
because the records aren't set up to have them
#
tuxether[m]
there are people in this chatroom using statically typed languages including haskell. json-ld isn't impossible, just hard
#
kaniini
is that we do not wish to consider it an open world system
#
cwebber2
kaniini: then don't have extensions at all, right?
#
kaniini
no, rigidity and extensibility are compatible
#
kaniini
but you have to understand something very important
#
cwebber2
could you explain how to solve the restricted record scenario
#
kaniini
every activitypub message
#
kaniini
has side effects
#
cwebber2
and how it's different once you have an expanded message
#
kaniini
i give up
#
cwebber2
that's true but a different issue
#
cwebber2
these are two different issues, happy to discuss them separately:
#
cwebber2
side effects of activities
#
cwebber2
and mapping extensions to statically typed languages
#
cwebber2
if you have extensions, it's open world
#
kaniini
it is very simple
#
kaniini
you just don't process
#
kaniini
extensions you don't care about
#
cwebber2
you can do that already
#
kaniini
yes
#
kaniini
you can
#
kaniini
what we are saying is
#
kaniini
we can just process
#
kaniini
properties
#
kaniini
by hand
#
kaniini
without json-ld
#
cwebber2
ok, that's a different statement though then about the record restriction of statically typed languages
#
kaniini
if "https://pleroma.social/foo" in data["object"], do: [whatever]
#
kaniini
but the thing is, all of this @context stuff
#
kaniini
is not usable
#
cwebber2
sure, you have to compact to your local context. there is that step
#
cwebber2
again, it'll look like what you described once you do that
#
kaniini
yes, and what i am saying is
#
cwebber2
so I think what you're saying is
#
kaniini
activitypub servers must compact when sending on the wire
#
kaniini
which solves @context
#
cwebber2
sure, they must compact when something comes in
#
cwebber2
as long as they're using extensions
#
kaniini
i'm talking about *sending*
#
cwebber2
we already recommend sending in compacted form
#
kaniini
they should also compact when *receiving*, but in litepub, we can just be like "oh, your extensions were sent wrong, sorry"
#
cwebber2
the problem is whether or not the *extensions* are the same on your end
#
cwebber2
and that's why you compact on incoming
#
kaniini
that's the entire point of using the URIs
#
kaniini
on the wire
#
cwebber2
kaniini: I think what you mean isn't compacting
#
cwebber2
you mean expand the extension properties
#
cwebber2
you've got it backwards
#
kaniini
okay, whichever
#
kaniini
the point is
#
kaniini
{"https://pleroma.social/foo": "bar"}
#
kaniini
do it that way
#
kaniini
no @context
#
kaniini
geeze
#
cwebber2
kaniini: if you want to do that, that's fine, and it's even valid json-ld
#
kaniini
yes, i know it is
#
kaniini
that's why we plan to specify the extension method that way
#
cwebber2
I think we aren't going to be mandating it, but if implementations all migrate towards doing that as best practice, then that can become noted as the established best practice
#
kaniini
what i am asking is for W3C to have consensus with us on doing it that way on the wire
#
kaniini
when AP 1.1 comes out
#
cwebber2
kaniini: if you get all implementations to move towards this, then when AP 1.1 comes out it's a likely event that we could have that as implementation advice in the spec that this is established best practice
#
kaniini
cwebber2++
#
Loqi
cwebber2 has 19 karma over the last year
#
cwebber2
I'm doubtful it will happen but that's something to test towards if you want to see that outcome
#
cwebber2
we can't say that it's mandatory, because we can't break backwards compatibility with the 1.0 spec like that either
#
kaniini
it's already agreed to by multiple projects :)
#
cwebber2
but I agree it's a valid way to do json-ld
#
kaniini
and will be part of litepub
#
cwebber2
well, then see if it becomes the consensus in running code
#
kaniini
litepub is not your enemy, it's really your friend
#
kaniini
the goal is to dial in the parts of the spec that were underspecified using realworld projects
#
cwebber2
I don't have any problem with exploring a subset of activitypub, as long as everyone collaborates politely
#
cwebber2
kaniini: the main reason I was frustrated the other day was all the negative language was making this chatroom really stressful for myself and I know at least a few others
#
cwebber2
so can we avoid that when we work together?
#
cwebber2
if we can do that, then awesome
#
kaniini
JSON-LD makes me angry
#
kaniini
:D
#
cwebber2
well, we have a code of conduct
#
cwebber2
we have to treat each other with respect
#
cwebber2
we don't have to agree
#
cwebber2
and it's okay for tech stuff to make us frustrated
#
cwebber2
but let's do so cooperatively and in the best spirits we can
#
kaniini
yes, we can collaborate in a polite way
#
kaniini
and in fact, you're welcome to drop by #litepub at freenode
#
kaniini
but litepub uses a different consensus model, it is meant to be biased towards implementors
#
cwebber2
rough consensus and running code, I get it
#
cwebber2
kaniini: I'd encourage you to not be totally dismissive of the consensus model we have here though before trying to participate in it. We also prioritize running code here, but also some other processes
#
cwebber2
it ain't perfect
#
cwebber2
but I think it's not as bad as I've seen some messages make it out to be
#
cwebber2
and this is in general, despite some of the complaints I've seen, not a "corporate-controlled" group
#
kaniini
i said the W3C in general is corporate :p
#
cwebber2
in fact this has been quite unusual, and the working group was even at some risk at some point, in that we had very little traditional corporate backing
#
cwebber2
well and I don't disagree there
#
cwebber2
my commentary on w3c membership structure being problematic is well known
#
cwebber2
happy we got to a more friendly place kaniini, hope it continues
#
kaniini
sorry, it is just every time i try to implement JSON-LD in elixir, it winds up being obnoxious :P
#
saranix
IMGO this is the only w3c community group that *actually works with the community* and not just some privileged ivory tower subset of it
#
kaniini
yes
#
saranix
IMHO
#
kaniini
anyway, you might be surprised. there's a few people on #litepub who are giving AP a new chance because we intend for the spec to be rigid.
#
kaniini
including diaspora
#
cwebber2
happy to hear it
#
pantherse
cwebber2, ping
#
tuxether[m]
If I create a document via C2S and cc a remote actor, is it the server's job to trigger S2S?
#
saranix
yep
vasilakisfil_ and vasilakisfil joined the channel
#
kaniini
cwebber2 i mean, obviously, litepub is not that
#
kaniini
cwebber2 but the problem with these particular script kiddies
#
kaniini
cwebber2 is that they will just keep doing it again and again
#
cwebber2
kaniini: so keep kickbanning them
#
kaniini
i mean
#
kaniini
id id ban them
#
kaniini
you didn't let me finish :)
#
cwebber2
kaniini: ok, I'll rejoin, but something that could help
#
cwebber2
put up a code of conduct
#
cwebber2
at least make it absolutely clear that from the litepub maintainers' point of view
#
cwebber2
that stuff is not ok
#
cwebber2
put it in the /topic even
#
cwebber2
Contributor Covenant Code of Conduct is a good one
#
kaniini
i agree
#
kaniini
i just have fatigue dealing with this fucker
#
kaniini
ever since i posted in fediverse that kloeri was not a pedophile, he has been chewing me up
#
kaniini
i figured antissh would make him leave me alone, i guess not :p
timbl joined the channel
#
kaniini
cwebber2 :D
#
cwebber2
gotta go for a while. I have guests coming over soon.
timbl, jondashkyle_, taravancil_, dwhly_, bitbear_, mattl, melody, Loqi_, ma1uta, schmarty[m], cdchapman, Gargron, er1n and ahihi joined the channel