#[Rose]I created a git repo, but somehow did things wrong
#[Rose]I'll repair that once I'm home, then I can have a script
[kevinmarks] joined the channel
#[kevinmarks][aaronpk] - monocle ui suggestion - put the backlink into the title area for the channel rather than atop the content so you don't have to scroll back up to go back
voxpelli_, ingoogni, [tantek], krychu, [Rose], [dougbeal] and [jgmac1106] joined the channel
Guest86399, KartikPrabhu, plindner[m], grantcodes[m], myfreeweb, astrojuanlu[m], Rixon, jgmac1106[m], ketudb[m], voss[m], zoglesby, PatrickMNiedziel, jamietanna|wwwjv, jjuran and [jgmac1106] joined the channel
#aaronpk[kevinmarks] i tried that, but that presented a whole host of other UI challenges
#aaronpkthere's already a bug when the title is more than one line, and doing that just compounded the issue
eli_oat, [kevinmarks], Guest48517 and [eddie] joined the channel
#[eddie][grantcodes] If you are around I an very curious about your thoughts here: https://github.com/indieweb/micropub-extensions/issues/11#issuecomment-483658170 the idea of having some vague "not set" visibility seems really not user friendly. For a technical audience I think we can understand what "not setting" a property can do with the server defaulting things, but I don't know that a non-technical user base is going to feel comfortable with that.
[grantcodes] joined the channel
#[grantcodes]Yeah I was just about to comment but probably better here
#[eddie]haha yeah I figured we could discuss in chat and then record in github π haha
#[grantcodes]Not sure I agree with you, based mainly on the idea that still the majority of clients will just use content=whatever and not send anything about visibility so the user will have to know their defaults anyway
#[eddie]that's currently, I think the hope would be in the not too distant future all Micropub clients would have visibility settings
#[eddie]the only reason visibility hasn't been defined before now is because most people have made everything public
#[grantcodes]All is a big ask, especially when there is the w3c spec that can't be updated at the moment
#[eddie]I really think as more users join the IndieWeb and more of them are less technical, clients that require the user to know things like their server defaults will overwhelm or scare non-technical users away leading towards the majority of clients being used having user friendly options
snarfed joined the channel
#[eddie]so I'm sure clients will stick around without things like visibility, but I think the majority used will likely end up with things like that because self-selecting usability
#[grantcodes]I agree with that from the UI side of things
#[grantcodes]On the fact that the client should send it. If it is a default it shouldn't need to
#[eddie]Gotcha. So I conceptually agree if you have a dropdown that defaults to "Public" (because the server said that was the default visibility) you wouldn't HAVE to include visibility=public in the request
#aaronpkIt's almost impossible to get "everyone" to do anything the same so we'll always be in a situation where clients won't send it
#[grantcodes]Yeah, I think a server advertising defaults makes sense. Then the client can choose to use it or not use it
#[eddie]correct, but I think the question is what is recommended
#aaronpkbut I agree that if a client supports the property it should probably always expose it to the user
#[eddie]I just think with things like visibility/privacy, if a client supports visibility, it is helpful to be better safe than sorry by both providing a UI that says the visibility (even if it's a default visibility) and then when sending a request, including that string in the Micropub request
#aaronpkI don't think there's any value in telling a client to not send the property if it knows the selected option matches the default
#[eddie]as it doesn't add that many bytes and prevents potential issues in the server
#[grantcodes]I don't really disagree with any of that either
#[grantcodes]My issue is more to do with the fact that everying is decentralized means we have to always assume there will be clients that will not send any of this default stuff, and just use the bare minimum. So it needs to be designed with this in mind.
#[grantcodes]I agree that it would be good practice to show the user their default server settings in a client, but if there are still clients that don't do it the user will need to know their default.
#[eddie]I think ultimately, a user will know/learn their default, or if they have a bad experience with a client that doesn't support visibility, they won't use it again
zoglesby, myfreeweb, grantcodes[m], astrojuanlu[m], plindner[m], ketudb[m], voss[m], Rixon, jamietanna|wwwjv, jgmac1106[m], PatrickMNiedziel, ludovicchabant and jackjamieson joined the channel
#[grantcodes]Cool I think we're in agreement, just looking at it from different sides π
#[eddie]* If a server supports visibility, it SHOULD communicate with the client what the default is.
#[eddie]* There will always be clients in the wild that don't support visibility, in those cases the server MUST default visibility to whatever it deems appropriate.
#[eddie]* If a client supports visibility, it SHOULD send the visibility in the Micropub request, even if it is the default option.
#[grantcodes]I think there are probably lessons to be learned from headless cms's and the likes that generate a ui from a schema of sorts. That is pretty close to this idea
#Loqi[EdwardHinkle] So initially brainstorming this: you definitely don't want to simplify the syndicate-to object because that is needed. I also don't know that you would want to complicate the category array by making the strings be objects, because then you're just a...
#[grantcodes]I would change all options to be an object with a value and name
#[grantcodes]And I would add a name to each property
#[grantcodes]So servers could do stuff like define that categories should be displayed as tags, not categories
#[grantcodes]I'm also not sure about the `max-values` thing. I think in mf2 it is pretty much either 1 or infinite?
#[grantcodes]Also default should probably always be an array
#[eddie]haha yeah I was writing a post changing max-values to multiple: true or false
#[eddie]hmm interesting. I thought about all options being an object with both a value and a name, but then it seemed duplicative for things like categories, but maybe it's not that bad since categories is really technically big enough it probably still needs to be in it's own query
#aaronpkrather than try to define a whole schema thing that solves all possible use cases, can you point to a specific issue that your'e having with the existing landscape and make a suggestion that could address just that issue?
#[eddie]so the issue brought up by [grantcodes] was that dealing with syndicate-to values, categories and visibility are all very different data structures currently
#aaronpkwhat is the specific problem caused by that?
#[eddie]this was an attempt to merge those, with the idea that it could be compatible with future properties as well
#aaronpkthere is very little value in making changes to the spec to just "look nice" unless it has some actual user benefit
#[eddie]I think the concern is we're starting to add more and more properties and values and the more we add if each one is it's own unique snowflake, that causes issues
#aaronpkok but i fail to see how that then results in this schema
#[eddie]I don't feel 100% that this is something that has to happen but I can see potential benefit from it
#Loqi[grantcodes] So I think there are at least 2 ways we would need to show full support for a property:
1. The basic property is supported and accepts any value, e.g. things like `summary` and `category` can accept pretty much anything, but would be nice to know ...
#aaronpkultimately the UI is going to treat all these properties completely differently anyway, so i don't see why making a schema to tell the client what kinds of values are supported that also is consistent with itself helps at all
#[eddie]That's fair. It was just a brainstorm based on his github comment. If we feel this is too heavy we can just look at listing supported properties and returning things like the default
#[grantcodes]It is already proven to be useful with categories and sydicate-to though?
#aaronpkgo back to the beginning of the problem, what actual user or UI challenges exist right now?
#[eddie]so in that thread 1) A client should only present UI for properties that a server support 2) A client needs to be able to show the user predefined options as well as show any defaults the server will do (like the default visibility)
#[eddie]I think the things such as if new value are supported or multiple values are supported is more an optimization so that instead of writing code that only matches "if syndicate-to" instead you can write code for if multiple values accepted
#[eddie]So that is more developer help in that you can reuse code
#aaronpkat least that one doesn't make my eyes bleed
gRegorLove joined the channel
#sknebelI think I've had similar ideas in the past, my problem statement would be along the lines of:
#sknebelI add new properties to my micropub endpoint, or use one that has properties not all clients support, but I want to use existing (ideally the same) micropub client(s)
#sknebelso the client needs to learn about properties its creator hasn't considered, and provide at least some level of UI for them
#aaronpkThat sounds like a different problem and one that's much harder to solve
#aaronpkit sounds like we're talking about clients hiding fields when they know the server doesn't support them
#sknebelthen you don't need all of that extra stuff
#aaronpki would never expect a client to be able to make up a UI for properties it doesn't know about. That's like form generator territory and is not a sustainable plan
#[eddie]Well, as sknebel said, in grant's comment there was the idea of new fields/properties having the same structure so it's more easily supported
#[eddie]So there was an element of that in the brainstorm
#aaronpkI mean i definitely hand edit some posts too
#[eddie]Sure, it's an idea but not one that has to take priority
#[eddie]and that's why when you asked for use case I listed 1 and 2
#[eddie]because I think those are the absolute priority of that github issue. hiding unsupported fields and having the data and defaults for the supported ones
#sknebelyeah, then the more complex proposals probably belong in their own issue
#aaronpkit was starting to sound like the conversation was taking a major detour from those goals
#[eddie]well I don't know if two posts are a major detour
#[eddie]lol, but I think it's fair enough to refocus and create a seperate issue if continued though on the other front is wanted
#[grantcodes]I think what eddie has proposed is where it all may end up, if all the different valid issues are merged together, althought a bit of a leap to go straight there
#aaronpkHere's an example of where form generator territory falls on its face. Show me any modern app that lists the text "public" "private" "unlisted" in its UI. More often it's indicated by some sort of icon. Look at twitter and Swarm for easy examples. There's virtually no way to reliably do that in a way where clients can show that UI when they weren't written to support it natively
#[eddie]For sure, you never want the majority of your UI to be form generated
#[eddie]if anything it would be do your UI the way you want for known properties and include a small section at the bottom that can include any not currently known and optimized fields
#aaronpkso its way more important for a client to know whether to show that element
#sknebel(and I'm assuming aaronpk is defining anything that contains a form generator as "not modern" :P ... but again, if I'm looking for "I want use my private posts implementation without handediting data files", "not modern" will do just fine)
#[grantcodes]Also very much depends on the type of UI you want
#sknebel(I should probably just downrank micropub for my site instead of trying to use it as the primary posting tool)
#[eddie]sknebel exactly. I think modern is best, workable is good
#[eddie]I really think the best long-term scenerio is optimize for the fields you know about, but make other fields available
#[eddie]One scenerio where this happens: I have channels in my site
#[eddie]so I end up using syndication where it's not REALLY meant because it can send a custom command back to my server
#[grantcodes]I think aaronpk is thinking more of silo type posting interfaces, whereas I am thinking more of a cms type interface, the majority of which can absolutely can be managed by a form generator
#[eddie]it would be much nicer if most Micropub apps had an optional area at the bottom that might not look the best, but had a list of channels that I could select and be sent back to my site
#sknebel[eddie]: yes, that's the case I'm thinking of too
#aaronpkI guess I just don't think that we should be recreating CMS type interfaces as micropub clients
#[eddie]I agree, CMS type interfaces are not the ideal Micropub clients
#aaronpkthere will *always* be exceptions that will be unable to be supported by clients even if we make up some seemingly perfect generic schema thing
#[eddie]sure, there will always be exceptions, but that doesn't mean we should have some flexibility in a server telling a Micropub client about it's own simple data it would like back
#[eddie]sknebel: awesome. That gives me something to base the new GitHub issue on use-case wise
#[grantcodes]I'm not sure defining what sort of ui is good or bad for clients is useful for the spec though. Is that not kind of the point of being able to use different clients? Different strokes for different folks and all that
#Loqigrantcodes has 21 karma in this channel over the last year (37 in all channels)
#aaronpkRight but making a form schema part of the spec essentially is telling app developers they have to build a flexible UI that the server controls
#aaronpklike I would not feel comfortable asking manton to add support for this to the micro.blog iOS client
#[eddie]I think the key is not the server defining the UI as much as defining some types of data it might allow the user to choose and return
#sknebelyou're free to ignore that spec extension in your clients
[schmarty] joined the channel
#[schmarty]as someone who built form-builders for a living for a few years i encourage folks not to do this, haha.
#[grantcodes]I think a better example is not your own personal property, but all the experimental ones that multple people support, like visibility, post-status, location-visibility. All that stuff is implemented by a bunch of people, but then there are very few clients that support them.
#aaronpkMy point is that you're not going to create a good user experience by treating all these properties generically
#aaronpkthe client needs to actually understand what they mean in order to present them right
#[eddie]But is the idea of a fallback so bad? You know about 3 out of 5, so you treat 3 out of 5 the way you know and you fallback the 2 unknown ones to a way that is functional?
#[eddie]however I think apps can built UI that fits the platform that matches a few basic criteria. For example: predefined options with multiple selections? Quill's syndication list. Predefined options with new values allowed? Quill's tags text field with autocomplete. Want to do that on iOS? There are UI conventions that match those requirements as well.
#[grantcodes]I also think there is a bit of overlap in the ideas and critisisms here that isn't necessarily valid. If there is a "schema" of sort. That doesn't necessarily mean that clients have to become automatically generated, the two are not equal
#[grantcodes]In general the more data available to client, the better the user experience can become
#[schmarty](until that data becomes ambiguous, conflicting, or overconstrained)
#[grantcodes]Sure, just saying something is better than nothing. It's up to a client if it uses it or not
#gRegorLoveThe server returning the default is interesting, though with IBC I've been adding it as an account settings, so the UI will always default to that and can be changed per-post.
#[eddie]I think that makes sense in a client that is more specialized
#[eddie]For example, one day I want to create a "watch post" client for logging what I watch. I would likely want to set a visibility default per show
#[eddie]or if you had a client that did listen posts, if it knew it was a private feed podcast, it could automatically default to sending private visibility as to not spoil the private feed
#aaronpkSome of this can/should be up to the server too tho
#gRegorLoveI think if server returned a default, IBC would update your account setting each time you log in
#[eddie]One thing I like about the server sending default is that allows me to force a default based on client_id. So when approving IndieAuth, I could choose a visibility for that client and then all posts from that client could end up a specific visibility
#sknebelthat specific example feels more like something the server should enforce
#sknebelalthough it's of course nice for UX if the client shows accurately what will happen
#[eddie]It's nice to see it but it's also good to have the server enforce it
#aaronpkanother point about the new issue, i would very much encourage you to look at related prior art before making up things from scratch
#aaronpki'm sure [schmarty] can point to several ;-)
#[eddie]That is helpful, and I agree. It was an initial brainstorm and I think one nice thing that came out of it is grantcodes linked to some headless CMS APIs which are some nice prior art for how some existing platforms are doing this stuff.
#[eddie]definitely anything schmarty knows of would be good to add to the list to see what does and doesn't work
#[schmarty]Yeah, headless CMSes are great examples of this because they are usually "config-driven".
#aaronpki am also glad to see issue #8 focus on the simpler (and IMO more important) issue
#[schmarty]Rails and Django form helper libraries are also similar
#[schmarty]The stuff I worked on was for research projects and never released, unfortunately. Or fortunately. Yes, fortunately.
#[schmarty]The system was called FormBuilder and we wrote XML definitions that mapped onto Java Server Pages classes to create form entries and map them to database schema and relations.
#[eddie]Also interestingly Micro.blog has been adding more fields and while I donβt think it should be required if Manton wanted to add support for other properties this is a page perfect for it. Accessed through a gear button is this page https://eddiehinkle.com/media/e9c4b22178ba8f7e00d05f9b58fc50c1.png
#[schmarty]It honestly sounds a lot like what you're describing, haha, cuz we used it as a layer to make extensible testing websites to test other systems on.
#[eddie][schmarty] That sounds like you have some good pitfalls experience. Obviously you might feel like "this shouldn't happen at all", but if you feel like you see a balance between "do it all the way" and "don't even touch it", I think those insights would be helpful
#[eddie]a way to provide some additional functionality without going too far
gRegorLove joined the channel
#[schmarty]I encourage folks to experiment before writing any big proposal docs :)
#[schmarty]I'm kind of more interested in a strong set of client-side libs/patterns/widgets to make more, composable clients.
#sknebel[schmarty]: you talked abount wanting to make a bunch of specialized clients before, right?
#[schmarty]Yep! I prefer a diaspora of varied clients over adding coordination layers between clients and servers at the moment.
#sknebelI considered a bunch of UI or microclients and some server logic to chain them too. E.g. have submitted posts default to private, but have a quick shortcut to change it's visbility or add permissions
#[eddie]This week I've been trying to port my old posts into my newest post format so I'm able to add Micropub update support
#[grantcodes]I know it's not popular around this parts but I made a react component that sounds sort of similar to that idea
#sknebelI think aaronpk has a few of his editing things actually inline to the site (e.g. for tags?) but use micropub(?), but a link would be a start too
#[eddie]once I do that, it's interesting to default posts to private since with the post list query, you could have as you said, mini clients that can query the existing posts and then edit some specific specialized attributes
#aaronpki actually do that with quill blog posts most of the time. i have quill post as a draft to my site, then go use either my site's UI or hand-edit the file to do some final touch-ups before publishing
#sknebeldon't even need post list query if you e.g. do the "pass a link to the post as a query param" thing
#[eddie]sknebel: that's true. So your first client would take the url returned by the Micropub endpoint and pass that along to the next with something like ?url=postUrl
#aaronpkhah you could do that if your server returned that other client's URL as the 201 micropub response
#Loqi[snarfed] i have a narrow niche use case for the proxy html+mf2 pages that bridge services like bridgy and bridgy fed render for silo posts
#snarfedi can easily add html meta and/or JS redirects to bridgy [fed] mf2 pages
#snarfedmaybe the main q for this group is, the webmention spec currently says discovery should "follow redirects," but doesn't say whether html meta redirects count. should it?
#snarfedJS redirects almost certainly wouldn't, so maybe i'll just go with those...?
#[tantek]I think I agree with aaronpk's pushbacks in general
#[tantek]Please don't lower the barriers to making crappy UI by default (schema generated forms)
#[tantek]because then that's what you'll get, and then be overwhelmed with that kind of crappy UI dominating clients
#[tantek]so yes there *is* harm in doing crappy UI as a fallback
[eddie] joined the channel
#[eddie]I just think we might in general be upselling our current UI efforts (Indigenous for iOS absolutely included!). I think most of our current UIs could likely be generated by a schema form
#[eddie]I don't think schema HAS to mean the UI is crappy, but of course if that's all you rely on, you'll never get a nice UI like Swarm. But I think there is a middle ground
#[tantek]I disagree - I think you're underestimating how hard it is to generate decent UIs from schema forms
#[eddie]Maybe we're talking about two different things?
#[tantek]"HAS to" is irrelevant here, existing examples are all crappy.
#[tantek]I think there *could be* better UIs, but "could be" UI is a very bad basis to design formats, protocols, standards
#[eddie]I'm talking about a JSON object that talks about attributes
#[tantek]Much more effective to design formats, protocols, standards for existing actual UIs that are good
#[eddie]but not necessarily defining the UI elements
#[tantek]I'm talking about real world UI examples, lacking that, it doesn't make sense to model it in a spec
#[tantek]It may make sense for personal developer experimentation, but not standardization
#[tantek]BTW, you may want to look into XForms and how they tried to do that in the early 2000s
#[eddie]experimentation of course, always has to take place before any type of standardization
#[tantek]as in W3C XForms, if you're not familiar with it, it too failed
#[eddie]When I look at our real world UI examples, I can see the exact same UI coming from the attributes we're talking about
#[eddie]so if I have my server return these attributes and modify Quill to be able to support these items, does that count as real world example? If I don't change Quill's UI?
#[tantek]sort of? I mean that's more direct experimentation
#[tantek]I mean real world examples of *anyone* doing schema based UI/form construction, in any field, for any product, that doesn't suck
#[tantek]if you have to code (the examples) yourself, you're not really providing examples, you're incubating/experimenting
#aaronpkQuill is also not a shining example of a desirable UI. It gets by, but I originally made it as a test app.
#[eddie]But that's the point. Having some attributes for fields is not going to prevent good UI. Good UI being hard prevents good UI. All of our Micropub clients likely need a lot of work to get there
#[eddie]and having some fallback UI does not mean, you can't make good UI
#[tantek]it does. having crappy fallback UI means devs don't bother to make good UI
#[eddie]devs who don't want to make good UI will never make good UI
#[tantek]this is why so many sites started looking like Bootstrap
#[tantek]it was crappy fallback UI, so people stopped putting nearly *any* effort into good UI
#[tantek]devs who don't want to make good UI will make an awkward copy of someone else's good UI, which TBH in many cases is better than a generic crappy UI.
#aaronpkI think there's another higher level thing here that I'm instinctively pushing back on, which is that these efforts regularly get criticized for trying to emulate existing social media behaviors but just distributed, and trying to then also do that in a generic templated way even further entrenches these apps in this mode
#[tantek]there's also the downside that Micropub itself could get labeled as being to blame for the crappy UI, kinda like how CSS was blamed for crappy uncreative layouts until the CSS Zen Garden came along and opened people's eyes
#[eddie]"these efforts" meaning, IndieWeb? Specific specs?
#[eddie]ahh gotcha. I guess for some reason you feel that having some attributes that help define some field behavior becomes "templated", but nothing says you can't break the template, but by having a few couple types of templated data allows for servers to provide data it might want returned.
#[eddie]I don't feel that this should be 100% schema driven forms here
#[eddie]but I also think the server can provide some data configuration hints that allows a client to support additional fields
#aaronpkYeah it's a slippery slope thing. Of course you could make a nice product even with the templated JSON structure by not treating it as a declaration of the UI, but it's far easier not to do that, so will more likely than not result in not so great apps
#[tantek]eddie, maybe take a look at how @supports works in CSS - it the kind of thing you're looking for?
#[eddie]So @supports doesn't really match what we're talking about. That's really just a boolean on if a given property is supported
#[eddie]it is similar to the query for support properties, although @supports doesn't provide any contextual information about the css queries, where as we would need contextual information for Micropub properties
#[eddie]but I think what you guys have an issue with is the query for unsupported properties which is nothing like @supports
#[eddie]I guess I just don't think the attributes we're discussing make it THAT much easier than it currently is to build a Micropub app, and thus wouldn't have much effect on the quality of Micropub apps (which are not horrible, but are also not pieces of art yet). and I think anyone that would be willing to put time into a Micropub app to make it really nice right now, would do the same thing regardless of having some JSON hints as to what type of dat
#[eddie]Well, I'm heading out for the day. So you are free of this debate π I am absolutely not locked on the technical approach to this problem, but I do think the problem it's trying to solve is helpful and useful.
#[tantek]I have a feeling we may be misunderstanding some key nuances. Maybe this would work better as part of an in-person Micropub brainstorming session?
#[tantek]I do think there is more work to do in the general area of how do we evolve client and server capabilities in a manner which is backwards/forwards compatible and enables rapid iteration (co-evolution) of both.
#[tantek]!tell eddie which next IWCs are you going to, and hopefully aaronpk is also going to and maybe you could propose a session on this and some of the challenges you've encountered with evolving your Micropub implementation(s)?
#[eddie]I am hoping to go to Summit, but I have to finish arranging plans for a family trip before I see if it interferes with attending the Summit. I definitely think it ultimately is more around iteration of Micropub clients/servers than dictating UI, and you might be right, it is likely better a session at an IWC
#Loqi[eddie]: [tantek] left you a message 3 minutes ago: which next IWCs are you going to, and hopefully aaronpk is also going to and maybe you could propose a session on this and some of the challenges you've encountered with evolving your Micropub implementation(s)?
#[eddie](As well as empowering servers where they might want to do something unique that not every server and client wants to support on their own)
#[eddie]Thanks for that redirection tantek. I think itβs helpful and hopefully something that could be discussed at an IWC in the view of Micropub evolution rather than UI dictation