#grantcodesI don't understand how an entry can't have a url? I can see it not having a unique url, but it must have been retreived from a url somewhere? But apart from that I don't know a solution.
#aaronpkgrantcodes: right now, i'm not actually fetching any post permalinks, i'm only parsing entries from an h-feed page, so it's entirely possible there's an h-entry there with no URL
#grantcodesMy point is the feed has a url. Although that might not be very useful
#aaronpkyeah but that doesn't identify a specific entry within the feed
KartikPrabhu joined the channel
#grantcodesWhat I can see being very useful in the long term is for a way for clients to add metadata to posts on the microsub server. You can say send a update request to mark a entry as the last read entry or it has been liked or replied to.
#grantcodesThis would be especially useful when using multiple clients / moving client
#tantekright, where is the "read" state kept? or "starred" as readers used to let you star things, etc.
#grantcodesExactly. There could be a `microsub-properties` object for example to store all this stuff
#aaronpki'm not sure I actually want the concept of per-item read state tracking
#aaronpkI think that's part of the legacy of treating RSS readers as an email-like interface, with the display of number of unread items which everyone grew to dislike
#grantcodesRE: Image resizing, I think it might be ok as an optional feature to a microsub server. I love when apis or whatever have on demand image resizing so the client can request whatever width & height they want. It can also be easily done with graceful degredation, if a client requests micropubserver.com/image.jpg?height=100&width=100 the server could read the query and resize or it could do nothing and return the full
#grantcodessize image. I guess the problem with this is then clients would have to be able handle the image if it is not resized
#aaronpkmost client-side environments can handle arbitrary size images though, right? it's just a matter of reducing the download time really. you can stick a 3000x6000 pixel image into an <img width="100"> tag and the browser will resize it
#grantcodesaaronpk: not necessarily per item but I think the last read item is pretty vital. Noone likes scrolling back through a feed to find their last read
#aaronpkyeah a single marker to indicate your read state is good
#grantcodesYeah more or less, but changing aspect ratio is more difficult.
#grantcodesChanging apect ration is possible clientside using backgrounds but just another thing the client will need to be aware of
#aaronpkyeah the aspect ratio issue is always going to be tough, even with an image sizing service
tantek joined the channel
#aaronpkthere's always the question of do you crop or fit, how do you indicate which direction is okay to crop, etc. just look at the syntax for imagemagick's resize functions, it's super ugly
#grantcodesYeah, I use a wordpress plugin called timber a lot and it includes what i think is really nice on the fly image resizing.
#aaronpkimage resizing is also unfortunately one of the big places security holes pop up
#grantcodesIt has options for width and height. And the cool one is letterboxing, which is where it adds extra whitespace to fit the entire image inside a specific aspect ratio if that is what you want
#aaronpkit does seem like image sizing is something the microsub server could help out with, especially since it also means the server could cache/store images so they're available for readers even if the originals are gone
#tantekp.s. re: where to track things you like, reply to etc... how about your own website?
#aaronpkdefining the actual API for that sounds tricky tho
#tantekso user reading/responding state should be kept .. on the website they signed-in with
#grantcodesYeah my use case is I host full size images at around 8mb and galleries of 100+ images. You do not want to download those full size on your mobile internet ?
#aaronpktantek: yes, but the next step is that the client needs to know whether or not a post has already been liked on your website, and it's unreasonable to make the client fetch your website to check, since there isn't a good way to even do that
#tantekthe client is already subscribed to your website through the same microsub server
#tantekthe microsub server subscribes to your website to keep track of read-state, liked etc.
#aaronpkthe microsub server could be subscribed to your website to find out whether you've liked a post, but now we need some way to indicate that to the client
#grantcodesYeah if there was a part of the micropub api that supported searching for likes then that might work
#aaronpknot really cause the actions would be micropub requests and may also come from a native application
#grantcodesWith the microquery (or whatever) the problem then is you now have an extra set of requirements, you need a microsub server and your site must support this not trivially easy to set up microquery system in order to have a good user experience
#aaronpkyeah I think the simple version is the microsub server can subscribe to your site and track all your likes/replies/etc that appear there, then include that information in the items it returns to the client
#[cleverdevil]I am not so sure I want read/unread state on my site.
#aaronpkyeah that seems like an edge case. also the microsub server can crawl your site for old stuff if it really wants
#[cleverdevil]That’s a lot of noise when it could be elegantly handled by the Microsub server and wouldn’t require someone to have a Micropub compatible website to use a reader.
#aaronpkread/unread state I agree. but I'm talking about "likes" specifically
#tantek[cleverdevil] it's just moving the problem to somewhere it is already solved
#aaronpkfor example there isn't really any point in clicking a "like" button in your reader if it doesn't actually go anywhere
#grantcodesWell you can't like something on an indieweb reader unless you support micropub already anyway
#tantek[cleverdevil], it's a simplifying assumption. you have to do the work somewhere to store/retrieve "stuff", that *is* a micropub server, which makes the most sense to be your own server
#[cleverdevil]Yeah I’m in agreement on likes/reposts/etc.
#aaronpkI think it's perfectly appropriate for some amount of user interface state to be maintained in the microsub server
#grantcodesBut when you do like something the microsub server would still have to store it as you might move clients or you would have to scrape your website for those likes every time you open a client
#aaronpkgrantcodes: yeah the microsub server needs to be made aware of the "like" that was created via a micropub request. how that actually happens is an implementation decision, since someone's micropub and microsub server might be the same.
#tantekgrantcodes - the microsub server automatically stores the like because it gets it from the subscription to your server
#aaronpkfor a standalone external microsub server, then subscribing to your site and watching for likes makes sense
#grantcodesWell in terms of MVP my personal priorities of what is being discussed would be 1. Feed subscription & retrieval (of course) 2. Read state / maybe more channel state variables 3. /response saving 4. Image resizing
#[kevinmarks]Cleverdevil: with silo.pub a lot of people have micropub sites
#grantcodesI think the /response saving and image resizing are lower priority as they lead to improved UI not really actual features
#aaronpkcan you document other state things you'd want? especially if you can cite examples of other APIs or UIs that do it?
#[kevinmarks]If you want a good image munger, the google one on appengine is nice
#[kevinmarks]You could also convert all images to svg
#tantekif a bunch of indieweb sites use the same microsub server, and happen to subscribe/follow the same feeds, the microsub server gets to request those feeds *once* instead of once per client
#grantcodesaaronpk: Only other thing that hasn't been discussed that I can think of for storing in state would be something like the tweetdeck filters for channels. Eg. I want a channel that is only actual content from people I follow. Not likes, reposts, bookmarks etc,
#tantekI think this is more of a UI problem, and that by solving the UI problem (with multiple examples), you might be able to find commonalities that a protocol feature would make more efficient
#aaronpkyeah as it stands, a client could already just not show any item that comes through with a "like-of" property (to ignore all likes)
#grantcodesAgain has that same benefit that you can then change your filters but all the posts that were hidden are still stored on the microsub server and can be shown
#aaronpkmoving it to the protocol means those settings would be preserved between clients
#tantekright, so maybe that just belongs in a "Client UI considerations" section for now?
#tantekI guess because I'm more interested in the "your website is your reader" use-case, I'm less interested (lower, not zero, priority) in questions of "preserved between clients"
#aaronpkone of the UI goals I have is to have completely different layouts for presenting posts, where some of the layouts only make sense for certain post types, e.g. a photo grid wouldn't even show posts without photos
#aaronpkthat could certainly be done in the client though
#tantekboth pinterest and tumblr have interesting grid-like layouts that work for composite streams, not just photos
#aaronpkor a map view for checkins, where there isn't even really a place to include posts that don't have location data
#tantekI could see a grid like presentation of text notes that just looked like a grid of sticky notes
#aaronpki'm going to make monocle return cached data for the preview if it's already been fetching that feed, and if it hasn't seen it yet it'll actually go and fetch the feed to preview it
#grantcodesHow would you expect to handle the channels thing? Every subscription is added to the home channel correct? Then you can optionally add it to other channels
#aaronpka feed is always added to a specific channel
#tantekaaronpk - do you have a notion of a "person" that has several feeds? or is that what a channel is?
#tantekI'm hoping that microsub uses concepts for the state of the art social web, not the legacy feed ecosystem
#grantcodesHmm, not sure on forcing to select a channel, the popularity of silos proves that a lot of people not not care about channels
#aaronpkgrantcodes: that's the idea with "default", if you don't select one then it just goes to the default channel. i'm expecting the vast majority of people to just have that one channel like a twitter home timeline
#tantekI'm worried that if you focus too much on a "feed" then microsub clients will just look like dumb RSS clients of yore
#tanteklike great, a protocol for decentralizing the UI of the past
#tantekI know that's not your intent, but even just thinking of things in terms of "feeds", it shapes the thinking/design
#aaronpktantek: what I liked about this UI https://indieweb.org/follow#Feedly is you can just type "tantek.com" and click "follow" on the first result. nowhere does it even mention "feed" in the UI
#aaronpk(okay there are two places it mentions feeds but they are inconsequential. one is the little grey "feed" on the preview, and the other is in the "follow" dropdown menu but that is confusingly a different meaning of "feed")
#grantcodesaaronpk: cool, so you have to pass channel=default or any other channel the user selects
#aaronpk"If no channel is specified, then the default channel is assumed."
#tantekyou mean unlike the big text "Add a feed" ?
#tantekdarn it I don't know why it didn't scroll to that
#www.boffosocko.comedited /h-card (+831) "h-card generator; link to additional examples; expand definition; category: microformats; How to on WordPress" (view diff)
#aaronpkthat FeedHQ example is a great example of an antipattern
#tantekaaronpk, perhaps move it to at least not be the first example?
#grantcodesOnly problem I see with it is it might be hard for servers to return a decent list of results without the huge existing dataset that I'm sure feedly already stores.
#tantekone possible hack for those is, if they're not HTML, if they have a rel=alternate back to an HTML page which then has a rel=alternate back to them, then they're public
#aaronpkI think i'll make my search avoid returning any URLs that contain query string parameters
#tantek(though it's possible they may rel=alternate to an HTML capability URL, more likely they'll rel=alternate to the "plain" HTML page, which if it works without auth to provide a rel=alternate link back to the feed, then the feed is likely public)
#grantcodesI'm sure you will, but if you separate that "search" functionality out so it would be extendable that would be awesome. Can see it continually improving, like searching by Twitter handle for example
#aaronpkI like having it be opaque to the client, so that the server can just keep returning better results
#Loqiautosuggest (AKA auto-suggest) is a user-interface feature that provides a list of options while the user is typing, related to what the user has typed, possibly beyond mere (sub)string matches https://indieweb.org/autosuggest
#ZegnatNot only did I not remember the use-case for empty href, I also don’t remember why I didn’t just PR the fix myself aaronpk. Sorry for that one, haha
#ancardaWho hosts your DNS? The other thing you could do is add CAA records
#aaronpkoh I didn't know about CAA records! that's great. that would stop those crazy enterprise "security" products that MITM all their employees
#ancardaI don't think it will; CAA records are checked by CAs when they go to issue a certificate - it's suppose to help with mis-issuance and make it harder for an attacker to get a certificate by limiting them to CAs you trust, but security products will make one on the fly
#ZegnatNamecheap I think handles the DNS for licit.li
#ancardaZegnat: If you check Namecheap, they might allow CAA records to be created. You'd need one called "issue letsencrypt.org" (make a new `issue` record per CA you want to whitelist). You can also add "iodef mailto:your@email.address" which will email you when there's an attempted certificate request that was blocked
#ancardaCAA is an acronym for Certification Authority Authorization, a DNS record type that indicates what Certificate Authorities are allowed to issue certificates for a domain. It supports whitelisting certificates, wildcards, and can also send reports of attempted requests that were blocked.
#loqi.mecreated /CAA (+314) "prompted by aaronpk and dfn added by ancarda" (view diff)
#Loqiok, I added "https://gist.github.com/roycewilliams/1710ade469c05eb0b090d268470aa741 (List of supported DNS software and hosting providers)" to the "See Also" section of /CAA
#aaronpkthe rest of the editing you'll have to do from the website
#aaronpkIRC can only create the initial definition and add to "See Also"
#ancardaKartikPrabhu: Yeah, you're right. I'm just new to the community and I don't want to step on anyone's toes. Although, the line "This article is a stub. You can help the IndieWeb wiki by expanding it." basically says the wiki welcomes edits
#KartikPrabhuancarda: yes I understand the initial hesitation :)
#ZegnatAnd that line is basically on every page ;)
#sknebelheh, yes. maaybe we should list one day "which pages have >2k text and still a stub warning"?
#Zegnataaronpk++ for the IndieAuth client fixes. Hopefully they will trickle down to all the projects using the lib soon :D
#Loqiaaronpk has 89 karma in this channel (1476 overall)
#Loqiok, I added "https://sslmate.com/caa/ (CAA record generator for a variety of DNS server software)" to the "See Also" section of /CAA
#loqi.meedited /CAA (+87) "ancarda added "https://sslmate.com/caa/ (CAA record generator for a variety of DNS server software)" to "See Also"" (view diff)
#Loqiok, I added "https://tools.ietf.org/html/rfc6844 (RFC6844 - DNS Certification Authority Authorization (CAA) Resource Record)" to the "See Also" section of /CAA
#loqi.meedited /CAA (+114) "ancarda added "https://tools.ietf.org/html/rfc6844 (RFC6844 - DNS Certification Authority Authorization (CAA) Resource Record)" to "See Also"" (view diff)
#LoqiTantek-ing is a method of encouraging people to contribute to the wiki by indirectly prompting the person who first mentioned the term to create a short wiki dfn page for it https://indieweb.org/tanteking
#aaronpkben_thatmustbeme's home page has a csrf token in it which changes on every request too
#ancardaOh I think tantek tantek'd me the other day to make an article on FTTC and FTTH
#ZegnatDon’t think there is a way around that, aaronpk? Guess you just have to have WebSub on your site so you don’t need to do polling but can wait for the feed to tell you about significant changes.
#Zegnatalso has the clock, stole that idea from aaronpk
#aaronpkI can't control what other crawlers are doing to determine whether my page has changed tho
#Loqisecurity in the context of the indieweb may refer to security concerns regarding personal domains, web hosting, https setup, private data, identity etc https://indieweb.org/security
#Loqiancarda has 3 karma in this channel (4 overall)
#ancardaThanks, hopefully this page is ok? https://indieweb.org/CAA -- could someone tell me if it looks alright and if you want more detail or anything?
#ZegnatMaybe start on a security category ancarda? ;)
#aaronpkif you're on ubuntu it's basically built in now
#GWGThe new Press This plugin in WordPress is really helping me refine my own parsing code...my xray equivalent. I test every URL someone there complains about not working.
#aaronpkcheck if your php package is already installed in a versioned folder like /usr/lib/php/5.6 and if it is, then your distro already supports it
#aaronpkmy nginx config basically has upstream php5 { server unix:/var/run/php/php5.6-fpm.sock; } and php7 { server unix:/var/run/php/php7.1-fpm.sock; }
#aaronpkso I can point each vhost to the different backend
#ZegnatAh, yeah, I think my php7.1-fpm is already in a versioned folder!
#GWGI have to ask all of you. If a site you are trying to respond to returns a non 200 because it is filtering your retrieval of it, let's say by user agent...what should your site do? This applies to webmentions, and to my case...the link preview I'm trying to generate.
#aaronpkGWG: I fake the user agent until it accepts it
#aaronpkmy reasoning is these things happen because people run plugins intended to stop certain types of bots, and my use of that site does not fall under the type of thing they're trying to block, so I work around it
#tantek!tell snarfed ICYMI - looks like I found a bug with Bridgy Publish's support of longer tweets when there's a photo included: https://chat.indieweb.org/dev/2017-11-18/1510993441166000 I couldn't find an issue on this in particular, should I file a new one?
#aaronpkThe last one I did takes the user agent from chrome and then adds "p3k/http 1.3, Monocle 0.1" or whatever
#tantekEvery browser puts "Mozilla" in their UA string since Netscape started to and sites started only sending "rich content" to Netscape via checking for Mozilla.