#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 :)
# fr33domlover Thank you ajordan
# fr33domlover Maybe that's indeed the reason
# fr33domlover But then I still wonder, whether they could deprecate the API
# 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
# fr33domlover I'm working on a decentralized web app \o/
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 ^_^
# 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 :)
# 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
# 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)
# fr33domlover (Loqi, i can't see your message)
# 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
# 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 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.
# saranix it's a very open-ended protocol
# fr33domlover I guess the RESTlessness (haha pun) is that the inbox is used for all activities
# 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 !"
# saranix check https://saranix.genetics/second-millenium-apple/batches/backyard/20180319?serial=AeXuTioT7s#carbon-footprint for some interesting details :-P
# 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 "