#dev 2022-10-18

2022-10-18 UTC
#
barnaby
fellow php-mf2 contributors: what do you think about including some of the mf2 manipulation functions from https://github.com/barnabywalters/php-mf-cleaner/blob/master/src/BarnabyWalters/Mf2/Functions.php in the main php-mf2 library? I’m thinking really basic property utilities like getPlaintext(), and the findMicroformatsBy*() collection search functions
#
barnaby
when writing my article on how to consume mf2 data, I realised that using property getter functions like these is essential for robustly handling raw mf2 data, and including them in the parsing library and using them in its documentation might encourage good programming practises
#
aaronpk
i have mixed feelings about that tbh
#
aaronpk
getPlaintext() I could be convinced of
#
aaronpk
the find one, less so, because that's not always how you actually wnat to find things
#
barnaby
in my experience the find by callable function is very useful, especially as it can be called at any point in a mf2 tree structure
#
barnaby
the others are just more specific versions of that, I don’t have strong opinions about including them, but I think having one mf2 tree filtering function would be useful
#
aaronpk
i suppose i would want to see that kind of thing reflected in many other peoples' projects including in other languages before bringing it into core. including it in the core parser is almost like saying it's part of the spec
#
aaronpk
if everyone ends up consuming the data in the same way then that's a good candidate, but some of these things feel like just one way of looking at the data
#
gRegor
Yeah, I lean towards keeping it separate utils, maybe with a suggest-install in the composer package
#
aaronpk
the other factor is if one language's parser includes helper functions then i'd expect to see similar helper functions in all the other languages parsers
#
barnaby
agreed, it’d be interesting to look at how people typically use php-mf2, and see if they end up writing similar functions
#
barnaby
not sure I see why other parsers not having similar helper functions should be a reason not to include them though, that’s a chicken and egg problem
geoffo joined the channel
#
aaronpk
That wasn't quite what I was suggesting, just that if one is going to get them, then we should make a concerted effort to add them to the rest for consistency
#
GWG
barnaby: I use some of those helper functions, but I'll agree with aaronpk and gRegor that I'd limit which ones.
#
GWG
Things like is_microformat, has_prop, get_plaintext, get_datetime...
jacky__ joined the channel
strugee joined the channel
#
[tantek]
Interesting thread that of course didn't get picked up because IndieAuth has too many false positives
#
@samuelgoto
Ok, back to my series of prior art we looked at, this is one that I wasn't directly involved (I was working on Google Search at the time), but know most of the folks that were: http://accountchooser.com.
(twitter.com/_/status/1582172677531324416)
#
@samuelgoto
@mfosterio Yeah, I'm http://sgo.to! That reminds me, actually, of another project we looked at early on: @t's and @aaronpk 's indie auth project! Will post about it sometime!
(twitter.com/_/status/1582188939892248576)
#
aaronpk
Generally a lot of positivity in that thread, I was happy about that
#
[tantek]
Yeah! I got to meet and chat with Sam Goto at TPAC (had dinner with him, Dick Hardt, and a few others) and chatted about all sorts of identity things, but mostly got to know each other better
#
[tantek]
it was a spontaneous dinner planned that night, so hard to predict, but would have been worth it for you aaronpk if you were nearby / able to make the trip to Vancouver
#
[tantek]
One thing I've started to come around to: I think the *cost* of a domain / IndieAuth is actually a feature. That's how we get such high quality identities. Cost helps mitigate spam, or rather, spammers go for *cheaper* targets first.
#
[tantek]
this feels like a marketing challenge, not technical
#
[tantek]
IndieAuth is a *premium* identity. You know when an IndieAuth user signs into your website, you're getting a high quality identity.
#
[tantek]
not just some rando gmail
#
[tantek]
sites *want* premium users
#
[tantek]
so therefore sites should have incentive to become IndieAuth relying parties
#
aaronpk
They do already go through a lot of trouble and expense for that kind of thing
geoffo joined the channel
#
[tantek]
a lot of *proprietary* trouble and expense
#
[tantek]
aaronpk, how long have you had an Atom feed on your site?
#
[tantek]
since Andy's blog post seems to accept webmentions, I was considering replying with factual corrections to his assertion that you & I "did not have feeds available for their sites"
jacky__ joined the channel
#
jacky__
I'm curious about https://chat.indieweb.org/dev/2022-10-18#t1666052484742500, like if for each language on the mf2 wiki had a record of this
#
Loqi
[aaronpk] the other factor is if one language's parser includes helper functions then i'd expect to see similar helper functions in all the other languages parsers
#
jacky__
I'd collect some for the rust parser
#
jacky__
some are in the parser lib, others are in the utils lib
adstew joined the channel
#
@zodiac1978
↩️ Replace Gravatar with local Avatars Remove Akismet Add Webmention
(twitter.com/_/status/1582243321342459904)
gRegorLove_ joined the channel
#
[KevinMarks]
I did write a bunch of fn's like that in unmung, but didn't put them in the library
barnaby joined the channel
#
jeremycherfas
Happened to notice that a webmention plugin for Grav has been abandoned and offered as a public archive. https://github.com/Perlkonig/grav-plugin-webmention I remember trying to get it to work at my first IWC, and failing because I was such a noob. zegnat contributed, I know, and metbril and while I know that there are not many Grav users here, and I am certainly not competent, it would be useful if someone were to adopt this.
#
Loqi
[Perlkonig] grav-plugin-webmention: Implements the Webmention protocol (with the Vouch extension) for the Grav CMS
jacky and geoffo joined the channel
#
[Jamie_Tanna]
Do many folks implement support for https://github.com/indieweb/micropub-extensions/issues/33? Possibly just me and barryf, but maybe Micro.blog via Manton?
#
Loqi
[jamietanna] #33 Query for supported properties, for a supported post-type
#
aaronpk
quill does a little bit
#
jacky
How would I use Micropub to change the exposed endpoints for a post? For example, if I was using indieauth.com but wanted to point to authl for ticketauth support
#
jacky
I'm planning on publishing that kind of info [Jamie_Tanna] in Koype
#
jacky
been heads down on indieauth stuff
#
[Jamie_Tanna]
I'm working on a fully autoconfiguring Micropub client (https://editor.tanna.dev) that will use this and another query to allow using uncommon / verbose post types, and wanted to check if it works for people outside of me just implementing it 🙃
#
jacky
The consuming aspect is there as a shim in /Shock tho
#
Loqi
Jamie Tanna
#
[Jamie_Tanna]
Still wip 👆
#
jacky
ah yeah this is inspiring to see people working on stuff like this
#
barnaby
ooh nice idea [Jamie_Tanna]++
#
Loqi
[Jamie_Tanna] has 2 karma over the last year
#
[Jamie_Tanna]
I've been doing this for a while with an editor that's got a load of hardcoded URLs for my main site, but as I've now got a few Micropub backed sites, I didn't want to keep updating that, so thought I'd make it a bit more generic
#
[Jamie_Tanna]
I'll be relaxing the need for `q=properties` in there so folks don't have to add that as well, only needing the list of post types, and I'll look to make sure that Manton's suggestion in there works, too
#
[Jamie_Tanna]
Oh but really the big thing with this client is that it'll handle refresh tokens for me, so I can avoid dealing with continually re-authing to clients when my tokens expire 😁
#
[schmarty]
wow it is a lot to catch up on the "query for supported properties" proposals as they are split between at least 3 GH issues
#
jacky
yeahhh
#
[schmarty]
the whole idea of an interchange format for specifying post-types is interesting but i think it rubs me the wrong way
#
[schmarty]
i lean way more into the "a post _has_" rather than "a post _is_"
#
barnaby
nothing stopping a server reporting a single supported post type and listing all the properties it accepts
#
[schmarty]
but i also get it from the perspective of making micropub clients, which tend to end up dealing with a certain "post-type" which could in theory be specified by some combo of vocabulary + types.
#
barnaby
I think I’d see it more in terms of the server giving the client hints about what UIs it makes sense to present the user with
#
[schmarty]
(by vocabulary + types i mean names-of-things and their low level microformats types like strings, urls, nested objects and their vocab+types, etc.)
#
[schmarty]
it's likely i am unable to see over my own implementations but it feels like this would become super verbose / repeaty and error-prone to manage.
#
[tantek]
^ GWG also for you, WordPress related
#
[tantek]
oops scroll mistake
#
[tantek]
that was regarding the tweet from zodiac1978
#
Loqi
[schmarty] has 17 karma in this channel over the last year (36 in all channels)
#
[tantek]
[schmarty]++ has-a > is-a
#
[tantek]
I tend to agree, we should avoid any notion of "post-type" in APIs because I think it is framing the problem wrong, and likely solving any use-cases poorly
#
[tantek]
we should instead follow the CSS model of @supports
#
[tantek]
for specific properties
#
Loqi
I agree
#
barnaby
I can see the data structure used in the original issue being useful for the kind of self-configuring MP client [Jamie_Tanna] is talking about, where they’re not so much strict post types as a list of potential UIs to offer the user
#
barnaby
i.e. “it might make sense to show controls for this set of properties together” vs “this is a strict list of the types of post this server accepts”
#
[schmarty]
yeah the UI questions of what to show together are interesting.
#
[Jamie_Tanna]
Note that, in my previous Micropub server implementation, it was restricted to what was listed there as supported, but now its more of a hint to what properties are expected for a given post type
#
[Jamie_Tanna]
The problem is that most of the clients (at least that I've used) already do have expectations of what properties are expected and that doesn't always make sense for people
#
[Jamie_Tanna]
And it's nice to not need to require people to make their own clients, or to force people to follow others' conventions if it doesn't necessarily make sense
jacky joined the channel
#
[schmarty]
one thing to keep in mind for this is that there are layers to what "convention" means. one set of examples that jumps out from the PRs is a note from manton that notes can have "location" and "checkin". a "location" can be many things (bare string, h-geo, h-adr, or a full-on venue) and a "checkin" is itself a complex object that might have many sub-properties.
#
[schmarty]
i also noticed a sprinkling of "photo" / "mp-photo-alt" in there. mp-photo-alt only exists in form-encoded posts. JSON-encoded posts have a nested object format.
#
[schmarty]
do we have, among these micropub configuration extensions, a hint to clients that a server does or doesn't support form-encoded vs JSON-encoded requests for new posts?
#
[schmarty]
i guess i am saying a lot of little misgivings about this aloud, but let me work it a different way: there are a couple of examples of consuming cases for this (e.g. jamietanna's self-configuring client). are there alternate approaches that might make more sense than coding up a discovery service centered inside the micropub server?
gRegor, [jeremycherfas], jacky, mro and [timothy_chambe] joined the channel
#
aaronpk
"At present, none of the DID methods meet our standards fully. ... Therefore we have chosen to support did-web"
#
aaronpk
in other words, just HTTP and the web
#
aaronpk
i can't believe after all the fuss they are basically using domain names as identities
#
Zegnat
I will have to read that when I am a little more focussed, probably tomorrow, but I did laugh a little about point one of the TL;DR being that every user has a domain, and then point two that you can migrate between hosts with your DID. Migrating between hosts just sounds to me like ... that is what domain names are for
#
aaronpk
it's like they replaced DNS IP resolution with a literally undefined DID resolution method
#
[tantek]
💯 🔔 🔔 🔔
#
aaronpk
https://atproto.com/specs/did-plc "We introduced DID Placeholder because we weren't totally satisfied with any of the existing DID methods"
#
sknebel
"at" impossible to google. "atp" impossible to google. even for "atproto" the first google hit is a library to talk to modems :D
#
sknebel
(AT+<BLA> commands ;))
#
aaronpk
i'm pretty sure you can replace all the DID nonsense with just regular DNS IP lookups, but still keeping their stuff about looking up signing keys and such from these URLs
#
aaronpk
haha https://atproto.com/guides/lexicon "Lexicon is not RDF. While RDF is effective at describing data, it is not ideal for enforcing schemas"
#
aaronpk
wow they're going all low level with this using CBOR and stuff
#
capjamesg
"The AT Protocol will launch soon. Join the waitlist to try the beta before it's publicly available."
#
capjamesg
Waiting lists for protocols.
#
aaronpk
ok i'm done skimming the docs for now. so far it seems like a CBOR version of the web architecture you'd get using Microformats/Atom/JSON feeds, and like someone slapped DIDs on there because they heard they are cool
#
capjamesg
"Usernames are DNS names while DIDs are an emerging W3C standard which act as secure & stable IDs."
#
capjamesg
DNS names a.k.a. domain names.
#
jacky
tbh this is good
#
jacky
b/c if they go through all of this effort
#
jacky
the conventional HTML flow still works
#
aaronpk
once they realize they need oauth, that's gonna look nearly identical to indieauth
#
jacky
I'm really wondering if they're going to push towards enabling the email-esque identifiers b/c having _everyone_ get their own unique domain is a challenge
#
jacky
I guess the DID bit is meant to allow for more kinds of accounts
#
aaronpk
well not really
#
sknebel
does it have portability between domains?
#
sknebel
then you can start with jacky.twitter.com ;)
#
aaronpk
it has portability of the hosted content, just like DNS lets you move your domain to a different host
#
aaronpk
oh wait i see what they're going for
#
jacky
hmm so it could be a bridge of sorts?
#
aaronpk
"The DNS username is a user-facing identifier — it should be shown in UIs and promoted as a way to find users." usernames (domain names) resolve to a DID, and the DID is the stable identifier of the account
#
jacky
interesting
#
aaronpk
so you can change domains by getting a new domain and pointing it to the same DID
#
jacky
I smell lots of webfinger for that
#
aaronpk
and then *key magic* to verify it
#
jacky
ooh that's clever
#
aaronpk
there's still no reason to use DIDs for this. you could do it with indieauth a similar way
#
Zegnat
But what about ... DIDs?!
#
aaronpk
put a meta tag on your home page where the meta tag points to your actual stable account info (which yes it does have to be hosted somewhere but so does the DID)
#
jacky
DIDs work off the Web, no?
#
jacky
I think that's one enabling usecase for it
#
jacky
'work' in the sense that as long as you bring your own resolution logic, you're good
#
aaronpk
yes, but they explicitly said none of the existing DID methods were sufficient 😂
#
aaronpk
so they went with the web one
#
jacky
that's so weird
#
aaronpk
right?
#
jacky
lemme read this from the top
#
jacky
I was jumping around links but hmm
#
aaronpk
in other news, i'm working with someone to bring the concept of OAuth clients being identified by a URL to the IETF, here's an early early draft https://mattrglobal.github.io/draft-ietf-looker-oauth-client-discovery/draft-ietf-looker-oauth-client-discovery.html
#
aaronpk
basically the client_id is a URL that identifies the client, and there's client metadata at the URL (paralleling authorization server metadata)
#
aaronpk
which is very close to indieauth
#
jacky
see - this might even help the AT protocol
#
jacky
ohh this is nice
#
jacky
this draft update
#
jacky
this feels like a natural progression towards leaning on IAM
#
[tantek]
aaronpk++
#
Loqi
aaronpk has 31 karma in this channel over the last year (108 in all channels)
lqdev[m] joined the channel
#
Zegnat
aaronpk: I like the flag to communicate to servers that there is data to be discovered! I wish it did not require well-known, but I guess it makes some things easier
#
aaronpk
Yeah sadly well-known is pretty baked in to a lot of the OAuth and OIDC specs now so it makes sense to continue to follow that precedent
#
[tantek]
Well-known--
#
Loqi
Well-known has -1 karma over the last year
#
[tantek]
aaronpk well-known also has a history of failure at large providers e.g. gmail so that's sufficient to make it optional only
#
[tantek]
No standard should *require* well-known
#
aaronpk
That ship has sailed
#
[tantek]
Meh. Maybe at IETF. we were able to reach consensus on completely avoiding it in the Social Web WG
#
[tantek]
(One of the few things we got universal consensus on)
#
[tantek]
Regardless if it's back or not, experience has shown it to be fragile, which should be sufficient justification to make it optional at most
#
aaronpk
I don't think that's necessarily true anymore. There's a *lot* of implementations of both publishing and consuming well-known URLs within OAuth and OIDC now
#
aaronpk
probably a lot more than ever consumed it for webfinger even
#
[tantek]
Presumably there's a wiki page documenting these “lot of implementations” with ways to test/verify, more than product claims in email lists?
#
Zegnat
It seems like a relatively OK way to shortcut some security concerns for OAuth too, would be my guess? Kinda like how IndieAuth requires special HTTP headers if your redirect_uri is on a different domain that client_id. By using well-known, the same domain assumption is built in. (Does not mean I like it over discovery, especially when you have a flag for discovery in your spec, but ey)
#
[schmarty]
lol i didn't initially understand they were calling it the "AT Protocol". sorry, 40+ years of modem signalling!!!
#
aaronpk
my larger point here is that there is a lot of established infrastructure that relies on .well-known and it seems to be working fine, and regardless of whether that's technically a bad design or not, I am not going to be able to change any minds on that particular point. Plus, the concept of un-registered clients is the actual important part here, not how the discovery happens, and I'd like to at least
#
aaronpk
bring attention to that concept
#
GWG
I wonder if we could adapt this idea for indieauth to replace h-app.
#
aaronpk
yes definitely, and we could do it with a rel link on the client URL instead of well-known
#
GWG
I'm intrigued and interested
jacky, [aciccarello], kloenk and [manton] joined the channel
#
[manton]
Haven’t read all of the AT stuff yet, but on first glance this seems really good that domain names are the user-visible identifiers. This is exactly what I’ve been trying to do with Micro.blog. (But without the keys and whatnot underneath.)
#
[manton]
Gives me hope that we won’t be stuck with email-style ActivityPub usernames forever.
#
jacky
hopefully
#
jacky
I wonder if they're working on their own form of DID backings
epoch joined the channel
#
angelo
flashbacks to that dweb camp after hours chat with jay graber and paul frazee
#
angelo
first i trumpeted @domain.com syntax as convenient, intuitive, user-friendly and decentralized
#
angelo
second i boasted that if DID were to become /the standard/ the IndieWeb would probably just come up with a way to fall back to dns ("for example DID:DNS")
#
barnaby
have any organisations/individuals committed to implementing the “at” protocol?
jacky joined the channel
#
barnaby
I have a hard time believeing that twitter is going to adopt it any time soon
[snarfed] joined the channel
#
[snarfed]
too early for that
#
jacky
twitter wouldn't even need to, tbh
#
jacky
they could implement a bridge and twitter could take it over (like TweetDeck) / integrate it natively over time
#
[snarfed]
bridge, meh
#
jacky
tbh, that looks like it's a feature https://atproto.com/specs/xrpc#method-ids
#
jacky
also I think I understand why they made placeholder more
#
jacky
the did ID is good for hybrid networking but I agree that I don't think there's a good option that checks off a lot of the boxes
#
jacky
oh yeah and their form seems to be extendable (like it could bridge other DIDs)
#
jacky
yeah so this reminded me of an older post of theirs
#
jacky
> a "hybrid federated network with p2p characteristics"
#
jacky
that's prob what this is enabling
#
jacky
what is a badge
#
Loqi
A badge (AKA achievement) is a visual indicator, with a post containing relevant metadata, of completing some sort of accomplishment, usually associated with completing specific tasks within a system that is frequently recognized as "achievement unlocked", or "you unlocked the xyz badge!" https://indieweb.org/badge
#
[tantek]
I'm fairly certain I've posted about the @-domainname method of identity somewhere before, or at least documented it on a wiki page (per the Twitter thing/example of @-alice-.-com
jacky joined the channel
#
jacky
this really just feels like mf2 + micropub + microsub + webmention alllll over p2p and html
#
barnaby
jacky: you know more about p2p than me, do the p2p aspects look interesting to you?
#
[tantek]
jacky, sounds like a good "what they propose" vs "what's already interoperably deployed today" table would be fitting for a tweet
#
jacky
I'm actually working on a post now
#
[snarfed]
tantek++ jacky++
#
Loqi
jacky has 29 karma in this channel over the last year (66 in all channels)
#
Loqi
tantek has 23 karma in this channel over the last year (71 in all channels)
#
[tantek]
jacky++
#
Loqi
jacky has 30 karma in this channel over the last year (67 in all channels)
#
[tantek]
The whole trope of "oh no domains cost money so we can't use them for identity!" is trivially answered by, "oh you mean like phone numbers?"
#
[tantek]
(except domains are *cheaper* than phone numbers, and more portable, faster)
#
[snarfed]
also there's a really rich spectrum of cost/functionality, including free subdomains on eg wordpress.com (weaker ownership but easier to start with), and also some cheap/free pay-level domains from a few providers
#
jacky
can you buy a domain without a phone number?
#
jacky
not like a sub-domain through a service
#
jacky
I think that's the biggest blocker in my head
#
jacky
like with a phone number, yeah, it's more a month but it's needed more in places so its price is "justified"
#
jacky
but to have a 'presence' online, be it just sending a message to someone, you don't "need" a domain (which is a good thing? in a way?)
#
[tantek]
jacky, it's not about "need" it's about what do "apps" require or even privilege, and apps definitely do prioritize people who provide a phone number for identity. many apps *launch* with *only* allowing a phone number for sign-up (no email option)
#
[tantek]
yes you can get a domain name w/o a phone number
#
Loqi
[Tantek Çelik] 2014: left phone at home every day. iPod+wifi/mifi works. delete x-5278 #. #iamnotanumber #nophone #future Exception: I may start bringing my #FirefoxOS test phone with me for dogfooding, but I'm still not going to share or use the number. How to ...
#
angelo
IMO @-domainname is homepage material
#
[tantek]
what is homepage mention
#
Loqi
person mention is a homepage webmention sent to a person's homepage https://indieweb.org/homepage_mention
#
angelo
it feels like "use a domain name" is level 0 and /homepage mentions/ are like level 3+ while the concept we're talking about is prefixing a domain name with an @ symbol to denote that the domain name represents an identity
#
[tantek]
looks like prior art is documented at least in examples from jamietanna and capjamesg: https://indieweb.org/person-tag#Jamie_Tanna
#
[tantek]
"Jamie Tanna adds a person tag for a FQDN @www.jvt.me"
#
[tantek]
"To use a person tag, James follows this syntax: @jamesg.blog"
#
[tantek]
jamietanna, capjamesg, do you remember where you got the idea for using that syntax, did you see it documented somewhere or maybe suggested in chat?
#
[tantek]
(note, you can't search chat for "@" strings, it's treated as punctuation which is not in the chat search index)
#
barnaby
I’ve used @domain.com syntax a few times, trying to find examples
#
barnaby
there’s a no-longer-live example from eschnou archived here https://waterpigs.co.uk/notes/4S0LMw/
#
Loqi
[Barnaby Walters] What’s the best way of exchanging realtime data between applications on the same machine? Specifically, I want one application to be able to publish and many subscribe.
#
barnaby
heh that example is almost 10 years old
#
[tantek]
nice find!
#
barnaby
can’t find any other examples unfortunately
#
barnaby
regex++
#
Loqi
regex has 1 karma over the last year
#
[tantek]
ok maybe I'll use BBEdit's local file search to search my own storage files
#
[tantek]
darn, eschnou's post permalink is not in the Internet Archive
#
[tantek]
so much stuff from the 2000s and early 2010s is not in IA it's sad
#
barnaby
pretty sure 2013 is before I implemented full HTML archiving of pages which linked to me, so all I have is the parsed results
#
[tantek]
barnaby, still worth recording, even with your display as the evidence. Can you add it to https://indieweb.org/person_mention#IndieWeb_Examples ?
#
[tantek]
we should document all these uses of @domain
#
[tantek]
and when they occured
#
angelo
person tag implies tagging from inside a post which brings other considerations. i find that it usually involves writing @domain.com in source code and then replacing the @ and the domain name with the nick or known name of the identity causing it to lose some of the implicit UX of the raw domain name.
#
angelo
does twitter allow periods in their usernames?
#
angelo
when i see @RoyalFamily on the news I can assume it's their Twitter identity. what seems up for grabs right now is the meaning of @something.with.a.period.in.it
#
[tantek]
no punctuation (besides _) in Twitter usernames
#
jacky
isn't sure if that's a restriction in the ATspace
#
[tantek]
since it's purely theoretical (so far), not sure if makes sense to try to reason by what is and is not a "restriction"
#
[tantek]
per Nirvana fallacy
#
[tantek]
angelo, I think both are worth documenting. that is both use of @domain in the UX (typing it in), and in presentation in posts like the example that barnaby cited
#
@forrestbrazeal
This one goes out to all the serious professional tech people whose Personal Website is a janky Jekyll blog last updated in 2014 https://pbs.twimg.com/media/FfSrP07UoAE2JRs.jpg
(twitter.com/_/status/1582077728206901249)