#barnabywhen 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
#aaronpkthe find one, less so, because that's not always how you actually wnat to find things
#barnabyin my experience the find by callable function is very useful, especially as it can be called at any point in a mf2 tree structure
#barnabythe 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
#aaronpki 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
#aaronpkif 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
#gRegorYeah, I lean towards keeping it separate utils, maybe with a suggest-install in the composer package
#aaronpkthe 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
#barnabyagreed, it’d be interesting to look at how people typically use php-mf2, and see if they end up writing similar functions
#barnabynot 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
#aaronpkThat 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
#GWGbarnaby: I use some of those helper functions, but I'll agree with aaronpk and gRegor that I'd limit which ones.
#GWGThings like is_microformat, has_prop, get_plaintext, get_datetime...
#aaronpkGenerally 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]so therefore sites should have incentive to become IndieAuth relying parties
#aaronpkThey 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"
#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
#jeremycherfasHappened 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
#jackyHow 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
#jackyI'm planning on publishing that kind of info [Jamie_Tanna] in Koype
#[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 🙃
#jackyThe consuming aspect is there as a shim in /Shock tho
#[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
#[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_"
#barnabynothing 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.
#barnabyI 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]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
#barnabyI 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
#barnabyi.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
#aaronpki can't believe after all the fuss they are basically using domain names as identities
#ZegnatI 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
#aaronpkit's like they replaced DNS IP resolution with a literally undefined DID resolution method
#aaronpki'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
#aaronpkok 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
#aaronpkonce they realize they need oauth, that's gonna look nearly identical to indieauth
#jackyI'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
#jackyI guess the DID bit is meant to allow for more kinds of accounts
#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
#aaronpkput 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)
#aaronpkbasically the client_id is a URL that identifies the client, and there's client metadata at the URL (paralleling authorization server metadata)
#Loqiaaronpk has 31 karma in this channel over the last year (108 in all channels)
lqdev[m] joined the channel
#Zegnataaronpk: 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
#aaronpkYeah 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]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
#aaronpkI 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
#aaronpkprobably 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?
#ZegnatIt 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!!!
#aaronpkmy 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
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.
#jackyI wonder if they're working on their own form of DID backings
epoch joined the channel
#angeloflashbacks to that dweb camp after hours chat with jay graber and paul frazee
#angelofirst i trumpeted @domain.com syntax as convenient, intuitive, user-friendly and decentralized
#angelosecond 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")
#barnabyhave any organisations/individuals committed to implementing the “at” protocol?
jacky joined the channel
#barnabyI have a hard time believeing that twitter is going to adopt it any time soon
#LoqiA 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
#Loqijacky 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
#jackycan you buy a domain without a phone number?
#jackyI think that's the biggest blocker in my head
#jackylike with a phone number, yeah, it's more a month but it's needed more in places so its price is "justified"
#jackybut 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 ...
#angeloit 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]"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)
#barnabyI’ve used @domain.com syntax a few times, trying to find examples
#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.
#angeloperson 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.
#angelodoes twitter allow periods in their usernames?
#angelowhen 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
#jackyisn'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]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