2016-04-12 UTC
mblaney joined the channel
emmak_, wolftune and KartikPrabhu joined the channel
# 01:30 tantek KevinMarks: we have indiewebify.me to help with that right? h-entry validation?
# 01:50 kylewm I think to get Known working with webmention.rocks, we need to fix up mention-client-php
Lancey joined the channel
# 02:19 tantek is back to fixing some 2014 era hotlink embeddings from IG
asheesh, shiflett, mdik and [shaners] joined the channel
# 03:03 miklb pictures tantek with his sleeves rolled up, sweat on his brow
# 03:04 [shaners] nah. he’s typing one handed while twirling and clicking a pen with his other hand. like a bond villain hacker.
[shaners] joined the channel
# 03:43 [shaners] tantek: I don’t know my way around HTTP headers that much, so I’m asking this out of ignorance.
# 03:43 [shaners] Is the trailing whitespace significant in this comparison?
# 03:44 [shaners] ie, Could a header be "X-Pingback:foo” or does it have to be "X-Pingback: foo”?
acegiak joined the channel
# 04:13 Loqi KevinMarks meant to say: hm. In python we do link.split(';')[0].strip('<> ')
kylewm, jedahan and [shaners] joined the channel
KartikPrabhu and j12t joined the channel
# 04:35 sknebel KevinMarks: If I read the spec correctly, you should strip tabs as well
# 04:38 [shaners] php question: Where is the `get_absolute_uri` function be called from in this line?
# 04:38 [shaners] It doesn’t seem to be a part of the php standard library. (php.net doesn’t have a function page for it.)
# 04:38 sknebel kylewm: by default, not if you give it specific chars to strip as in KevenMarks example
snarfed joined the channel
# 04:59 [shaners] kylewm: I get the gist of what its supposed to do (well named, and all) and don’t actually need to use it. I was just curious since php.net didn’t have anything for it.
# 04:59 [shaners] and as best as I can tell, it’s not being loaded in from an external lib. (but I don’t know php well enough to know what i’m looking for)
# 05:04 kylewm yeah I agree with your assessment, I don't see it being loaded via composer or an explicit require. not sure where it's coming from
# 05:05 miklb [shaners] I'm pretty much where you are at, but looks like it might be a function of a non-standard extension URIUtilsExtension
# 05:24 miklb yeah, he's probably somewhere over the Atlantic right now
# 05:27 sknebel hm, his /travel posts really could link to a flight-tracking site while the flight is happening ;)
# 05:28 GWG !tell aaronpk sknebel suggested your /travel posts could link to a flight tracking site while the flight is happening
# 05:28 Loqi Ok, I'll tell them that when I see them next
# 05:28 GWG Anyone know what a webmention handler should return if webmentions aren't permitted on a specific URL on a site?
# 05:29 GWG 400 is listed as sender-related errors.
# 05:29 GWG Receiver errors are 500 according to specification
# 05:29 GWG But this is an operation not permitted situation
# 05:30 sknebel if I send you a webmention for a URL that doesn't support it, that's an error on my part
# 05:30 GWG sknebel: How do you know it doesn't support it?
# 05:31 GWG WordPress allows for pages to be set to not accept Pingbacks.
# 05:31 GWG The Webmention plugin honors that flag
# 05:32 sknebel then it shouldn't announce a webmention endpoint for that page
# 05:32 sknebel anybody who stills sends a webmention to an endpoint they found somewhere made a sender error?
# 05:33 sknebel spec says explicitly 400 for "Specified target URL does not accept Webmentions."
# 05:34 GWG How is that a mistake on the part of the sender?
# 05:35 sknebel the scenario "page has a declared endpoint, but doesn't actually accept WMs" isn't really covered it seems
# 05:35 GWG sknebel: Worth discussing, I think.
XgF joined the channel
# 05:36 sknebel what can lead to somebody sending a WM for an invalid target?
# 05:36 GWG sknebel: The scenario I mentioned.
# 05:36 GWG It's a valid target, but the target has chosen not to accept Webmentions for that URL on their site.
# 05:37 kylewm but they might well put the <link rel> in their template so that it shows up on every page
# 05:37 GWG But if the server doesn't announce it, it isn't the client's fault.
# 05:38 kylewm I think 400 is fine in that case, like, nobody made a mistake, you're just explicitly saying that the webmention was rejected
# 05:39 GWG So, is it worth considering removing the endpoint link from pages that are not able to accept them?
# 05:39 sknebel yeah, if the server claims to accept WMs and then doesn't it is strange. from the server perspective it is a client error, but the client couldn't know it is wrong
# 05:40 sknebel checking for the endpoint is the only chance a sender has to figure out if the target wants WMs or not
# 05:40 sknebel and they have to do so anyways, to find the endpoint URL
XgF joined the channel
# 05:41 GWG Does anyone cache the endpoint for a site?
tantek joined the channel
# 05:43 kylewm sknebel: in practice it never cache things longer than a couple days I think
# 05:43 sknebel the wiki sort-of suggests using expiring endpoints as anti-spam/DDOS
# 05:43 kylewm yeah, we discussed carving out an exception for bridgy at the time...
# 05:46 kylewm like the cache key is "W https kylewm.com" for any page on my site
# 05:48 GWG So, if you cache endpoints, removing the endpoint from any URL is an issue
# 05:48 kylewm sknebel: looking closer at the code, it's set to cache for 2 hours
# 05:48 Loqi kylewm meant to say: sknebel: looking more closely at the code, it's set to cache for 2 hours
# 05:50 GWG This needs more thought for that reason
# 05:50 kylewm GWG: good point yes you're right. though that's maybe a bug in bridgy and not something you should necessarily design around
# 05:51 GWG kylewm, but it is an area worth exploring with Bridgy as one possible use case
# 05:52 kylewm sknebel: it tries to resend failed WMs a few times, with exponential backoff
# 05:52 sknebel (does aaronpk use bridgy? if yes, how did it work with his experiment with expiring endpoints?)
# 05:52 sknebel kylewm: I meant, on failure, does it try to re-discover a new endpoint?
# 05:53 sknebel or does it back-off long enough for the cache to expire?
# 05:54 sknebel if you haven't gotten any complaints endpoints probably are quite stable in practice
# 05:54 kylewm aaronpk's webmention endpoint doesn't expire anymore. iirc, at the time he was testing it, he did give bridgy a non-expiring one. i don't remember how exactly
# 05:56 kylewm sknebel: it doesn't explicitly clear the cache and try sending the webmention again right away, but yeah the exponential backoff should give it plenty of time to clear out normally
# 05:56 GWG I just want to better indicate to the sender not to give up on the domain
# 05:57 GWG KartikPrabhu, I started with a problem.
# 05:58 GWG The... page on site not accepting pings
# 05:58 GWG But the suggestion was that it not return the endpoint link
# 05:59 GWG But if the sender caches endpoints as some senders do... it would affect the whole site
# 06:00 KartikPrabhu is that an actual situation. are there senders that do that on a domain-wide basis
# 06:00 GWG And there is a proposal for the same webmentions plugin I'm looking at to do it
# 06:00 KartikPrabhu i don't think any sender says "oh this post does not have a webmention endpoint so the whole site does not"
# 06:01 sknebel but bridgy doesn't "care" about received 400s, as in blacklisting domains that return 400 to often, right? (kylewm)?
# 06:01 kylewm KartikPrabhu: I believe bridgy would behave that way, just from looking at the code. I could be wrong
# 06:01 KartikPrabhu sknebel: I don't think so. My homepage does not accept webmentions and I have gotten a lot of them from bridgy without fail
# 06:02 KartikPrabhu kylewm: bridgy should not think that a 400 for one post == 400 for whole site
# 06:02 kylewm it could be, definitely. i'm not aware of it causing problems in practice yet
# 06:02 kylewm sorry no, not 400. missing <link rel="webmention">
# 06:04 GWG I guess I will think about whether or not I remove the endpoint from pages that don't support it.
squeakytoy joined the channel
# 06:07 sknebel GWG: I feel like that would be the cleanest approach. it avoids unecessary work for both sides (not sending/processing invalid WMs) and if something caches a negative discovery result that's a bug on its side
# 06:07 tantek kylewm: somehow I left that out of my commit at some point? weird.
[shaners] joined the channel
# 06:10 [shaners] tantek: Do these two functions exist anywhere else (and were copy/pasted into the parser)?
# 06:10 tantek get_absolute_uri I somehow forgot in the committed version
# 06:11 [shaners] Follow up: confused by CC0 in this one file, but not for the whole repo. ¯\_(ツ)_/¯
# 06:13 [shaners] Looks like the tests still pass because there isn’t an example that uses $url. So, get_absolute_uri() never gets called.
# 06:20 tantek shaners, good call on noticing it didn't exist in the *obvious* place, because apparently it wasn't there in the repo! (until just now)
# 06:22 tantek kylewm, miklb I have no idea how I added this function ~mid 2015 and it did not get committed
# 06:23 [shaners] tantek: you’re deploying to production from local computer and not via github, right?
# 06:23 [shaners] I mean, your production doesn’t install dependencies on the server from github at deploy time?
# 06:24 tantek every source file in Falcon gets independently updated atomically
# 06:25 tantek sometimes one file needs a newer version of another file, and so that other file is updated first.
# 06:25 tantek but it's always a directed one level deep dependency at most
# 06:27 tantek no I just keep track of which two files need to be updated, and which one first
# 06:28 [shaners] And if yall add a test that uses a base uri, I’ll add that too.
cweiske joined the channel
# 06:28 miklb still not sure how link-rel-parser-php would know about the function in cssis.js
# 06:29 [shaners] Maybe it’s worth thinking about extracting the test suite to a JSONy language agnostic test suite like happened for mf2 parsers
# 06:29 Loqi miklb meant to say: still not sure how link-rel-parser-php would know about the function in cassis.js
# 06:29 tantek shaners - I couldn't obviously tell what was the source file vs decorative bits
# 06:30 tantek dislikes the modern development practices of surrounding a single source file with lots of chaff directories and mini config files and such
# 06:30 tantek doesn't have patience to click on lots of things to try to find the actual thing that does the work
# 06:31 tantek miklb - I extracted the http_rels and head_http_rels functions from Falcon into link-rel-parser-php. Falcon itself includes cassis.js
# 06:32 [shaners] Is that re: an extracted test suite for the link-rel-parsers? Or re: something else? I’m confused. (It’s late and tired.)
# 06:32 tantek I got tired of gopher browsing for relevant text files back in the 1990s
# 06:33 tantek "got link-rel-parser-php half ported to Ruby" => Ruby code
# 06:34 [shaners] It’s the same number of clicks as the PHP version. You’re just more familiar with PHP projects than Ruby ones. It’s ok.
# 06:34 tantek for me the top level thing already is a lib that's why I was complaining about having to do directory diving
# 06:36 tantek very weird to have source code buried and meta-chaff at the top level. total inversion of normal UI priorities
# 06:37 kylewm I do get very confused when projects put their source under lib
# 06:37 cweiske was, it's a remnant of the PSR-1 coding standards
# 06:37 cweiske where you could just >include "Name/Space/File.php"<
# 06:37 cweiske with just the include path correctly setup, without the need for an autoloader
# 06:38 tantek if I could shove all the gitignor, package phpunit post-process meta-chaff into "chaff" dir I would
# 06:38 tantek none of that stuff is relevant enough to be top level
# 06:39 [shaners] I agree. And all the Filefiles. I’ve long wanted a config or settings or misc or whatever directory for the files-for-computer.
# 06:40 [shaners] “/lib" is an existing Rubyland thing. It’s not worth the effort for me to fight it. I get more for free by using the conventions than I would get by doing it another way.
# 06:40 miklb honest question, does that get_absolute_url need to be extracted for php as well or does is it somehow referenced from cassis
# 06:41 kylewm Link-rel-parser doesn't depend on cassis though does it?
# 06:42 Loqi tantek meant to say: miklb yeah, because .js is more trendy
# 06:42 tantek kylewm link-rel-parser-php is just an extraction of a few open source functions from Falcon. Falcon depends on cassis
# 06:43 tantek I open sourced them because I looked at existing PHP link header / rel parsing code and it was all super-over-bloated object-class hierarchy tons of files crap
# 06:43 tantek and so I wrote my own probably 1/10 the size and # of files. e.g. 1 file. zero classes/objects
# 06:44 tantek and the published it because it was so much smaller than existing php libs
# 06:44 miklb fair enough, then that still would need to be added to the link-rel-parser-php repo. I think
# 06:44 [shaners] tantek: is link-rel-parser also meant to have get_absolute_uri() in it too?
# 06:44 Loqi tantek meant to say: and then published it because it was so much smaller than existing php libs
# 06:45 tantek shaners, no, because it's already loaded in from cassis
# 06:46 tantek I don't pretend to understand or use any of the composer / package type stuff
# 06:46 [shaners] tantek: I think we all understand that parts of cassis got extracted to become link-rel-parser. What we don’t understand is how link-rel-parser loads get_absolute_uri() from cassis if link-rel-parser doesn’t load cassis anywhere in the repo.
# 06:46 tantek shaners no. parts of cassis were not extractd
# 06:46 Loqi tantek meant to say: shaners no. parts of cassis were not extracted
# 06:47 tantek a few functions from Falcon were extracted to become link-rel-parser-php
# 06:47 tantek Falcon loads cassis. Falcon has the functions http_rels head_http_rels
# 06:48 [shaners] I don’t think get_absolute_uri() is actually getting loaded into link-rel-parser-php from cassis. I think the tests just never hit it.
# 06:49 [shaners] But what if some other php codebase wanted to use link-rel-parser? How would get_absolute_uri() work?
# 06:49 tantek that other codebase would have to load cassis itself
# 06:50 [shaners] So, what you’re saying is that cassis is a dependency of link-rel-parser?
# 06:51 [shaners] So, what you’re saying is that link-rel-parser depends on cassis?
# 06:52 tantek if I'd had more time I'd have made http_rels and possibly also head_http_rels work in js as well as php and put them into cassis directly but I didn't so I just shared them separately
# 06:52 tantek since at the time I wrote them, I pointed out that I did, and was asked to share them (I think by aaronpk )
# 06:54 tantek as you observed, http_rels uses get_absolute_uri which is defined by cassis.js. thus whatever code includes http_rels must also include cassis.js
# 06:54 tantek I don't like the term "dependency" because it is overloaded and vague
# 06:56 miklb if something won't work without something else, what would be a good term?
# 06:56 [shaners] Seems like link-rel-parser should include cassis itself, so that it works “out of the box” without additional configuration etc.
# 06:57 tantek nope. probably less work for me to make the functions work natively in cassis than deal with "out of the box" packaging stuff
# 06:58 tantek so the code is provided as-is because that's how it was requested
# 06:58 tantek but since the choice was wait because it wasn't done, or provide something people could use with some work, I chose the latter
# 06:59 tantek or people can do A LOT more work to try to use the overcomplex other PHP "libs" for parsing link headers
# 06:59 [shaners] I appreciate that you wrote this code and open sourced it. It saved me a lot of thinking on this problem. I was able to just think about the php->ruby conversion.
# 06:59 tantek more source, more files, more objects, more documentation to read etc. etc.
# 07:00 tantek and right - because I wrote SHORT source with minimal meta-packaging-chaff, it was more readable for you
# 07:00 tantek and that readability made it more convertible
# 07:01 [shaners] Well, to be frank, all of your one letter variables were less readable. :wink:
# 07:01 tantek too much of my legacy C/Assembly programming is showing sometimes
# 07:02 [shaners] My confusion was/is how this library would work for anyone who used a base url. Since cassis isn’t loaded by link-rel-parser. And since it isn’t documented anywhere, say in composer.json or in the README or in the src file that cassis is needed for get_absolute_uri to work.
# 07:02 tantek probably good to add something to the readme yeah
# 07:02 [shaners] My bet is that aaronpk hasn’t noticed because no tests actually hit that code path.
# 07:03 tantek easiest probably to just get the test harness to load cassis
# 07:03 tantek no the test cases from webmention.rocks forced me to fix that bug in http_rels to handle relative hrefs
jihaisse joined the channel
# 07:07 [shaners] I added a couple issues for you/aaronpk to capture tonight’s conversation
# 07:09 tantek aaronpk: do you use link-rel-parser-php anywhere?
# 07:10 aaronpk My flight landed at the boarding time of the next one so I will have to wave from here
# 07:10 aaronpk yes I do indirectly. It's used by Telegraph which sends all my webmention a
# 07:10 tantek I wrote/shared the code but honestly don't know anyone else using it in production
# 07:11 aaronpk and I think it's used by mention client php which means it's in Known
# 07:11 tantek this is what happens when you share code. it ends up in unexpected places.
# 07:12 tantek figuring if people copy/use it, their responsibility
# 07:12 tantek helps to feel less guilty purely by at least putting better code out there than what was out there before
# 07:12 aaronpk i should add more tests for it. The current set is really brief
# 07:13 miklb an observation from an newcomer/outsider…code released by a project vs an individual is different
# 07:13 tantek with individuals it's more like just developing in the open, and if you see something you can use, go for it
# 07:13 tantek there's little/no "productizing" because that's not why we're sharing
# 07:14 tantek I actually think that's a much more individual-friendly / practical way of doing open source
# 07:14 [shaners] aaronpk: I mentioned earlier (before you were here) that I’ll port whatever tests yall write for php into my ruby port.
# 07:14 tantek which then (hopefully) encourages more open incremental sharing of source
# 07:15 tantek which should help everyone in general learn / use things
# 07:15 [shaners] aaronpk: And if you wanna extract the test suite into a language agnostic test repo, I’d use that too. (Like the mf2 parsers do)
friedcell, loic_m, nitot, Pierre-O, mdik_, tvn, M-kegan, M-Kodo, sanduhrs, adactio, j12t, davbo, M-RyanRix, Nissyen, mblaney and hs0ucy joined the channel
j12t joined the channel
jrenslin, hs0ucy and mlncn joined the channel
# 13:48 miklb voxpelli I didn't realize that themes for Jekyll will be landing sooner than later. Looks like going to be in 3.2
nitot joined the channel
# 13:49 miklb I had seen discussion in an issue thread, but hadn't seen the PR until last night
# 13:50 miklb that's specifically so GitHub pages can use them.
# 13:51 miklb yeah, the PR is from Ben Balter, who basically handles pages for gh
# 13:51 miklb he mentioned in another thread it was a priority, just didn't realize how much :-)
# 13:51 voxpelli "would allow us to very quickly whitelist a large number of themes for use with GitHub Pages", will be interesting to see how it turns out
# 13:52 miklb will try to make sure indieweb theme gets on that whitelist
# 13:53 miklb I'm hoping by the jekyllconf next month it will be in RC status at least
singpolyma joined the channel
tvn and [zero-gravitas] joined the channel
KartikPrabhu and shiflett joined the channel
# 15:08 sknebel I'm also not sure how you'd do that without additional tools
hs0ucy, friedcell, squeakytoy2, tantek, squeakytoy and Garbee joined the channel
snarfed and tvn_ joined the channel
# 15:51 kylewm aaronpk: tantek: mention-client-php doesn't depend on link-rel-parser-php just fyi
# 15:53 kylewm I'd rather it didn't honestly, I don't want to pull cassis into Known just for that
# 15:54 aaronpk i still need to actually catch up on that whole discussion thread. i think i got the gist of it.
gRegorLove joined the channel
# 16:06 aaronpk kylewm: how do I go about renewing the FB access token on silo.pub?
# 16:06 aaronpk if I click the facebook icon on the home page will it get a new token from FB? I assume my existing micropub token will be the same?
# 16:08 aaronpk gotta figure out how to surface those errors to myself better
# 16:09 kylewm (i'm open to suggestions... to notify you when the token expires like bridgy does, you need FB Canvas permission which is too hard to get)
# 16:10 snarfed or did we just have to configure the app for canvas? which is also annoying - i basically redo it every time i apply for a new perm, than undo immediately after - but still
# 16:15 kylewm lol, "Build a custom friend selector that helps maintain an immersive game experience"
# 16:23 aaronpk I was thinking just on my end even. Like if I get an error from silo.pub right now I don't see it unless I look at my logs
snarfed and tantek joined the channel
j12t joined the channel
# 16:33 snarfed it's pretty good (the latter), you might want to try it for you app engine stuff. should already be running.
# 16:40 voxpelli miklb: I wonder if it would make sense to make enable my webmention endpoint to send a micropub request with each mention to the site that received it so it can publish it wherever it chooses?
# 16:42 voxpelli probably won't make it a high priority though as I think it's enough to have the mentions be curlable
# 16:44 miklb If I understand that correctly, could have a plugin like what I'm using for webmention.io currently to pull in the webmentions into a cache file?
# 16:47 voxpelli I think that would add unwanted complexity to my site, I want my site to be about my content and defer enhancements with references to mentions to external services
# 16:53 miklb voxpelli it seems that Aaron Gustafson's webmention.io jekyll plugin could easily be modified to use your api endpoint and allow received webmentions be cached on build and displayed that way for people that want that option.
# 16:54 voxpelli miklb: what would the benefits be of that would you say?
# 16:54 miklb not sure. resources? support for people browsing without js?
# 16:57 voxpelli kylewm: one can download backups from herokuapp + host the herokuapp oneself :)
# 16:58 voxpelli more thinking if there's an advantage of having it directly in the html vs having it loaded with javascript
# 16:58 miklb but an automated backup on build isn't a bad thing. I use a combination. I serve the js for any mentions between build/deploy, but cache the mentions and display them
# 16:58 voxpelli I see the realtime of the latter and the decreased complexity of the main app, the separations of concerns, as big wins
# 16:59 Loqi voxpelli meant to say: I see the realtime of the latter and the decreased complexity of the main app, the separations of concerns, as wins
# 17:00 voxpelli the current nextgen solution for my endpoint also works for people without javascript, they just have to follow a link to see the mentions
# 17:01 miklb certainly isn't advocating for not offering the js/progressive enhancement
bengo joined the channel
KartikPrabhu and jciv joined the channel
# 17:15 kylewm could a php person check if their system has xmlrpc_decode? (mine doesn't without apt installing php5-xmlrpc, but travis ci seems to have it by default)
# 17:16 singpolyma kylewm: same as you I need php5-xmlrpc for that function to be defined
rrix joined the channel
# 17:22 kylewm whoa also just learned a weird alternate php syntax if elseif endif
begriffs joined the channel
# 17:23 tantek kylewm: you're saying you learned one weird php trick?
# 17:24 gRegorLove Too slow. That was for: one weird php trick. Guess it works for do you have a newsletter, too.
# 17:27 tantek aaronpk: for archiving the webmention rocks test results/comments, I'd suggest putting them in an "Archived responses" section at the bottom, perhaps clustered by implementation
# 17:27 tantek s/at the bottom/at the bottom of each test page
# 17:27 Loqi tantek meant to say: aaronpk: for archiving the webmention rocks test results/comments, I'd suggest putting them in an "Archived responses" section at the bottom of each test page, perhaps clustered by implementation
# 17:30 miklb voxpelli I'm going to switch over to herokuapp so I can better test/explore the implementations. Also in case decide to incorporate the micropub with it
# 17:31 tantek maybe keeping 2-3 per implementation, e.g. looks like we have (1) Known, (2) WordPress (plus what plugin(s)?), (1) Nucleus, (1) Falcon using link-rel-parser-php, and (1) Ronkyuu
# 17:32 tantek KevinMarks: good question - do we distinguish just showing up on the test page without name/photo/content/permalink compared to all the above showing up?
# 17:33 tantek and that's a hand-authored static page right?
# 17:34 KevinMarks I could hand-author a static page on kevinmarks.com and send it the same way
# 17:39 tantek kevinmarks - I think especially with proxy-like services, it helps to use a separate domain, and then document on your post how it worked, because it's not as obvious what's going on (what implemented what)
# 17:40 tantek plus does mention-tech support sending updates? hoping that you sending an update would fix the noname/nophoto/nocommenttext problems on the resulting comments on webmention rocks
# 17:43 aaronpk kylewm: xmlrpc is an extension. i ended up just building the XML by hand for mention-client to not rely on that being on the server
tridnguyen joined the channel
# 17:48 KevinMarks oh, and indiewebify.me can't check mention-tech 'cos it's on appspot
# 17:51 aaronpk huh, it doesn't. i wonder if i forgot to do it in the first place or if i deleted it
# 17:51 gRegorLove Did I recall correctly that someone in the community was adding h-feed support to SimplePie?
# 17:57 aaronpk i have some fun surprises to push up to webmention.rocks that I wrote on the train this morning
# 17:58 tantek gRegorLove: sounds like you've almost hit rock bottom.
Pierre-O and wolftune joined the channel
# 18:05 voxpelli kylewm: aaronpk: XML-RPC always answers 200, don't it? That's kind of the thing with RPC, that it just uses HTTP as a transport and uses it's own format for everything else
# 18:06 singpolyma HTTP basically is an RPC protocol (verb + params) so tunelling another RPC protocol over it always ends up ignoring some HTTP features
# 18:08 tantek singpolyma: depends if you're tunneling or deliberately layering
# 18:08 tantek oh goodness why am I getting sucked into a plumbing discussion.
# 18:09 aaronpk what's the saying? don't try to parse HTML with regex? how about XML!
# 18:10 aaronpk xmlrpc_decode isn't guaranteed to be installed, and likely the same for other libraries
# 18:10 Loqi [brid-gy.appspot.com/post/twitter/mention_tech/707770354840838144] a month agobrid-gy.appspot.com/post/twitter/mention_tech/707770354840838144 mentioned mention-tech.appspot.com/ ✅ a month ago None
# 18:10 aaronpk plus i mean really, an XML parser to find out if the endpoint returned a 0?
# 18:11 singpolyma regex will probably work, but XML parser probably easier if there's one PHP always has. I thought they did, but maybe not
# 18:12 aaronpk KevinMarks: don't you want p-name on the img tag?
# 18:13 kylewm so if the pingback function really just returns true or false for success, then we can just check for the presence of <fault> in the response, i think
# 18:13 aaronpk huh yeah i don't know. apparently the value of the u-logo counts towards the value of the name since it's inside the p-name
# 18:14 aaronpk it's taking the value of everything inside the p-* object
# 18:14 Loqi KevinMarks meant to say: why is p- getting a value from an src?
# 18:15 voxpelli kylewm: yeah, I added a short snippet saying basically the same
# 18:16 aaronpk i don't think it knows it's a url at that point, since it's *inside* the p-name tag
# 18:16 kylewm "else return the textContent of the element, replacing any nested <img> elements with their alt attribute if present, or otherwise their src attribute if present, resolving any relative URLs, and removing all leading/trailing whitespace."
snarfed joined the channel
tantek joined the channel
# 18:29 gRegorLove There was big changes in plain text parsing, for better whitespace support
# 18:31 gRegorLove It's a bug if ($el->getAttribute('alt') !== '') . . . else if (!$implied && $el->getAttribute('src') !== '')
emmak joined the channel
# 18:35 KevinMarks right, getAttribute doesn't distinguish no attribute form empty attribute; if ($el->hasAttribute('alt')) should work
KartikPrabhu joined the channel
shiflett joined the channel
# 18:46 tantek Kevinmarks - in situations like this, always try microformatshiv - it tends to have the most spec-precise results because of the incredibly thorough test suite that Glennjones wrote up with it
# 18:46 KevinMarks right, we need to get back to iterating those in python as well
KevinMarks joined the channel
# 18:54 KevinMarks a parsing thought - if we do fall back on the src of an img inside a p, should we wrap it in spaces?
# 18:57 aaronpk yeah that does seem reasonable. there is no way that concatenating a string with a value that came from a src or href makes sense.
shiflett joined the channel
# 19:03 GWG User agents for webmention source verification. Anyone have a thought?
# 19:03 tantek against anything specific just for "webmention source verification"
# 19:04 GWG Right now, it doesn't seem to set a user agent
# 19:07 tantek the webmention validator could display that kind of information (UA etc.)
Breadbasket_ joined the channel
# 19:07 GWG I'm exploring everything about the webmention plugin to the smallest detail
# 19:09 GWG Including whether the source url should accept protocols other than http/https and ports other than 80,443, or 8080
begriffs joined the channel
# 19:10 GWG KevinMarks, it was mostly about whether or not to use the built in url validator
# 19:11 GWG It also rejects usernames/passwords,? and #, []...
# 19:12 GWG I am thinking the answer is no, but the urls need to be checked regardless
# 19:15 GWG Any WordPress Plugin could get a wide installation base if our dreams come true. I don't want to be responsible for DDOS or other problems
# 19:16 GWG Although I obsess about everything that I am passionate about
hs0ucy and acegiak joined the channel
# 19:22 GWG To use an analogy, if webmentions are plumbing... I want to use the best pipes because I'm afraid that the people buying the house... (WordPress Core) won't want it if it isn't structurally strong.
# 19:23 GWG I'm going to take a break from this obsession for the afternoon and go back to obsessing about work.
# 19:27 voxpelli I think version numbers + urls in user agents are pretty good because then one can easily pinpoint a bad-behaving client and give them feedback on how to improve
# 19:28 aaronpk I would recommend using a user agent that describes your software, nothing specific to webmention. It can be used for any other http request you might be doing too
# 19:29 aaronpk look at how slack and other sites set their user agent for doing link previews
# 19:29 tantek like there should be no difference in UA between when curling a pingback source and a webmention source
# 19:29 tantek so what's your existing practice when curling a pingback source?
# 19:29 aaronpk same for fetching images if you're running an https image proxy
# 19:30 aaronpk Speaking of which I need to do that for webmention.rocks
# 19:31 voxpelli tantek: the wordpress practise there is very weird and doesn't even comply with normal user agent formatting :P
# 19:32 tantek voxpelli: can you document perhaps "Software Examples" there with what you know of what WordPress does currently?
# 19:33 voxpelli GWG: ^ perhaps you are better at that? I just retold what you posted in your issue :)
# 19:33 GWG I have to head back to work. Will try to Tonight.
# 19:34 kylewm would be kinda nice to have an https image proxy that we could all use (including the wiki)
# 19:35 aaronpk For the wiki the hard part isn't actually writing/running the proxy. It's hooking into al the various ways media wiki generate img tags
# 19:37 aaronpk willnorris made one too, I forget which platform it's for
# 19:38 kylewm if you search for https image proxy, his is the first hit
# 19:39 kylewm aaronpk: is ca3db the one you are talking about?
# 19:39 kylewm for some reason i decided i thought that wasn't a general purpose tool
# 19:41 voxpelli aaronpk: how does the lambda one serve the stored images?
# 19:41 kylewm oh I remember, ca3db actually has like an upload step, you can't just construct a URL at render time
# 19:42 aaronpk you tell it the URL you want to archive and then it gives you back an S3 URL
# 19:42 voxpelli aaronpk: so there will be two different URL:s for the S3-one and the lambda-generated one or can API Gateway handle that a miss in one results in a call to the other?
# 19:42 voxpelli aaronpk: I want all of my image resizing to be lazy I think ;)
# 19:43 kylewm that's all i meant by "upload step"; you have to do something proactively in order to get the image into s3
# 19:43 kylewm which is the right architectural decision for the use case you wrote it for
# 19:43 aaronpk for me the initial API call is important, since the goal is to make sure my image tags on my site always reference a real thing
# 19:44 aaronpk I'm going to use the same pattern once I accept photo comments
# 19:44 aaronpk basically why would you want to risk writing an img tag to a photo that might not be there?
# 19:45 kylewm but you can see why making the wiki do that would be effort than just rewriting a image urls with "images.weserv.net/?url=URL" at render time
# 19:46 voxpelli aaronpk: one can always to the gravatar-solution of serving a fallback-image if one uses it for something like avatars
# 19:46 aaronpk But the wiki has a perfect opportunity to make that call.. When the page is saved
# 19:46 aaronpk Plus then we know the wiki won't have broken images later
# 19:47 KevinMarks googles image thing is good 'cos you can resize on the fly by appending a width to the url
# 19:49 tbrb we're hoping that as exams finish up we'll have a few more folks heading along
snarfed joined the channel
# 19:50 KevinMarks the one you call from appengine - would need a little bit of wrappign code
# 19:51 tbrb tantek: I'd not thought that far ahead to be honest, might not be too bad an idea actually
# 19:51 snarfed downside: have to upgrade to fb api v2.6 to use it, which for some projects (ahem) will be nontrivial
# 19:53 aaronpk gotta prioritize reacji support on my site now hehe
# 19:53 aaronpk in anticipation of Bridgy supporting it of course
# 19:54 tantek aaronpk: what do you think Bridgy could support reacji backfeed from FB?
# 19:56 kylewm oh the feature request was there hours after facebook launched the feature
hs0ucy joined the channel
indie-visitor joined the channel
# 20:09 Loqi Welcome, indie-visitor! Set your nickname by typing /nick yourname
xod3, shiflett, snarfed, KartikPrabhu, tvn and Lancey joined the channel
# 22:54 miklb saw some discussion earlier about serving images, recently came across https://www.imgix.com and what I liked is it will serve from your own S3 bucket but provide optimized sizes available on fly.
# 22:57 miklb maybe not "serve from you S3" but pul from S3
# 22:57 Loqi miklb meant to say: maybe not "serve from you S3" but pull from S3
mblaney and KartikPrabhu joined the channel
# 23:14 mblaney !tell gRegorLove I released official SimplePie 1.4-beta a few days ago that includes microformats support, will release 1.4 in a few weeks.
# 23:14 Loqi Ok, I'll tell them that when I see them next
shiflett joined the channel