2016-04-28 UTC
# 00:17 snarfed on the plus side, we're a big step closer to sending reactions!
j12t and [kevinmarks] joined the channel
# 00:25 Loqi [kevinmarks]: tantek left you a message 32 minutes ago: please capture all the user frustrations you experienced today while trying to demo various indieweb tools. That real-time experience and your immediate reactions / insights are invaluable for future user-centric improvements http://indiewebcamp.com/irc/2016-04-27/line/1461801172830
acegiak and snarfed joined the channel
# 00:48 snarfed starts wading through the activitystreams specs and mailing list to figure out how to represent reactions
# 00:58 GWG Has anyone implemented flood control on webmention updates?
[kevinmarks] joined the channel
# 01:16 [kevinmarks] If I live tweet you with noterlive.com and you have brid.gy set up you'll get a homepage webmention for each tweet
# 01:16 kylewm !tell snarfed getting backfeed of a whole bunch of likes on past Facebook photos and indieevents
# 01:16 Loqi Ok, I'll tell them that when I see them next
j12t and [shaners] joined the channel
chrisaldrich joined the channel
# 01:41 Loqi [Shane Becker] Demoing @DarkMatterAppCo at the first Santa Monica Homebrew Website Club.
tantek joined the channel
# 01:43 [shaners] ChrisAldrich is demoing his WordPress powered blog with all the indieweb plugins.
# 01:43 Loqi I use this website as my primary hub for online presence and communication and to some extent as my online commonplace book. I try to follow the tenets of the IndieWeb movement by owning all of my own data and publishing on my own site. When I parti...
# 01:53 [shaners] ChrisAldrich is showing using the Android share sheet and URL Forwarder to like/repost/etc from within the Twitter app
# 01:53 Loqi Sharing from the #IndieWeb on Mobile (Android) with Apps and @WithKnown
# 01:57 [shaners] Totally indie, but none of the indieweb bits (rel-me, etc)
# 02:13 GWG I'll ask again: Has anyone implemented flood control on webmention updates?
# 02:14 kylewm GWG: webmention.io has a thing where you can only send a webmention for a given source/target once every 30 seconds
# 02:15 GWG kylewm: What about incoming flood control?
# 02:15 GWG Sending a webmention endpoint the same webmention in rapid succession against a single target.
# 02:15 aaronpk kylewm: is that where that is? I was trying to remember which project of mine has that
# 02:16 GWG kylewm: I'm referring to the receiver receiving those webmentions
# 02:17 aaronpk i'm tempted to draw a flow diagram of how p3k interacts with all the related projects. i think it might look a bit insane
# 02:18 GWG What is that quote about genius resembling insanity?
# 02:19 aaronpk i think instagram just changed its syndication UI
# 02:19 aaronpk all the buttons are in a single column with toggle switches now
[emmak] joined the channel
# 02:19 [emmak] gwg: i implemented a rate limiter on my webmention endpoint
# 02:20 GWG emmak: I think I'm implementing one now.
j12t joined the channel
# 02:28 miklb How crazy would it be to use WordPress as a micropub client for a Jekyll site?
# 02:30 miklb syncs posts from a WP install to a GitHub repo.
# 02:33 miklb so I could set that up and use the micropub plugin on a subdomain that pushes to my repo that then builds the site with Travis and pushes back to my VPS.
# 02:34 GWG aaronpk: Returning a 429 is not in the webmention specification.
[shaners] joined the channel
# 02:37 [shaners] There were some bumps but AnthonyDreessen got his DM powered site deployed and POSSEed his first note to Twitter!
# 02:40 aaronpk GWG: info feel like it's useful to return a different error than 400 to indicate that the request might succeed if the sender tries again later, vs 400 which means that the same request should not be sent again
snarfed joined the channel
# 02:43 aaronpk [emmak] no, because that implies the server did something wrong (5xx)
# 02:43 aaronpk It looks like most APIs are using 429 to indicate the client has been rate limited which is why I went with that
# 02:44 [emmak] but the client may not have done anything wrong either, if its a 3rd party flooding the endpoint
# 02:44 GWG Yes, but it is telling the client it can try again later
# 02:44 aaronpk technically it's possible that a bunch of other HTTP codes might be returned since a lot of them are about the HTTP transport protocol itself rather than application logic
# 02:45 GWG A 429 should be an indication to a sender to try again later.
# 02:49 sknebel 503's can also be retried (RFC even mentions Retry-After header, same as for 429)
# 02:49 sknebel right now the webmention spec doesn't say anything what to do with errors
# 02:52 sknebel (HTTP 429 is odd in a way, because it is a client-side error where the client actually should send the exact same request again)
mlncn, tantek and snarfed1 joined the channel
# 03:08 snarfed1 hey kylewm, the new FB bridgy backfeed, was it dupes? or new stuff it hadn't found before?
# 03:09 snared or maybe old stuff sent to new urls?
# 03:09 GWG snarfed: How many versions back of WordPress do you think someone should support?
# 03:10 snared GWG: good question, no clue!
# 03:10 snared as many as is practical?
# 03:10 kylewm snarfed: new mentions, haven't seen them before
# 03:11 GWG There is a feature implemented in 4.5 that really helps with Webmentions. Prior to that, you had to construct a complex database query to accomplish same. Which meant not taking advantage of caching. So, it basically means more database calls.
# 03:12 snared kylewm: phew, thanks
# 03:16 GWG snared: So, the question is...hammer the database of old versions, or not.
# 03:16 snarfed this is existing code, right? not new code that doesn't exist yet?
# 03:16 bear I would suggest using a status code of 429 because while it's technically a client side error, it is used in the wild to represent a request that has been limited - twitter, github and others
# 03:17 GWG snarfed: Which? What I'm working on? Or what I'm adding?
# 03:17 snarfed GWG: i don't know. the code you're talking about, where you could use the new 4.5 feature
# 03:18 GWG I added the newer code with a version conditional. But I want to use it again elsewhere in the process. This isn't bad if it is cached by WordPress, but it is bad if it isn't.
# 03:18 snarfed actually bad? how many db queries are we talking here?
# 03:21 GWG The unofficial WordPress policy is support 2 versions back.
j12t joined the channel
# 03:36 sknebel GWG aaronpk: wrote some of discussion about ratelimiting up in the wiki ^^^
wolftune, tantek and j12t joined the channel
# 04:18 kylewm snarfed: any luck finding anything about reactions in activitystreams?
# 04:19 snarfed kylewm: mostly no. there was a proposal at one point, then it was moved to an extension, which never fully existed
# 04:20 snarfed i'm going to stick them into tags with verb 'react' and the emoji in content
# 04:22 kylewm sur that seems as reasonable as anything else
# 04:22 kylewm so like you hvae a top level post, and then reactions to it are stored in its tags?
# 04:22 kylewm and i guess you could also represent a react activity on its own, that woudlnt involve tags right?
# 04:28 snarfed kylewm: right, both, like likes, reposts, comments
# 04:29 snarfed although i'll avoid ever using that name in the code or docs :P
# 04:30 kylewm meanwhile, I love saying salmentions, so who I am I to judge
# 04:30 snarfed kylewm: looking for a project? i've only barely started... :P
# 04:32 snarfed heh fair enough. doubt i'll do much tonight either though :P
# 04:36 kylewm do we have a Python equivalent of ben_thatmustbeme's emoji recognizing library?
[kevinmarks] joined the channel
# 04:37 [kevinmarks] Hm. That sounds like the kind of thing that someone will have written a pep for.
# 04:43 kylewm hmm, I woudln't mind having support for those shortcodes
# 04:56 miklb !tell voxpelli when you have a few minutes wondering if I could pick your brain regarding your micropub client
# 04:56 Loqi Ok, I'll tell them that when I see them next
# 04:57 miklb in development meant for Jekyll. Pushes to gh repo
# 04:58 miklb well, several bits if pulled together can do that.
KevinMarks, snarfed, snarfed1, tantek and loic_m joined the channel
KartikPrabhu, jihaisse and cweiske joined the channel
# 07:41 aaronpk i should totally make some webmention.rocks stickers before indieweb summit :D
Gold and dogada joined the channel
j12t, Pierre-O and irisisgay joined the channel
# 08:54 miklb huh, thought I had it figured out, but when I tried to publish from quill, got a 403
irisisgay and jrenslin joined the channel
marcthiele joined the channel
shiflett and Garbee joined the channel
hs0ucy, danlyke, Pierre-O, uranther, mlncn, kbs, snarfed, frzn, snarfed1, j12t and friedcell joined the channel
shiflett joined the channel
hs0ucy joined the channel
# 14:47 aaronpk oh gosh, after I get back from Düsseldorf there's only 3 weeks until IndieWeb Summit in Portland
# 14:49 aaronpk my site is only available on https now and it works fine with it
# 14:53 miklb just trying to figure out where in this chain it failed.
# 14:54 miklb which is kinda funny since I"m not exactly sure how any of this really works anyway :-)
# 14:55 miklb yes, Token "me" didn't match any of: "https://miklb.com/", Got: "http://miklb.com/"
# 14:55 miklb method=POST path="/micropub/miklb.com" host=miklb-micropub.herokuapp.com
# 14:56 aaronpk if not, you are likely using tokens.indieauth.com
# 14:58 aaronpk well it looks like the token was issued for "http://miklb.com/" but Quill thinks you're signed in as "https://miklb.com/"
# 14:59 aaronpk try entering the other one when you sign in to quill
# 15:00 voxpelli Sounds correct, and since its about security it's probably not something I should relax the checks for :P
# 15:02 miklb ok, at least i got a different error this time :_
# 15:03 voxpelli miklb: anything I can help with? Have a few minutes right now
# 15:03 miklb voxpelli my initial question was about your second endpoint in server.js, the subdomain.
# 15:04 miklb I managed to figure out how to get heroku up and running with the "glue" bit you shared with me. Now just trying to get the last mile
friedcell joined the channel
# 15:06 miklb so now the error is with connecting to GitHub
# 15:09 miklb hmm. maybe I didn't authorize the token properly
# 15:12 miklb hmm. Still getting a "Not found" error for GitHub in the logs
# 15:13 miklb maybe because I'm trying to push to a branch? repo: 'miklb.github.com.jekyll'
# 15:15 voxpelli miklb: branch isn't currently supported, give me a second
# 15:15 miklb aaronpk btw that was the issue. I didn't explicitly specify https when I logged into Quill
# 15:17 aaronpk I think we solved that at the same time as allowing you to sign in with the root domain but then your ID has a path. I thought quill had been updated for that but I'll have to check
# 15:17 voxpelli miklb: I pushed an update that allows you to set a branch-key in the sites.js
# 15:18 voxpelli miklb: so do this now instead: repo: 'miklb.github.com', branch: 'jekyll'
nitot joined the channel
j12t, kbs`, friedcell1 and friedcell2 joined the channel
# 15:34 miklb voxpelli now to play with your editorial workflows
friedcell joined the channel
# 15:36 miklb well, after I get displaying the micropub posts working properly on my site
friedcell1 joined the channel
# 15:37 voxpelli miklb: maybe I should just publish the endpoint as is now as a first simple version of it? So it can be iterated on more openly?
# 15:40 miklb I did have to disable the tests because I couldn't figure out how to get past them to push to heroku
kbs` joined the channel
# 15:40 miklb but that's just because I'm not familiar with grunt tasks and local configurations
# 15:46 miklb voxpelli one more question. How might I go about customizing the FrontMatter?
# 15:47 voxpelli The idea of that module was to enable customization, although I didn't get very far on the customize part of things
# 15:51 miklb before I go about customizing anything, I need to make sure the defaults are all displaying properly anyway.
# 16:01 miklb is really appreciative of all the work everyone's put into these tools
# 16:29 kylewm aaronpk: have yall discussed formalizing a key/token parameter for webmention endpoints, so something like bridgy would know it was accessing an endpiont with some sort of authentication?
j12t joined the channel
# 16:31 kylewm my intuition is that rediscovering and retrying the webmention endpoint for every failed/rejected mention would be beyond the pale for bridgy
# 16:33 aaronpk the "expiring endpoint" is actually a standard CSRF technique
# 16:33 aaronpk the same one that's built into Rails and Laravel now
# 16:34 aaronpk probably the proper way to handle this is to actually make bridgy send authenticated webmentions
# 16:34 kylewm or maybe if there was an http code that specifically meant expired
# 16:35 aaronpk since I have to explicitly sign up for bridgy in order for it to send me webmentions, it seems reasonable that I could give it higher privileges at my site
dogada joined the channel
# 16:37 aaronpk so if I want to use a CSRF-protected webmention endpoint, bridgy could say that it needs a way to bypass the CSRF protection, and it could then include an HTTP header with a token that I can check for
bret joined the channel
snarfed joined the channel
# 16:40 kylewm like, I thnk we should prototype the CSRF behavior by having bridgy rediscover the endpoint every time, but it would be useful if it knew ahead of time if it needed to do that
# 16:42 snarfed i get CSRF in general, but i don't quite get how it applies to webmention endpoints specifically
# 16:43 snarfed i'd want to see a clear description of that first
# 16:48 kylewm my understanding is it's basically to slow someone down, prevent them from sending a billion webmentions without having to send any GETs themseves
# 16:48 kylewm cause it takes away their leverage if they have to send you a GET for every GET they "trick" you into sending someone else
# 16:50 aaronpk it's also less important with current webmentions, but will be more important if anyone starts including things like session cookies or tokens along with the webmention request
# 16:51 kylewm then it would *actually* be a CSRF token, right? not just an expiration
# 16:52 snarfed ok. i understand the spam/throttling use case. just wanted to make sure we're talking about that, and not actually CSRF
# 16:53 snarfed if it's spam, i'd personally be more reluctant to implement this technique specifically on the client side in bridgy
# 16:54 snarfed sorry, s/spam/dos throttling/, since that's actually the (straw man) problem. spam filtering is a bit different.
# 16:55 aaronpk in either case, the spec is actually only specifically recommending a CSRF token, and only *if* you're accepting other authentication along with the source/target parameters, so it's no rush right now
# 16:56 kylewm I meeeean, we know the DDoS case is real because it's been documented in pingback pretty thoroughly
# 16:56 aaronpk you will have already passed this step by the time you're talking about the DDoS issue
# 16:58 snarfed coming at it from a different angle, i should reread the spec to see what it says about caching...but there's definitely a need for high volume clients to be able to cache and not rediscover every time
# 16:59 kylewm which I think would be the "worst of both worlds" for bridgy :)
# 17:00 snarfed thanks kylewm! for single-use endpoints, yes, absolutely
# 17:04 snarfed a compromise might be to allow (more) caching when there's no endpoint, which is the majority case for bridgy
[emmak] joined the channel
# 17:08 [emmak] aaronpk: i switched my auth/token endpoints to https, and can no longer log into quill
# 17:09 [emmak] on my end, i can't see anything in the logs for the token endpoint
# 17:10 aaronpk that most likely means there's someting wrong with the SSL config and quill isn't able to make a connection
# 17:12 [emmak] ok, didn't realize that was something i needed to install
# 17:12 aaronpk usually you'll also get an "intermediate" certificate
# 17:12 aaronpk and depending on your web server, that gets installed in different ways
# 17:14 [emmak] i got a chain.pem and fullchain.pem from letsencrypt but didn't know what they're for
# 17:14 aaronpk use fullchain.pem and it will probably "just work"
snarfed joined the channel
# 17:20 aaronpk it's pretty funny that sometimes after i post something on my site, i see the battery icon in the header bar, and am like oh crap i should charge my phone
# 17:20 aaronpk something went wrong with the plug last night and i woke up and my phone was at 3% oops
# 17:21 aaronpk i blame the sketchy hotel lamp outlet. whenever i plug something in to it, it flickers for a few seconds.
gRegorLove joined the channel
j12t, wolftune and [emmak] joined the channel
friedcell and [kevinmarks] joined the channel
# 18:13 [kevinmarks] Also, someone made an iOS app that changes screenshots to show a full battery :battery:
[emmak] joined the channel
# 18:27 [emmak] kylewm: i am having trouble logging in to woodwind
# 18:28 [emmak] it looks like after i am redirected back to login-callback, woodwind is posting to the auth endpoint, which i don't understand
[kylewm] joined the channel
# 18:28 [kylewm] What's it doing? I haven't gotten any error emails :/
# 18:28 [emmak] the only error i get from woodwind is "Login error: authorization failed. Unknown Error: Unknown Error"
# 18:30 [emmak] previously, my auth endpoint was returning an error because no "scope" was set in the request
j12t joined the channel
# 18:31 [emmak] after talking to aaronpk yesterday, i tried to implement "request_type=id", which it defaults to unless request type is code
# 18:33 [kylewm] Hmm, I admit I don't know about that. I might be missing support for is
# 18:35 [emmak] this indieauth exchange looks different from how i understand its supposed to work in oauth 2
begriffs, j12t and marcthie_ joined the channel
# 19:13 miklb Just hooked up OwnYourGram and still marveling at what voxpelli has done with his microbub/jekyll/github tool
marcthie_, marc_thiele, tantek, marc_thi_, marc_th__, quails and KartikPrabhu joined the channel
snarfed joined the channel
# 19:54 snarfed (and that may be the last time i say the word reacji :P)
# 19:55 kylewm Do people use huffduffer as a list of things to listen to, of recommending things they liked to others?
# 19:56 KartikPrabhu you can also create your own playlists IIRC to share using URLs! URLs! wow!
# 19:56 kylewm Yeah I was polling. I think it was intended for the latter
# 19:57 snarfed only on for beta users right now, but i'll probably flip the switch for everyone soon
# 19:59 gRegorLove Very helpful for back catalogs of podcasts where the episodes aren't in the feed, but are online.
# 20:00 kylewm I want to publish podcast episode recommendations, it would be cool to have that as a feed like HD, so you could subscribe to it
# 20:00 gRegorLove Huffduffer to recommend would work well I'm sure, I just don't have a big network on there at this point.
# 20:00 snarfed looking at mine, the vast majority are actually videos that i only needed to listen to, not watch
# 20:00 gRegorLove Though I guess I could embed a feed of recommendations on my site.
# 20:02 snarfed ok everyone other than ben_thatmustbeme, you now have motivation to implement reactions :P
# 20:02 Loqi [Aaron Parecki] Guess what day is the worst day to announce you're quitting your job
# 20:03 kylewm My FB posts are friends only so I don't have to worry about them yet :p
# 20:04 snarfed gRegorLove: you render replies, right? they're just replies. i expect you'll render the emoji unless you explicitly prevent it
frzn joined the channel
# 20:18 snarfed ben_thatmustbeme: done, but it didn't find any reactions on your posts. i'll go add one myself :P
mlncn joined the channel
# 20:23 snarfed huh, you actually do have reactions on your pictures. we may not be finding those
[kevinmarks] joined the channel
# 20:29 [kevinmarks] kylewm: I use huffduffer mainly for me, but sometimes point it to others
# 20:32 aaronpk it didn't seem to actually solve my problem with webmention.io, so i switched it to store text in a BLOB column, but whatev
# 20:34 ben_thatmustbeme hmm, 20 pending webmentions, all from bridgy. all say Target Link Not Found At Source
# 20:37 snarfed ah, and we are finding reactions on photos, we're just not sending you many because we don't navigate across multiple pages of likes/comments/reactions
# 20:38 snarfed FB evidently puts likes first in reactions, and your posts are popular and have lots :P
j12t joined the channel
# 20:39 gRegorLove I knew Huffduffer extracted "elsewhere" links from rel-me, but I didn't realize it kept them up to date. Just noticed it caught my instagram after I added it.
# 20:39 Loqi [Ben Roberts] Ben Roberts was tagged in Jennifer O'Brien's photo.
j12t, frzn, KartikPrabhu, wolftune, miklb, snarfed and [kevinmarks] joined the channel
# 22:19 [kevinmarks] MySQL's problem is that they want to map unicode back to fixed bit width characters so they can do case independent indexing, so they keep inventing wider bitwidth representations and breaking things by converting them
# 22:19 [kevinmarks] If you don't want their dumbass text indexing, blobs are a good idea.
# 22:23 gRegorLove [kevinmarks]: Does that apply in general, or only to fulltext columns?
snarfed1 and frzn joined the channel
snarfed joined the channel
frzn and KartikPrabhu joined the channel
[kevinmarks] joined the channel
# 23:43 [kevinmarks] I'd need to check, but I think it is all columns MySQL thinks are text. Aaron has wrestled with it more recently
mlncn joined the channel
# 23:50 aaronpk yeah pretty sure it would happen with varchar columns too but most people don't have emoji names *ahem tantek*
# 23:50 aaronpk i was seeing the issues with text columns because tons of comments i was handling have emoji
# 23:51 gRegorLove What issue were you seeing? That it wouldn't store the character?
# 23:53 kylewm !tell emmak did you have any luck with woodwind/indieauth?
# 23:53 Loqi Ok, I'll tell her that when I see her next
# 23:58 kylewm whoa, it seems like there are a lot of people using huffduff-video
[emmak] joined the channel
# 23:59 [emmak] kylewm: yes, i figured out the problem was on my end
[kylewm] joined the channel
# 23:59 [kylewm] emmak: did you still think the spec seemed odd compared to regular OAuth 2?