#dev 2018-12-08

2018-12-08 UTC
iasai joined the channel
#
snarfed
mf2util++
#
Loqi
mf2util has 1 karma over the last year
#
kisik21
KartikPrabhu: I don't like it for several reasons. First, its output for several functions is not valid mf2 JSON (or equivalent dict), second: it takes all the fun out of parsing all these values
#
snarfed
definitely consider using mf2util for authorship, representative h-card, post type discovery, etc instead of reinventing the wheel
#
KartikPrabhu
the output of mf2util is not supposed to be valid mf2 JSON. it is for helping with the already mf2 JSON output
#
kisik21
I like processing mf2-like dicts more, but taking some code out of mf2util would be nice
#
gRegorLove
mf2util++ cause it deserves more than 1
#
Loqi
mf2util has 2 karma over the last year
#
kisik21
simplified bsd is compatible with MIT, right?
eli_oat joined the channel
#
snarfed
oh man please don't copy and paste mf2util's code
#
kisik21
why?
#
snarfed
bad for open source health :(
#
snarfed
use it in place!
#
kisik21
I don't need this parse_author() stuff, I need a proper h-card from an authorship function
#
kisik21
It's not like I can't parse h-cards
#
kisik21
and also
#
kisik21
I'm no man
#
snarfed
mf2util.find_author()
#
snarfed
heh, i don't think "oh man" is ever directed at a specific person
#
kisik21
still I think the joke was good enough!
#
snarfed
ah, touche, well played
#
gRegorLove
kisik21++ hehe
#
Loqi
kisik21 has 5 karma in this channel over the last year (16 in all channels)
#
Loqi
[snarfed] mf2util: Utilities for interpreting microformats2 data
#
snarfed
oops that's my fork, should have been https://github.com/kylewm/mf2util#authorship
#
Loqi
[kylewm] mf2util: Utilities for interpreting microformats2 data
#
kisik21
The problem with find_author is - it doesn't return an h-card, it returns only name, photo and (presumably first) url... and I'm more comfortable with getting full h-cards
#
snarfed
o..kay
#
kisik21
I just wanna copy this stuff and get rid of parse_author calls, so it would return an h-card and won't incur the overhead of additional lookups to the server (which may be even slower than mine) to look up what is already there
#
snarfed
not a great reason for reinventing the wheel...but the beauty of personal projects is you get to do it however you want :P
#
snarfed
(sorry, that was re "not comfortable"
Ruxton_ joined the channel
#
snarfed
you can definitely still use mf2util and avoid extra http fetches
#
snarfed
but your call
#
kisik21
maybe
#
kisik21
and yes, I'm definitely not comfortable with handling something that the authors didn't write. And every property in mf2 can be an array. What if I put several names in my h-card? :3 by the way, look in the post_renderer.html in pyindieweb source - you'll find what do I do with properties that are not usually arrays
#
kisik21
maybe I should rename it to pyindieblog btw
#
kisik21
the latter looks less official
snarfed joined the channel
#
kisik21
Okay, question. Should url and uid properties always contain a slash?
#
kisik21
s/\?/ at the end?/
#
snarfed
no. technically http://x/y is a different url than http://x/y/
#
kisik21
this makes stuff harder
oodani joined the channel
jgmac1106 joined the channel
#
kisik21
because I can't rely on every page having rel=canonical url, right?
#
kisik21
yep, I can't
#
kisik21
http://x/ and http://x should logically be the same, right? since you can't request something without a path, you need to request the root - /
#
aaronpk
yes, that canonicalization is described in indieauth as well
#
kisik21
urls are harder than HTTP that uses them
#
kisik21
(i mean http/1.1
#
kisik21
(http/2 seems too hard for me)
#
snarfed
root path / is a special case
#
cjwillcock
does root path / deserve a special treatment? IIRC I had the problem of trailing / on my own domain, as published at twitter, not matching the non-trailing slashed version of the same as publish on my own site
#
cjwillcock
onboarding friction
KartikPrabhu and snarfed joined the channel
#
aaronpk
cjwillcock: where was that and when? I thought I fixed that in indielogin.com
#
aaronpk
basically "http://example.com" is an incomplete URL as far as making http requests is concerned, so everything that is dealing with fetching URLs needs to add the slash when canonicalizing and comparing URLs. you shouldn't have to worry about whether you enter "http://example.com" or "http://example.com/" in your twitter profile or an indieauth sign-in prompt, the software should be dealing with it.
#
gRegorLove
I know indiewebify.me has an issue with that. I have a fix in progress.
iasai, [jgmac1106] and jgmac1106 joined the channel
#
cjwillcock
aaronpk: it was indielogin.com as far as the bio in twitter url mismatch goes
#
cjwillcock
and it was 9months ago or so
#
cjwillcock
in general - I remember that sense of 'why does this matter?' when I found that trailing slash thing
#
Loqi
[strugee] #6 Don't enforce trailing slashes
#
Loqi
[aaronpk] Sorry bout that! I fixed a _different_ issue with github logins but fixed this issue with twitter. Should be fixed in 2106ad9 now!
#
aaronpk
if you're still having trouble please let me know
#
aaronpk
but that was fixed in june according to the issue
#
cjwillcock
aaronpk++ much obliged!
#
Loqi
aaronpk has 94 karma in this channel over the last year (279 in all channels)
#
cjwillcock
and my onboarding friction was prior to June
#
cjwillcock
I think what gRegorLove mentioned re: indiewebify.me was the other part of it
#
[jgmac1106]
migrating all my podcasts to AWS rather than shared host to see if my load time improves..Not going to serve podcasts through Known. See what happens
#
gRegorLove
Do you use any copyrighted material in it, jgmac1106? If not you could use archive.org for free.
#
jgmac1106
nothing right about what I say and it should never be copied. but it’s all openly licensed
#
jgmac1106
didn;t think about saving a few bucks on archive.org…..but is not using archive.org kind of like a reverse donation? I am not giving you money but not taking bandwidth?
#
snarfed
jgmac1106: donate! :P
#
jgmac1106
…can’t lie went to the site, saw the CTA felt guilty and closed it down….I need to pay them…propbably 70-80% my jukebox
#
jgmac1106
someone please build me a way to save game files on archive.org to my website…that would be dreamy
#
gRegorLove
fees donated to archive.org are probably better than to AWS :)
iasai joined the channel
#
gRegorLove
Some details of how I did it, though only with a few episodes: https://indieweb.org/podcast#gRegor_Morrill
#
gRegorLove
I'd like to get back into podcasting, or microcasting at least.
#
GWG
gRegorLove: You were in podcasting?
#
gRegorLove
I mean, if you count publishing a few episodes, sure.
#
GWG
I don't recall this
#
GWG
Did I listen?
#
jgmac1106
gRegorLove I just do a 2 minute podcast to start https://networkedlearningcollaborative was originally a podcast network idea….we never did one show
#
gRegorLove
It's a pretty low barrier to entry to be "in podcasting", heh.
#
gRegorLove
GWG, I'd be surprised if you did. It's mostly my friend Jeremiah and I attempting to be funny.
#
gRegorLove
You're welcome to, though. No promises about quality, haha
#
jgmac1106
…but wow I can’t belive I tried to serve podcast files from a shared host…even my little two minute podcast gets served up so much faster now
iasai, [jgmac1106] and snarfed joined the channel
#
jeremycherfas
!tell jgmac1106 I have been serving podcasts from AWS from the start and the only Gotcha is that if something really takes off the bandwidth charges can surprise you. Good problem to have, usually.
#
Loqi
Ok, I'll tell them that when I see them next
iasai, barpthewire, leg, [kevinmarks], jgmac1106 and [jgmac1106] joined the channel
#
[jgmac1106]
jeremycherfas do you you use the Known s3 plugin or manually link to the file?
#
Loqi
[jgmac1106]: jeremycherfas left you a message 3 hours, 54 minutes ago: I have been serving podcasts from AWS from the start and the only Gotcha is that if something really takes off the bandwidth charges can surprise you. Good problem to have, usually.
#
jgmac1106
[jeremycherfas] I know this is the first year I am paying for AWS credits…been able to find free credits for the last four years of running a business on AWS..I am already sending out 300-400 a month…hoping I don’t really feel the podcast
#
sknebel
what's S3 pricing like? something like $0.10 per GB transferred, right?
iasai and [jgmac1106] joined the channel
#
[jgmac1106]
Cheaper. 023
#
[jgmac1106]
If you want to use Glacier for long term storage
#
[jgmac1106]
. Archives and such 0.004
#
sknebel
transfer, not storage
#
sknebel
just checked, you pay 0.023 per GB to keep the files, and then 0.09 (or more in some locations) per GB downloaded
#
[jgmac1106]
Sorry... Misunderstood... And majority of my cost come from ec2 not storage and transfer
#
[jgmac1106]
... Really I just blindly pay each month... Need to hit some promo events for credits... But AWS does not hand em out like candy anymore
#
sknebel
yeah. I find the transfer fees always a bit scary, since in theory someone could just download a file on repeat and cause painful traffic charges, but clearly that apparently isn't really a problem
#
[jgmac1106]
Lot of features in place to stop that on AWS.. And Cloudfare would probably catch it... That is the best $20 I spend a month
swentel, eduardm and iasai joined the channel
#
[jgmac1106]
really regretting using explxit grid and rows in my podcast template since the show is listed in reverse chronological order...adding episode 24 gonna be PITA
#
swentel
!tell snarfed finally figured out why webmentions sometimes didn't work from fed.bridgy - the html response is gzipped and on my server it isn't decoded ... funky - not sure if this is mention-php client or a server/php thing, but I can at least debug further now :)
#
Loqi
Ok, I'll tell them that when I see them next
#
sknebel
notes on AutoAuth + WebSub, feedback welcome! https://github.com/sknebel/AutoAuth/issues/8
#
Loqi
[sknebel] #8 AutoAuth, private feeds and WebSub
#
Zegnat
swentel, re gzipping, could it be you are using PHP curl? It doesn’t automatically un-gzip and it doesn’t inform the server it is requesting from that it doesn’t handle gzip either. So you may be in a situation where a server decides to send you back gzipped content rather than uncompressed content during the request
#
Zegnat
needs to do a write-up of all the curl corner cases soon
#
Loqi
[swentel] mention-client-php: Client library for sending webmention and pingback notifications
#
swentel
added curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); now
#
swentel
works fine
#
swentel
opening pull request
#
Zegnat
you probably want `curl_setopt($ch, CURLOPT_ENCODING, '')`.
#
Zegnat
The empty string means curl will check which compression algos it can actually support and request those
#
swentel
ironically it works fine locally, so there seems to be a default php setting
#
swentel
ok, testing
#
swentel
hmm yeah works fine too
#
Zegnat
Another thing to note: this may wreak havoc with Grav CMS websites under certain configurations. But I haven’t actually gone and verified that myself.
#
Zegnat
Those will send an encoding of `none` back, which needs a relatively recent version of curl to handle.
#
swentel
that doesn't make much sense (imo)
#
Zegnat
So when you tell curl to handle encoding, and it gets back a thing it doesn’t understand, it seems to error out. This would usually be a server error anyway. But for some reason there are a couple of PHP applications that send “none” for uncompressed, instead of “identity” which is in the spec.
#
Zegnat
Curl then checks if it can decompress “none”, sees it can’t, and errors out.
#
Zegnat
Fixed in curl 7.59.0. Kudos to sknebel for spotting that edge-case.
#
Zegnat
One solution I have thought of is to check the Content-Encoding header in the HEAD request. If it says "none", turn off `CURLOPT_ENCODING` in the GET request if curl < 7.59.0
#
Zegnat
But as I said, corner-case, and haven’t done a lot of research to confirm the issue or my theoretical solution
jeremych_ joined the channel
#
jeremycherfas
[jgmac1106] I do not use Known for podcasts. My podcast site is WP, but I upload to S3 by hand and use the blubrry plugin to handle the feed, which is does well.
#
jgmac1106
ahh okay
#
jgmac1106
I am just making a static page for the show…thinking each episode will still be on Known to still get all the webmentions and stuff
#
jeremycherfas
Not sure how that will work. I get most of my webmentions through Twitter.
#
[jgmac1106]
yeah I would be spreading word through Twitter, also thinking my classes and students...the podcast page is really just for the catchers
[kevinmarks] joined the channel
#
jeremycherfas
Do you even need a page? Not just a proper feed?
iasai joined the channel
#
Zegnat
Today I might enable WebSub. Wish me luck!
#
Zegnat
(I will also expect nobody to use it.)
#
sknebel
enable it for what?
#
Zegnat
My website. Which basically means my h-card.
#
sknebel
please don't send an update each time the clock changes :D
#
Zegnat
I will not
#
Zegnat
I will probably go manual until it hurts for v1. That is, pings are send to subscribers when I press a button
#
Zegnat
For future I would like it to automatically ping whenever the mf2-parsed output of the page changes
#
Zegnat
Here is a question though: when do you ping for a photo update? Or should people subscribe to the photo URL for those?
#
sknebel
ah, if you don't change the url?
#
sknebel
I guess someone who'd want to be up-tp-date would have to check that then, but I think it makes sense to ping for the h-card too
#
Zegnat
I haven’t updated the URL so far. Not sure if I will start doing that or not
#
sknebel
i feel like if I want to keep up-to-date with a card it makes sense to re-run all checking etc when pinged
#
sknebel
including "download and cache photo", at whatever url it is
#
Zegnat
Reading your AutoAuth+WebSub notes now
#
Zegnat
sknebel, looks like you reached most of the same conclusions I had. Did you see me mention WebSub conneg here in chat or did you separately think of that? If the latter, that does confirm to me it is the thing we may want to hook into as an “obvious” solution
#
sknebel
I had the idea, but the pointer that that's something that was designed in was helpful
#
sknebel
e.g. wasn't sure if you have to redirect and then use the self, or if it can be different than the url delivered
#
Zegnat
No redirect required
#
sknebel
yep. although should explicitly note that clients should fetch the original url then?
#
Zegnat
I think it is actually pretty funny. I can announce my "self" as any website I want.
#
Zegnat
I don’t think so? Because they wouldn’t tell the hub about the original URL. So the hub gets linked to the "self" URL
#
sknebel
the hub yes
#
Zegnat
When the hub pings the subscriber, it does this because the "self" URL has been changed. Theoretically this could even mean the original URL has not changed.
#
Zegnat
It is a bit weird that way
#
sknebel
and I'm not sure the "bit weird" makes sense :D
#
sknebel
although I guess you can use params and just ignore then
#
sknebel
it'd be a bit annoying implementation-wise to then have the capability urls serve copies of the feed
#
Zegnat
E.g. if using an external hub that polls the URLs that people subscribe to, it will never check whether the original URL changes. Only the "self" URLs.
#
Zegnat
Yeah, that is the more annoying part
#
sknebel
you can't use an external hub that polls for private content
#
sknebel
since it'll get a "401 I don't know you" when it polls
#
Zegnat
hub="external.example.org" & self="example.com/feed?capability=007"
#
Zegnat
The external hub can then poll the capability feed for changes
#
Zegnat
And it never knows the original url was just example.com/feed
#
sknebel
but it'll never see private posts, so it polling is useless
#
Zegnat
Depends if you give the capability URL access to the private data or not
#
sknebel
unless you make the capabiltiy urls unauthenticated, at which point I point you to my arguments why I think approach 2 is bad
#
Zegnat
Yep, and I agree
#
sknebel
so don't argue for it :D
#
Zegnat
I also do not know enough about current hub designs to actually add what is or isn’t a good solution.
#
Zegnat
I know of very few websub implementations, both on hub and subscriber sides
#
Zegnat
(That’s actually one reason I am trying to build a hub today. Learn the spec.)
#
sknebel
although I guess the logic is generally going to assume that you can fetch the topic url... so you'll probably have to serve at least a redirect there...
iasai joined the channel
#
sknebel
I find the conneg examples a bit odd then - why not have the server redirect to an individual url instead of putting it in self
#
Zegnat
Would have to look into the history of the websub spec. It feels like it was just tagged on to have conneg in some way.
#
Zegnat
I guess to otherwise be accurate with “can I expect a changed body” you’ve have to subscribe including all the request headers you would send?
#
sknebel
please reword, not sure what you mean
#
Zegnat
I cannot tell a hub “please notify me when https://example.com/ changes for a request with Accept: application/json”. So instead WebSub seems to have tagged on the little conneg section as a way to patch this, the resource looks at the original request headers and then decides to provide a different URL to listen to instead of the base https://example.com/
#
Zegnat
Does that make more sense?
#
sknebel
yes. I guess the way they do it doesn't require non-websub consumers to follow a redirect
#
sknebel
ok, subscription renewal uses the topic url, so you need to serve something there in all cases. although a redirect to the main feed might work
#
Loqi
[azaroth42] #84 Change Notification versus Content Distribution
#
Zegnat
Adding to read-later list
#
sknebel
hm, it seems all hubs check themselves if your content changes, so *something* has to be changed to get them to send out pings
#
sknebel
which could of course be some field just added to provoke a change, at least for servers that don't try to parse out new elements from the feed
#
Zegnat
Update timestamp in RSS/Atom
#
Zegnat
If they don’t filter for that
#
Zegnat
Ha, of course aaronpk had already had the same thought as me: “The more HTTP-like or content-negotiation-friendly way to do that might be to include an Accept header in the subscription request” https://github.com/w3c/websub/issues/86#issuecomment-272946160
#
Loqi
[aaronpk] This is an interesting one. I'm curious about the use case, although there is also some precedent in requesting alternate content types by Superfeedr. This part of Superfeedr is outside the PubSubHubbub spec, but it allows you to subscribe to any ...
iasai, [tantek], eduardm, indiewindy, [jgmac1106], swentel, gRegorLove, [eddie], [kevinmarks] and [pfefferle] joined the channel
#
[jgmac1106]
question bc I always get this wrong....if there is a link to that page on the same page would it get a u-uid or the u-url?
#
[jgmac1106]
<span class="posted-on"><span class="screen-reader-text">Posted on </span><a class="u-url" href="https://jgregorymcverry.com/test-2/"> that is a link not to me but the canonical link of the psot
#
Loqi
[Greg McVerry] Test
#
[jgmac1106]
stupid ass jetpack and the og graph it sticks in my header
#
Zegnat
Never use uid unless you have a very specific use-case
#
[jgmac1106]
thank, never is a clear filter fo rme
#
Zegnat
If you don't need a unique ID for very specific identification purposes, don't declare them unnecessarily. Basically. And if algos require it (representative h-card in certain cases) those will let you know.
iasai, [chrisaldrich] and [tonz] joined the channel
#
kisik21
aaronpk: How should the destination ?q=config property in micropub look? Should it be https://fireburn.ru or just fireburn.ru will do?
#
Loqi
Vika
#
aaronpk
looks like it needs at least name and uid, similar to the syndicate-to format
#
Loqi
[aaronpk] #3 mp-destination command should use `destination` in the config
#
kisik21
aaronpk: fixed that, but still no quick post... debug screen shows up-to-date data
#
aaronpk
is there a reload button there? if not, might have to log in again to get monocle to find the new info
#
kisik21
oh, also Quill doesn't wanna forget "post-types" field in config for fireburn.ru
#
aaronpk
it should be rediscovering those again when you log back in
doubleloop joined the channel
#
kisik21
aaronpk: it loads cached data because I removed that post type. Do you have a stateful database somewhere in there?
#
kisik21
s/post type/field
#
aaronpk
in quill yes, but it should be reloading it when you log in
#
kisik21
aaronpk: even "reset login" doesn't help!!
#
aaronpk
which type are you not expecting to see?
#
kisik21
I'm expecting to see every type, but Quill doesn't wanna forget a field removed from my q=config. I don't have post-types field there anymore, so I expect that bit of quill to show me every post type supported by Quill
#
aaronpk
ohh gotcha
#
aaronpk
so it's not removing the post-types config
#
kisik21
exactly!
iasai joined the channel
#
aaronpk
kisik21: okay try again. the reset button should reset that now, and should also be fixed when you log in again
#
kisik21
aaronpk: it works!
#
kisik21
aaronpk++
#
Loqi
aaronpk has 95 karma in this channel over the last year (280 in all channels)
#
aaronpk
woo thx
strugee, snarfed, [jgmac1106], iasai and KartikPrabhu joined the channel
#
[jgmac1106]
should css grid operate the same in Chrome as in Firefox?
#
sknebel
(there's bugs of course that mean it might not)
#
[jgmac1106]
...and after momentary freakout realizes browser was really zoomed in
[asuh] joined the channel
#
Zegnat
I think WCAG may require testing with two zoom levels? There is something like that at least. If you want to get your accessibility hat on [jgmac1106] ;)
#
jgmac1106
200% or hit zoom twice to 120%?
#
Zegnat
… I don’t recall
#
Zegnat
“Content satisfies the Success Criterion if it can be scaled up to 200%, that is, up to twice the width and height.” - https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html
#
[jgmac1106]
header is a little ugly but I am pretty okay
iasai, snarfed and [jgmac1106] joined the channel