#dev 2021-12-12

2021-12-12 UTC
#
GWG
IndieAuth for WordPress now has all of the proposed endpoints live.
#
GWG
Now I just need someone to write a client that uses them
Seirdy, RIZY101[d] and [chrisaldrich] joined the channel
#
Loqi
[KevinMarks] has 17 karma in this channel over the last year (48 in all channels)
#
[tantek]
always impressed with the outreach from [KevinMarks]++
KartikPrabhu, [jeremycherfas], [tangerinelabor], justSleigh, kogepan, Murray[d] and [Sam_Butler] joined the channel
#
[Sam_Butler]
I've been hacking on this starting with LinkedIn. If you enable authentication with LinkedIn's 3-legged flow (https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?tabs=HTTPS), then you can use the Connections API with Field Request to return the connection names and unique IDs/urns (https://docs.microsoft.com/en-us/linkedin/shared/integrations/people/connections-api) for all of your
#
[Sam_Butler]
Any folks interested in tinkering on a tool to export social graph/network data from walled gardens like LinkedIn/Facebook/Discord, and build some lo-fi chat/comms on top?
#
[Sam_Butler]
connections. With that, you have a first-connections social graph. And then, just need a way to send message blobs to those folks!
#
[Sam_Butler]
Here's a repo where I've been working on it:
#
[Sam_Butler]
If it is CORS errors, I'm not sure if that's bypassable locally, so I also spun up a deployed instance at https://earthkind.pages.dev/. That gives some redirect errors when trying to authenticate which might provide more information.
#
[Sam_Butler]
^ At the moment, it's stuck because the LinkedIn 3-legged auth isn't working — not sure exactly what the problem is, whether CORS or with the redirect URIs. I added documentation in the `index.svelte` file to describe more there.
#
[Sam_Butler]
I've been reflecting on this for awhile, think it could be really useful! For example, do you ever have an in-depth DM chat with a friend where you wish other people could check out the discussion/thoughts coming out? By building something that's described here, we could even give people an option to have chats that are publically indexable and discoverable — the equivalent of chatting in public, so others can overhear and jo
#
[Sam_Butler]
the conversation. Just one of the possibilities — would love to tinker/dogfood in this direction and explore more!
tetov-irc, mlncn, iama_hooman[d], Mysterio_Meezy[d and Ruxton joined the channel
#
GWG
Does we have a page on the wiki with examples of people showing the Micropub client used in a post?
#
GWG
Sometimes I just don't know the right keyword
#
GWG
[chrisaldrich] was asking about that last night
#
GWG
Gives me a chance to review the fact that we store the entire token response in every post. And that seems unnecessary now that the token endpoint is more often local than not
#
[jacky]
what are some things one would need to capture if I wanted to make a page about channels (from https://github.com/indieweb/micropub-extensions/issues/40)?
#
Loqi
[aaronpk] #40 Channels
#
[jacky]
I don't think a page is particularly necessary - I could add it to the micropub extensions part
[snarfed] joined the channel
#
[snarfed]
[Sam_Butler] fun! I have lots of experience (sadly) with the silo APIs from Bridgy and granary, happy to consult if you want
#
[snarfed]
also LinkedIn is an interesting place to start, given how much of their APIs require nontrivial ad spend: https://github.com/snarfed/bridgy/issues/166#issuecomment-471100786
#
Loqi
[snarfed] so, bad news, probably. [you can get comments, likes, etc from LI's Shares API](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/network-update-social-actions#retrieve-comments-on-shares) (LI posts are call...
akevinhuang joined the channel
#
[Sam_Butler]
[snarfed] thank you so much for getting back on this! Really grateful for your input and offer to consult!!
#
[Sam_Butler]
That's crazy about the ad requirements. I was able to set up a LI dev account with the appropriate callbacks I think, so maybe this can work? Choice for LinkedIn just happens to be because I have so many peers on there, that I thought it could be useful to 'go above'
#
[Sam_Butler]
In terms of development, I feel like it all starts with a working implementation of an API that pulls a user's connections from a given service (LinkedIn? Facebook? Twitter? Discord?). That way, we can start tinkering, playing with UX, and thinking about architecture (e.g. how social graphs are stored, how messaging is done, etc)!
#
[Sam_Butler]
Maybe we + any other folks who are interested could jump on a call to chat about it?
maxwelljoslyn[d] joined the channel
#
@mterenzio
↩️ Well, the IndieWeb folks and the standards folks like more complex solutions (not saying they are bad) to a lot of the simple things that were working then and you lose some of the charm https://indieweb.org/Webmention
(twitter.com/_/status/1470064609876975618)
#
@dshanske
↩️ How is webmention more complicated vs trackback? It just adds verification? Trackback lacked any spam control. (https://dshanske.com/t/1W4)
(twitter.com/_/status/1470065831224778753)
#
GWG
Not sure I should say anything else.
#
@dshanske
↩️ Send webmention, make POST request with parameters source and target. Receive webmention, verify source links to target and decide how to display. Specs often make things sound more technical than they are. (https://dshanske.com/t/1W5)
(twitter.com/_/status/1470069443027996680)
#
GWG
The individual commenting webmentionw as hard deleted those tweets. Makes me wonder if I should so something.
#
[tantek]
Sounds like they took back their statement realizing it was not the smartest thing to claim?
#
[tantek]
Unless they ask you to take something down, don't worry about it IMO
#
[tantek]
For your own site, you could link to the archive org copy so the link isn't broken in your reply context
#
GWG
I'm not active on Twitter much. But we as a community haven't been conveying webmentions are at their heart actually very simple. Admittedly, all the stuff on top of them can be a bit more complex, but the core idea is...
#
GWG
[tantek]: I have reply contexts, so I have the text
#
[tantek]
Right my point was about your in reply to link
#
capjamesg[d]
What is the simplest guide we have on what webmentions are / how they work?
#
[tantek]
What is a webmention
#
Loqi
Webmention is a web standard for mentions and conversations across the web, a powerful building block that is used for a growing federated network of comments, likes, reposts, and other rich interactions across the decentralized social web https://indieweb.org/Webmention
#
[tantek]
Capjamesg it should be that
#
GWG
Might be worthy of a refresh
#
[tantek]
^ curious if you see that as a mention in discord capjamesg
#
[tantek]
Or do I have to put the [d] suffix on it like this: capjamesg[d]
#
GWG
To be honest, webmention is much closer to trackback in methodology than pingback was. Who wants to deal with an XMLRPC server?
#
[tantek]
Nah, who wants to deal with RDF embedded in HTML comments?
#
[tantek]
Both prior tech had uselessly complex tech
#
[tantek]
Aside: GWG, before replying to some random on Twitter, check what else they post / retweet
#
GWG
Good point.
#
[tantek]
If they're mostly negative posts, don't reply to them directly, but rather reply up chain to a more positive person
#
[tantek]
See also, don't bother replying to cartoon / scribble art avatars
#
[tantek]
Highly correlated with people just tossing garbage on social media to make themselves feel better
#
[tantek]
(Obviously not all cartoons, but it's a fairly reliable pattern)
#
capjamesg[d]
I don’t see the mention without the [d] tantek. Do you see this as a mention without the [] around your name?
#
capjamesg[d]
Thanks re: the webmention wiki page. I just wondered what the best source of basic knowledge was.
#
[tantek]
I do see the mention without brackets because I have my name as keyword to highlight in Slack.
#
[tantek]
Does discord have a similar feature for highlighting keyword mentions?
#
[tantek]
Re: the webmention wiki page, all pages should start with being the best source for basic knowledge on their subject
#
[tantek]
Perhaps more for meta
#
capjamesg[d]
Indeed! Thanks for the clarification.
#
Loqi
[Tantek Çelik] Thanks to a quick tip and advice from @adactio, I was able to improve my offline support here @IndieWebCamp SF in the last 15 minutes! I started with the script for listing offline cache available pages from https://clearleft.com/offline, stripped i...
#
[tantek]
What is offline support?
#
Loqi
It looks like we don't have a page for "offline support" yet. Would you like to create it? (Or just say "offline support is ____", a sentence describing the term)
#
[tantek]
What is offline
#
Loqi
offline is anytime you're not online and connected to the internet; on the IndieWeb, a personal site can have offline support by implementing an offline first approach https://indieweb.org/offline
#
[tantek]
capjamesg[d] does that ^ page answer your question?
#
capjamesg[d]
Sort of. I’ll look at Jeremy’s example more.
#
capjamesg[d]
Actually, I think it does.
#
capjamesg[d]
I actually found the link to your blog on that page. I just missed the how to section.
#
GWG
[tantek]: I do have a webmention question for you, based on earlier. Do you think people doing new things with webmentions has fallen off over time?
#
@ChrisAldrich
↩️ Plugins and modules exist for a number of other systems if they're not already built in. https://indieweb.org/Webmention#Publishing_Software
(twitter.com/_/status/1470096256336752643)
#
@ChrisAldrich
↩️ I've seen a growing group of others who are using & displaying Webmentions for site-to-site conversations. If you use WordPress, there's the Webmention plugin for the notifications part and the Semantic Linkbacks plugin for the display part. (One day the two will merge, we hope.)
(twitter.com/_/status/1470096145783263232)
#
@ChrisAldrich
↩️ I'm using all these on my site to have site-to-site conversations with others. I'm also using http://Brid.gy to bridge the gap between WordPress and Twitter (and others). If you prefer, you could read all this on my site: https://boffosocko.com/2021/12/12/55799568/
(twitter.com/_/status/1470096588043272198)
#
[tantek]
GWG, not sure of the goal of the question? As in, are you valuing new things over say making existing webmention use-cases work better?
#
GWG
I was thinking about that article a while back about it
#
GWG
I cannot remember who wrote it, talking about how we should rethink some of the conventions we've grown around webmentions
#
[tantek]
More important IMO is Jon Udell’s question about what conditions would motivate (more) people to use their blogs for blog to blog conversations
#
[chrisaldrich]
What is what we lost?
#
Loqi
It looks like we don't have a page for "what we lost" yet. Would you like to create it? (Or just say "what we lost is ____", a sentence describing the term)
#
[chrisaldrich]
What is lost infrastructructure?
#
Loqi
It looks like we don't have a page for "lost infrastructructure" yet. Would you like to create it? (Or just say "lost infrastructructure is ____", a sentence describing the term)
#
[chrisaldrich]
look at that extra syllable.... ugh.
#
[tantek]
It's easy (frankly lazy) to dream about doing new things with webmentions because they're theoretical and thus not burdened with the tough UX etc challenges that we’re iterating on existing webmention use cases
#
[chrisaldrich]
"Free" infrastructure, no admin tax, discovery, reach, and ease-of-use are apparently >> community, less context collapse, ownership, flexibility, creativity, other...
#
[snarfed]
[Sam_Butler] happy to join! also *tons* of prior art here on standardizing (and scraping) friend graphs from silos - FriendFeed, ThinkUp, OpenSocial, Data Transfer Project, Perkeep/Camlistore, even granary. definitely worth reading up and understanding them first, what worked and what didn't and why! lots of people here know the history and can help
#
[snarfed]
I'd also strongly recommend coming up with a crisp, clear, *narrow* problem statement and initial use case
#
[snarfed]
(and re LI, you can definitely set up OAuth with them, I've done that with https://oauth-dropins.readthedocs.io/ , and maybe even use a few APIs...but not many, definitely not the ones I needed, and severely rate limited)
#
capjamesg[d]
Can you elaborate re: webmentions + dreaming [tantek]?
#
capjamesg[d]
[snarfed] has XFN ever been used by a social network?
P1000[d] joined the channel
#
[snarfed]
oh also, talk to [j12t]! he's working on something very similar right now
#
capjamesg[d]
I’m not sure how I feel about XFN re: naming relations with people to be honest.
#
GWG
capjamesg[d]: You don't have to use all of them
#
[tantek]
capjamesg[d] it was in response to GWG’s question about “fallen off”
#
[tantek]
capjamesg[d] XFN captured & standardized existing blogroll uses in the wild during the early blogging era. It was all pre-social-media
#
[tantek]
so if you're not a blogger from the early 2000s, it might not apply to you 😂
#
[tantek]
I think the two most useful XFN values are “me” and “met”
#
[tantek]
Beyond that, if you're not already naming relations with people publicly, don't change your behavior
#
[chrisaldrich]
It would be nice if there were more consuming applications for XFN. Things like Kevin's http://www.kevinmarks.com/distributed-verify.html
#
[jeremycherfas]
rushes to change one of avatars. Not really.
#
Loqi
Distributed Verification 2016-09-22
#
capjamesg[d]
Early 2000s almost predates me, depending on how early you go 😅
#
capjamesg[d]
I don’t think XFN is necessary alone in naming. It just feels that way because it is markup. People share relationship statuses on Facebook openly. But, yes, it depends on the person.
#
capjamesg[d]
Ah I love that! [KevinMarks]++
#
Loqi
[KevinMarks] has 18 karma in this channel over the last year (49 in all channels)
#
[KevinMarks]
Brad Fitzpatrick built an xfn crawler at google with a public api, and I helped promote it, but it didn't survive me leaving google for long, when they went silo-first
#
capjamesg[d]
That is cool!
#
[KevinMarks]
back then twitter and other social networks had xfn and were crawlable
#
[tantek]
I hadn't even heard that “Zero JS” was a thing and it's already being parodied https://twitter.com/n_moore/status/1469772568932466691
#
@n_moore
Zero JS is all the rage but what about Zero CSS? ✅ HTML-first ✅ Blazing fast site performance ✅ Improved visual accessibility ✅ Embraces the original intent of the interent ✅ Eliminates an entire category of Twitter discourse
(twitter.com/_/status/1469772568932466691)
#
[Sam_Butler]
Thank you again [snarfed]! I've looked for the kinds of projects you mentioned on the Indieweb wiki, not sure if I ever came across them — these project references are really great to know, and should be generally discoverable to others as well! BTW [j12t] if you're following this thread, I'd love to learn about what you're working on related to social graphs and chat/comms applications.
#
[Sam_Butler]
Here's an example of a problem statement I wrote earlier this year, been reflecting on this for some time:
#
[Sam_Butler]
> *Problem*
#
[Sam_Butler]
> Our social graphs are siloed across different applications, which (1) limits the ways we connect with our worlds, (2) locks us into service providers, and (3) creates friction and complexity when trying to connect.
#
[Sam_Butler]
>
#
[Sam_Butler]
> *Example Patches*
#
[Sam_Butler]
> * User can read social graph from an existing application (e.g. social network, email provider, messaging application) and create their own instance of that social graph
#
[Sam_Butler]
> * User can create a messaging thread with connections on self-owned social graphs
#
[Sam_Butler]
Also, thrilled you'd be up to chat about this! [snarfed] and anyone else interested, can you add some general times that could work for you here? https://crab.fit/social-graphs-x-chat-920656. (It's a pretty nifty OSS date picker tool, makes for a great alternative to doodle polls!)
#
[snarfed]
[Sam_Butler] ah, nice! the problem statement is obviously very broad, but those two examples are good, especially the first
#
[snarfed]
previous attempts at exporting social graphs via APIs hit rate limiting and blocking, largely due to silos disliking them. the alternative path these days, exporting full dumps, isn't real time but is often more usable. [j12t] has lots of experience there!
#
[snarfed]
the messaging one has more details to work through. messaging specifically and not posts vs comments? (enumerating matching silo features would probably help)
#
[snarfed]
how would group threads across more than one silo work? ie would you copy messages from silo A into silo B, and vice versa?
#
[snarfed]
also messaging API permissions tend to be particularly difficult to get, it'd be good to survey the silos you want and see how API approval tends to shake out
KartikPrabhu joined the channel
#
[snarfed]
I love these kinds of projects, but I've also seen and consulted with enough of them that I tend to like to see deeper research and writeups of prior art and silo antagonism and how they all apply (or don't) first, and a concrete project plan, before jumping in myself
#
[snarfed]
also you may be interested in https://indieweb.org/SWAT0 and https://indieweb.org/SWAT0#Silo_SWAT0, translates pretty directly to messaging
mlncn joined the channel
#
[snarfed]
jamietanna looks like your Bridgy Publish resends stopped pretty much entirely around 24h ago. nice!
#
jamietanna[m]
Haha thanks snarfed, that's good to know - it's unfortunately not something I've sorted myself, I believe my Kubernetes cluster did an update yesterday as I've seen that https://gitlab.com/jamietanna/jvt.me/-/issues/1101 seems to be OK now too. Hoping next few days I'll be on a new set of infra so shouldn't see the same problem
#
[Sam_Butler]
I suppose there actually could be a way to simulate some of this stuff with data dumps without needing APIs. One interesting note is though, that with LinkedIn, the data dump of contacts just returns the First Name / Last Names. It doesn't include the unique identifier (URN) for that person — which you _can_ get via the Connections API, according to their documentation. So for that LI use case, it indeed seems that the API
#
[Sam_Butler]
might be important, unless there is some other way to get a data dump that includes the URNs for connections (to distinguish between two "Anna Brown"s in your connections list, for example).
#
[Sam_Butler]
Once more, thanks so much for the input [snarfed]. Really appreciate these comments!
#
[Sam_Butler]
I've been practicing a somewhat different approach when it comes to building, guided by Hintjens' "simplicity-oriented design" (http://hintjens.com/blog:19) and some influences from Jobs-to-be-Done theory as well as Ryan Singer's "Shape Up (https://basecamp.com/shapeup/). The core assumption, is that we don't always know what we're building or have an appropriate grasp of the problem until we're in the process of working on it.
#
[Sam_Butler]
So from there, the idea is to scope the problem as best as one can, recognize and be aware of the uncertainties, and start with the simplest/most impactful/most core part of the problem — which can often end up looking like a barebones HTML/CSS prototype, to start experimenting with the functionality and getting more familiar. So that's kind of why I've been thinking about trying to get a working API and data intake first, to
#
[Sam_Butler]
On a technical implementation note, something that has come up often for me and seems like it could be quite interesting is https://delta.chat/. Delta Chat is simply a chat interface, built on top of email — relying on email protocols to do all the lifting, and then just rendering the info in a more chat-looking way. It seemed to me that could be a way to go for this project as well, especially because it means that there is
#
[Sam_Butler]
even see if that's possible, because other things could be path dependent on it. At the same time, there could be other and "more core" ways to start — for example, thinking about the actual affordances like messages and posts/comments, and ways to prototype and start experimenting with those.
#
[Sam_Butler]
outside of the walled gardens so we _don't_ need to go back inside them. And then once we have those social graphs, we can find ways to message on top of them — including ways like email that can't be rate-limited.
#
[Sam_Butler]
onboarding necessary. If you can import your contact list from LinkedIn, and map emails addresses to those contacts, then you can send a "chat message" to Anna Brown — and it could show up on Anna's end as an email, even if Anna hasn't downloaded any new application. This also avoids the issue of needing to send messages into silos via their APIs and worrying about rate limits etc. It's like, we're rebuilding our social grap
#
[Sam_Butler]
^ I'm sure there could be other great technical implementations as well. I think one of the purposes of this is to increase the fluidity and composability of online collaboration and connection (supported by more ownership and access to our social graphs), in which case "private E2EE super secure" messaging might not be relevant (if you want E2EE, you can use a dedicated tool for it.) If that's true, perhaps "messaging" could
#
[Sam_Butler]
end up looking more like threads and comments in a technical sense, if it's all assumed to be public. For example, I can start a "chat" with [snarfed] on a topic. It can feel just like a two-person chat to us — except it's public, so others can see, and even potentially join. If that's how it's done, then the "chat" on that could be a thread, and all of the messages could be comments in the thread, and there could be a
#
[Sam_Butler]
conventional architecture for that. "Thread"-based chats for two-person chats could be pretty useful in and of itself, if it was implemented in a user-friendly and fluid way
#
[snarfed]
[Sam_Butler] yes! we call this "silos as plumbing": https://indieweb.org/Instagram#Indie_photo_posting_client
#
[snarfed]
and agreed, I'm all for iteration over everything-up-front waterfall design! in this case specifically, I've just seen a _lot_ of projects like this pop up, with lots of great energy and ideas, and then die out once they realize how antagonistic and limiting the silo APIs and approval processes are for anything remotely like this
#
[snarfed]
(also, you're absolutely right, using the export data dumps can be great, but not for anything real time ish like messaging)
#
[tantek]
snarfed++ agree with that summary
#
Loqi
snarfed has 36 karma in this channel over the last year (67 in all channels)
#
[tantek]
Good reason we encourage people to try things on a smaller scale first with their own websites before getting carried away with dreams of giant new systems for everyone
#
[tantek]
What is make what you need?
#
Loqi
Make what you need is an IndieWeb principle that helps creators focus on creating & publishing things prioritized by what they need & want for their own personal site https://indieweb.org/make_what_you_need
#
[Sam_Butler]
[snarfed] beautiful, makes perfect sense! And I completely hear you in terms of lots of projects with related motivations coming up a lot — I've seen quite a bit of it myself, so that really does resonate. Great idea to validate and see what's actually possible in terms of the APIs. Also for anybody interested, Cory Doctorow gave an interesting conversation touching on some of these subjects earlier this month:
#
[Sam_Butler]
As a specific example, talking about "adversarial interoperability/competitive compatability", with an insightful anecdote about how Mac stayed alive in the 90s by finally reverse engineering Microsoft Word doc file formats, since there were only compatible with Microsoft systems at the time, and everybody used them. Some great history in there!
#
[Sam_Butler]
[tantek], if you check out the comments above, you'll likely agree that I'm starting at the smallest possible scale and building for myself — indeed, that's my approach. I'm just getting stuck on some API callbacks so I wanted to reach out for help, and also invite others to come along for the ride if they're interested. A pattern I'm experimenting with is that the more you discuss and explore possibilities with others, the
#
[Sam_Butler]
more perspectives you see, and the better we are able to reach desired outcomes together. If you're interested in reading more on that, here's a piece I wrote — on a tool built to help others utilize these same patterns, and built with some of these same approaches as well!
[dmitshur] and [tangerinelabor] joined the channel
#
capjamesg[d]
What is pages.dev?
#
Loqi
It looks like we don't have a page for "pages.dev" yet. Would you like to create it? (Or just say "pages.dev is ____", a sentence describing the term)
#
capjamesg[d]
Do you have time for a quick definition [Sam_Butler]?
#
[tantek]
And perhaps posting that piece to your personal site?
#
[Sam_Butler]
pages.dev is the domain that you get when deploying a site on Cloudflare pages, so if you're deploying a site named "indieweb", then the URL for your page served by cloudflare will be "indieweb.pages.dev"
akevinhuang2 and barryf[d] joined the channel
#
[Sam_Butler]
[tantek] that's the "about" page for the tool — it's there to provide information and context for people using the tool. Sorry if that wasn't clear from the context or the page, I'm working with the garage door open and it isn't in a fully "finished/public" state yet
sarahd[d], xvx, tetov-irc, KartikPrabhu and mlncn joined the channel