#social 2018-03-19

2018-03-19 UTC
timbl joined the channel
#
fr33domlover
puckipedia / aaronpk it seems Mastodon has an API - is the API really necessary? Are there things it can do that are impossible to do by using ActivityPub to talk to a Mastodon server?
timbl, bwn, xmpp-social and fr33domlover joined the channel
#
fr33domlover
Do I need to sign that CLA if I want to participate in the meeting?
#
fr33domlover
I have a very interesting topic to discuss :)
#
ajordan
fr33domlover: re: Mastodon's API, I'm not familiar with Mastodon's API but I mean
#
ajordan
ActivityPub has a client-to-server API too, I'm not sure what you mean by "is the [Mastodon] API really necessary
#
ajordan
Mastodon's API predates its ActivityPub support, which is part of the explanation - it's historical
#
ajordan
about the CLA thingy, I *think* so although I don't know for sure
#
ajordan
it's not really a big deal though, mostly it's just a patent waiver I'm pretty sure
#
fr33domlover
Thank you ajordan
#
fr33domlover
Maybe that's indeed the reason
#
fr33domlover
But then I still wonder, whether they could deprecate the API
#
ajordan
I don't know
#
ajordan
probably, but by now there's a number of clients relying on it
#
ajordan
you'd have to ask some Mastodon folks, like nightpool or Gargron
#
ajordan
I can only speak for pump.io (I'm strugee on Freenode)
#
fr33domlover
Thanks ajordan
#
fr33domlover
I'll ask them
#
fr33domlover
ajordan, I read your website front page and the intro sounds so much like myself ^_^
#
fr33domlover
I like to self host my stuff at home and support and use decentarlized web tech
#
ajordan
I should probably redo my homepage again
#
fr33domlover
I'm working on a decentralized web app \o/
#
ajordan
I just filed a bug lol
#
ajordan
fr33domlover: if you do end up basing it on ActivityPub be sure to file an implementation report!
cdchapman joined the channel
#
fr33domlover
ajordan, sure, I will! I'm going to try basing it on ActivityPub, not exactly sure how (I mean, how many inboxes and outboxes to have, to really cover all the features and be nicely RESTful) but I'll figure it out ^_^
#
ajordan
well let us know if you want help thinking it through
#
fr33domlover
I do want to talk to people and maybe get advice / opinions
#
fr33domlover
The biweekly meetings seem relevant
#
fr33domlover
I want to join the next meeting I get a chance to join
#
fr33domlover
And ask there if that's okay :)
#
ajordan
yeah they're open to everyone
#
ajordan
we'd love to have you
#
ajordan
literally forgot about the last one since he was on break
#
saranix
it was only myself and melody, then cwebber showed up an hour late and said he had some stuff to discuss if we were interested, we said we were then he disappeared! :/
JanKusanagi, jankusanagi_, timbl, gobengo-irc-bot and fr33domlover joined the channel
#
fr33domlover
ajordan / aaronpk how do I tell when the next meeting is?
#
fr33domlover
It seems last one was Feb 28 and no further meeting is mentioned
#
fr33domlover
I just don't want to miss it ^_^
#
saranix
should be April 4th 1500 UTC I think
#
fr33domlover
Where do I check?
#
saranix
no sorry mar 28th
#
saranix
went cross-eyed for a sec
#
saranix
the wiki is the right place but it often out of date unfortunately
#
fr33domlover
Hmmmm but that's morning in the US
#
fr33domlover
Bias towards people with flexible work schedule ;)
#
saranix
and, sady, if it hasn't been updated, that means the chairs are busy, and if the chairs are busy, there's like a 50% chance the meeting is punted, like the last one.... sadly... empirically my experience anyways
#
fr33domlover
Is there some other place for discussion?
#
fr33domlover
iirc there's no ML for the group
#
saranix
well the bias is towards members of w3c, and members generally do w3c work on behalf of a corp during working hours :-)
#
fr33domlover
Haha yeah
#
Loqi
rofl
#
fr33domlover
but this is a community group saranix
#
fr33domlover
which is different
#
saranix
you would think
#
fr33domlover
just came back from concert where he played
#
saranix
personally I think biweekly meetings aren't enough, and I wish there was more activity with more people
#
fr33domlover
saranix, why not enough?
#
fr33domlover
I read the log from the last meeting
#
fr33domlover
What do you think more time would gain saranix?
#
saranix
because it almost feels like everyone is just trying to squeeze in a little bit of this very important topic, at the current rate and number of participants, we might have a decentralized web in 20-30 years time...
#
fr33domlover
Tbh in Snowdrift we do a meeting every week
#
saranix
I feel like no one in the world really cares enough
#
fr33domlover
saranix, the question is, do participants just have little to say, or they have a lot but can't get enough time to work on their ideas with the group on these meetings
#
saranix
well of the small group of people who show, not much is to be said, that's why I said I also with more people
#
saranix
s/with/wish
#
fr33domlover
saranix, maybe invite and encourage people then?
#
fr33domlover
Who would you bring who doesn't participate?
#
saranix
lol... I do that all day. I do all kinds of non-profit work on this stuff (and some for profit)... like 24/7
#
fr33domlover
Oh really
#
fr33domlover
Which next steps do you envision for the decentralized web saranix?
#
fr33domlover
I think aside of tech stuff we have a *huge* social problem:
#
fr33domlover
How do we get people to switch from the centralized monopolies to the decentralized web
#
fr33domlover
And to solve this problem, we need more than a team of software developers
#
saranix
My meatspace work is mainly focusing on getting small businesses on the decentralized web. It's tough work...
#
fr33domlover
Yeah I wonder what it's going to take, to really make a big part of the population switch
#
saranix
too many people focus on the masses/consumers ... that is a waste of effort
#
saranix
zero sum economics, getting people to "switch", that's the giant corporatacracy's game
#
saranix
you can't win by playing their game
#
fr33domlover
well it's not their game
#
fr33domlover
they just want to lure people
#
fr33domlover
around here it's more like educate people
#
fr33domlover
so that they make a conscious educated decision
#
fr33domlover
rather than tempt them with shiny features or whatever
#
fr33domlover
We also have a social challenge around the topic of running instances
#
fr33domlover
I guess can't rely on huge ones because of the costs
#
fr33domlover
But small ones then need to easy enough for non tech oriented people to run
#
saranix
have you read the indieweb.org wiki?
#
saranix
a lot of the stuff you are discussing has been researched thoroughly and there's really good stuff on there about it all
#
fr33domlover
saranix, i haven't read there thoroughly, no
#
saranix
what brings you here? What are you hoping for?
#
fr33domlover
I'm working on a decentralized web app
#
fr33domlover
And I want to discuss the federation aspect of it
#
fr33domlover
And how to make it work over ActivityPub and connect to the fediverse
#
fr33domlover
waves at rhiaro
#
saranix
well all that stuff you said is really orthogonal to protocol ;-)
#
fr33domlover
Well the social challenges are somewhat separate from the technical ones
#
saranix
what's your app called? what programming lang?
#
fr33domlover
Sadly my hard disk died and I lost a few weeks of issues I opened :-/ Unless I can extract data but very unlikely
#
fr33domlover
So the server is currently down
#
fr33domlover
saranix, it's called Vervis and it's written in the Haskell programming language
#
fr33domlover
hub.darcs.net has an old version of the code, the latest was on that server that died, I still need to bring it back to life
#
fr33domlover
(I have my local copy of the repo, so no code was lost yay)
#
Loqi
😄
#
fr33domlover
(Loqi, i can't see your message)
#
rhiaro
hey fr33domlover, glad you made it o/
#
fr33domlover
rhiaro, thanks :) I sailed through the rough sea of IRC (yay it rhymes!) and made it here ^_^
#
saranix
loqi is a bot - I think that's an emoji
#
fr33domlover
Ah ok
#
fr33domlover
rhiaro, do you have a moment for a quick question by chance?
#
fr33domlover
I've been wondering about the basic modeling of my API using ActivityPub
#
fr33domlover
Basically the web app has users, and each user can have projects, and each project can have issue tracker, and issues can depend on each other
#
fr33domlover
I want to use ActivityPub not just to send notifications, but to let people do operations like "open ticket" or "comment on ticket" across servers
#
saranix
hmm... darcs looks really cool. It'd be awesome to have ActivityPub federation
#
fr33domlover
Right now, my POST target for adding a new dependency for a ticket looks like this: /john/myproject/tickets/5/deps
#
fr33domlover
saranix, darcs is a version control system and darcs hub is a website (and web app) that hosts darcs repos, I keep some of my code there
#
fr33domlover
Vervis is a separate web app, but its code happens to be kept in a darcs repo and not git :P
#
saranix
oh lol
#
fr33domlover
So I wonder how to do "add ticket dependency" over ActivityPub
#
fr33domlover
Possible ways:
#
saranix
well if your goal is federation, in the immediate term, you should be aware that the current implementations out there in the wild only support objects of type Note basically
#
fr33domlover
(1) POST to /john/myproject/tickets/5/deps i.e. make each ticket's deps an actor with an inbox
#
saranix
not saying you should limit yourself, I'm just saying be aware of how it will show up on other software is all
#
fr33domlover
(1) POST to /john/myproject/tickets i.e. make each ticket an actor with an inbox
#
fr33domlover
oops that was (2)
#
fr33domlover
and similarly, could use each project as an actor, or just each user
#
fr33domlover
I wonder which differences it would make
#
fr33domlover
saranix, but how does stuff like images work? and videos and location check ins?
#
fr33domlover
are those Note too?
#
saranix
image and video hubzilla supports, but I'm not sure about mastodon, I think on mastodon they are just attachments to the announcement Note
#
fr33domlover
Either way it doesn't matter that some app has its own special objects, or at least shouldn't matter
#
fr33domlover
Say,
#
saranix
each ticket being in actor is excessive. Each project might be a better place to split it.
#
fr33domlover
My web app may have an action like "User opened issue"
#
saranix
keep in mind, you can also just make them Collections
#
fr33domlover
ActivityPub servers that don't know that event type can just display its plain text summary etc.
#
saranix
and do complex permissions
#
saranix
(like LD-OCAP)
#
saranix
like attributedTo->http://coder.example/ does a type->Add target->/john/project/tickets object->[New ticket]
#
fr33domlover
saranix, ah I see! Hmmm but what role would inbox and outbox have then? since they are required per actor
#
fr33domlover
I mean each project now has this "tickets" collection
#
fr33domlover
What do its inbox and outbox do then?
#
fr33domlover
I mean where do the POSTs go
#
saranix
you sniff it out. Look at the collection url, find out it's 'owner', look at the 'owner', find out it's an actor with an inbox, then send it there
#
fr33domlover
To /tickets or to /inbox
#
saranix
or you could give it it's own inbox
#
saranix
this is actually something that has come up a few times but we haven't really resolved it yet
#
saranix
everyone has a different opinion
#
saranix
so it is a good meeting topic
#
fr33domlover
The advantage of using an actor for everything is that the URLs look very much like any REST API
#
fr33domlover
But either way yeah it's something to discuss
#
fr33domlover
I hope some people here are knowledgeable and experienced with this stuff and have some advice :)
#
fr33domlover
I'm totally new to all of this
#
saranix
I dislike it personally. I dislike having a gajillion inboxes. I feel like it's a flaw in the protocol. But I don't think there is anyway that agreed with me when I said as much before.
#
saranix
s/anyway/anyone
#
saranix
one possible solution that ('workaround') that I've been using to address this is to make every url an actor, but to just use a single site inbox for everything, and have the envelope dictate routing-- similar to legacy protocols
#
fr33domlover
saranix, but iirc an inbox needs to support GET?
#
fr33domlover
you need a way to GET each entity type separately
#
saranix
It doesn't have to return anything-- you can disauthorize anyone from seeing the contents
#
saranix
also you don't have to support the client->server protocol
#
fr33domlover
But I *want* to support the client-server protocol if I can ^_^
#
saranix
well, the inbox of the authenticated actor would be returned-- dunno qwhat to do in the public case. maybe that won't work for your usecase
#
fr33domlover
saranix, what difference does it make how many inboxes exist?
#
fr33domlover
what is the downside of that
#
saranix
depending on your web architecture, it may not be a downside. But the way I write my path routers, it makes it a pain, confusing, inconsistent, it's like nails on chalkboard to me :-)
#
saranix
if every node on the heirarchy has not only their descendants, but also a couple magic leafs "inbox" and "outbox" -- it just makes it weird to me
#
saranix
I don't think I can explain it better than that hah sorry
#
saranix
what if I want to make a descendant called "inbox"? I can't know, because it's magic
#
saranix
s/know/now such fat fingers today
#
saranix
magic things also tend to create security exploits too
#
saranix
err attack surface
#
fr33domlover
saranix, hmmmm yes I want to think about that question you're raising
#
fr33domlover
I'm still reading the ActivityPub spec
#
fr33domlover
saranix, if you generalize from inbox/outbox to any route isn't that just REST in general?
#
fr33domlover
Like, GET to list stuff and POST to add stuff to the list
#
saranix
I don't see how you mean. REST is a VERB on uri. GET /foo, POST /foo. but we're talking about GET /foo/inbox doing something magic about /foo
#
fr33domlover
saranix, well technically maybe GET inbox is fine: It lets you see a list of stuff you received
#
fr33domlover
It's sort of like the same role as an RSS feed or web page with activity history
#
saranix
only useful in client->server mode
#
saranix
not server->server
#
saranix
also, being useful doesn't change the fact that it's not like REST. ang GET was just an example. POST /foo/inbox also acts on /foo, which isn't RESTful
#
fr33domlover
Well yeah that's not exacly plain REST
#
fr33domlover
BUT
#
fr33domlover
It's not bad that it acts on foo
#
fr33domlover
POST /foo would be for, say, modifying foo
#
fr33domlover
While POST to /foo/inbox is for sending some object for/about foo
#
fr33domlover
It's sort of like POST to /joe/friends could add a new friend to joe etc.
#
fr33domlover
while POST /joe is for joe updating his profile etc.
#
saranix
it's a very open-ended protocol
#
fr33domlover
I guess the RESTlessness (haha pun) is that the inbox is used for all activities
#
Loqi
rofl
#
fr33domlover
For the social network case, I guess it works
#
fr33domlover
Because activities like "like", "eat", "drink" don't actually do stuff in the computer
#
fr33domlover
Well, "like" does
#
fr33domlover
I guess the point is, they don't add some persistent resource
#
fr33domlover
"eat" just says what you ate AFK
#
fr33domlover
and "visit", a location you've been AFK
cdchapman joined the channel
#
saranix
well hopefully one day we actually have a semantic web where you do Eat a url which represents data about what you ate ("do stuff in the computer")
#
fr33domlover
And the RESTlessness comes when you reply on some post, and then rather than POSTing to that post, you POST to the inbox of the posts author right?
#
fr33domlover
So that's different from plain REST
#
fr33domlover
or you POST to your outbox
#
fr33domlover
and the server in turn posts to the person's inbox
#
fr33domlover
eats a URL
#
fr33domlover
Yum!
#
fr33domlover
[A hundred years later in the science fiction world...]
#
fr33domlover
"Hey Joe! I just ate an https://activitystrea.ms/ns#Apple !"
#
fr33domlover
saranix, my browser says server not found
#
saranix
I mean in the future :-)
#
fr33domlover
continues to read in ActivityPub
#
fr33domlover
Ah lol
timbl joined the channel
#
saranix
fr33domlover, what did you mean "around here it's more like educate people
#
saranix
"