#dev 2018-08-13

2018-08-13 UTC
TripFandango and [tantek] joined the channel
#
[tantek]
Is the old syntax deprecated?
#
GWG
How many different times we have to call that conditional
#
gRegorLove
You could wrap it in a function call for easier re-use
#
GWG
gRegorLove: I think it was just PHP frustration
#
gRegorLove
`function foo('key', $default)`
#
gRegorLove
Understood. It is frustrating :)
#
gRegorLove
Er, guess you'd need the array as a param too, heh
#
KartikPrabhu
mf2py does similar things for python 2.7/3 support
#
gRegorLove
I'm finally working on splitting out favorites and photos (and probably replies) from my notes stream. I think I'm going to do a channels thing similar to p3k.
#
gRegorLove
Partly so I can construct newsletters with or without certain posts more easily.
[chrisaldrich] and snarfed joined the channel
#
GWG
snarfed: Apparently, your frustration is shared with other PHP users.
#
aaronpk
If you mean the literal definition of deprecated then yes
#
aaronpk
But it will probably never be dropped from the language
renem, snarfed, arush, [eddie], Qbit1, [chrisaldrich], dansup and [manton] joined the channel
#
[manton]
Anyone ever use this command-line Micropub client? https://github.com/cweiske/shpub
#
Loqi
[cweiske] shpub: command line micropub client
#
[manton]
It doesn't seem compatible with Micro.blog's IndieAuth endpoint since shpub sends a redirect_uri of 127.0.0.1. Doesn't appear to be whitelisted in a <link> tag anywhere either.
cweiske joined the channel
#
KartikPrabhu
ha! new spam ^
#
cweiske
ascii art spam
#
Zegnat
cweiske, did you see [manton] mentioning shpub doesn’t work with Micro.blog?
#
cweiske
I don't think this is an issue with shpub
#
cweiske
but with micro.blog
#
Zegnat
“It doesn't seem compatible with Micro.blog's IndieAuth endpoint since shpub sends a redirect_uri of 127.0.0.1. Doesn't appear to be whitelisted in a <link> tag anywhere either”
#
Zegnat
Possibly
#
cweiske
"The client SHOULD publish one or more <link> tags or Link HTTP headers with a rel attribute of redirect_uri at the client_id URL."
#
cweiske
This is not possible, unless I publish a list of the whole internet (all IPs) in combination with all ports
#
Zegnat
Hmm, I thought we had discussed a possible solution for this case
#
cweiske
127.0.0.1 is not always used. when you ssh onto a server and run shpub there, the server's public IP is used.
#
Loqi
[Zegnat] If local shpub knows its own IP and port, it could theoretically already set client_id to shpub.com/?port=1111&ip=127.0.0.1 and have shpub.com serve a dynamic redirect_uri value.
#
Loqi
[Zegnat] If local shpub knows its own IP and port, it could theoretically already set client_id to shpub.com/?port=1111&ip=127.0.0.1 and have shpub.com serve a dynamic redirect_uri value.
#
Zegnat
Yeah, I was just looking through the logs myself :)
#
cweiske
one solution would be to allow all "redirect_uri" by adding a special tag on the client_id page
#
cweiske
<link rel="redirect_uri" href="*"/>
#
cweiske
but that is a) non-standard and b) needs server support
#
Zegnat
Yes. Interesting though.
#
Zegnat
Basically a way for a client to explicitly state that it doesn’t know what the redirect_uri is going to be, so it requests everything to be OK.
TripFandango, barpthewire and [kevinmarks] joined the channel
#
Zegnat
I have filed the idea for a wildcard redirect_uri, cweiske :) https://github.com/indieweb/indieauth/issues/22
#
Loqi
[Zegnat] #22 Allow clients to set wildcard redirect_uri values.
#
cweiske
Zegnat++
#
Loqi
Zegnat has 52 karma in this channel over the last year (142 in all channels)
#
Zegnat
I do wonder if that would make it easier for attackers to intercept the redirect, and thus intercept the auth code ... maybe that would be a reason to support https://www.oauth.com/oauth2-servers/pkce/ on IndieAuth ... needs more thinking
barpthewire1, jeremych_, [jgmac1106], [mrkrndvs] and pointfree13 joined the channel
#
petermolnar
I'm clicking through some of the indie webring pages, and while I'm surprised on the amount of good photos I'm finding, I'm also surprised a bit on the two polar endpoints of performance I'm finding: either very snappy, very small sites, though some of them could do with some kind of indication for link vs text ( http://sawv.org/ ) or fascinatingly underoptimised ones, eg: https://oyam.ca/blog/archive.html - a single page for 10 y
#
petermolnar
ears of posts, resulting in 53MB in images.
#
Loqi
[jr] JR's Notes
Exaeta15, nstr25, eli_oat and m16 joined the channel
#
skippy
good day.
#
ben_thatmustbeme
in case people missed it amongst the spam in #microformats
#
skippy
welp, my micropub endpoint is broken in fun new ways. it works for the bulk of what i do, but fun new bugs crop up when i try something new!
eli_oat, shreyansh_k11, snarfed, [jgmac1106], jackjamieson and [grantcodes] joined the channel
#
[grantcodes]
!tell cleverdevil Yeah it's a bit iffy for me too. Don't know if anyone knows any other image proxy services that support resizing on the fly like that
#
Loqi
Ok, I'll tell them that when I see them next
#
sknebel
details what you are looking for?
erry12, [kevinmarks], agree, diz27, Stryyker25, [eddie], jackjamieson, jercos14, snarfed, [jgmac1106] and KartikPrabhu joined the channel
#
NinjaTrappeur
Hey aaronpk,
#
aaronpk
good morning
#
Loqi
rise and shine!
#
NinjaTrappeur
I'm the guy who implements webmentions for lobsters, I am wondering if you plan to change your ruby webmention client architecture anytime soon
#
NinjaTrappeur
more specially if I can safely use the discover_webmention_endpoint_from_html (and http equivalent) safely
Pilfers joined the channel
#
NinjaTrappeur
good morning :) (it is actually 6pm in my timezone ><)
#
Pilfers
­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­
#
aaronpk
ah yeah, jgarber was working on some updates to that recently, he's taking over maintaining it
#
aaronpk
he was working on splitting out the discovery code into its own gem, and making that backwards compatible with this one
#
aaronpk
tho it looks like that one doesn't do discovery from an HTML string, it expects to be able to fetch the URL itself?
#
NinjaTrappeur
Yup, that's my problem, this does not really fit my workflow... I'm gonna read further to see if I can trivially expose a way to "plug" my HTML. I guess it'll still gonna need to get the HTTP headers from one way or another.
#
NinjaTrappeur
Webmentions discovery is not as trivial to implement as I first thought :)
#
aaronpk
well to answer your first question, i don't think we're planning on changing that gem's API, anything we do will be internal refactors
#
NinjaTrappeur
Alright, thanks
[chrisaldrich] joined the channel
#
Zegnat
Ooh, I hadn’t seen that webmention gem. Now I feel like making a PHP package like that one that just does endpoint discovery
[pfefferle] joined the channel
#
@DesignHammer
An informative article on the evolution of internet communication (@mentions). In his latest blog post for A List Apart, Chris Aldrich provides an overview of Webmentions as well as starting point for adding the new protocol to projects. #webmentions http://ow.ly/v4lQ50idd5V
(twitter.com/_/status/1029040967251382272)
jackjamieson and savoir-faire18 joined the channel
#
savoir-faire18
­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­
gRegorLove and [Petrk] joined the channel
#
[Petrk]
Hello, Im new here and have recently read about IndieAuth.
#
[Petrk]
I could test the function on IndieLogin.com and it works well, but now I want to implement it as provider and how to make it work with applications where login information are requested. But I dont know how to work with POST requests and how to verify it. With cURL I could test in my terminal, but I dont know how to make that work in productive way. I hope you can help
#
Loqi
Using IndieAuth.com to sign users in to your website
#
aaronpk
hi [Peterk]
#
[Petrk]
Hello [aaronpk]
#
aaronpk
there are some implementation guides for being a provider linked from here https://indieweb.org/Category:IndieAuth
#
[Petrk]
yes I have tested it
#
[Petrk]
Maybe I should explain what Im looking for
jrabe22 joined the channel
#
jrabe22
­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­
[miklb] joined the channel
#
[Petrk]
I want to build up a regional digitalization network for companies and people who provide own web services like blogs, information sites etc. For that I want to set up a Identity service for free, no costs, no commercialization. I have made first trials with simpleID for openID, but the protocol seems to be nearly dead(?), OAuth2 were better, but its harder to setup, more complex and I dont have a server to provide it independent from another co
#
[Petrk]
found IndieAuth and it seems to be really easy to use, but I dont know how to use it after I get the code from callback and how to implement this in application like nextcloud, humhumb, rocket.chat, friendica, etc... I joined the slack channel here, because I hope I can talk and get help from people who have more experience in it.
#
aaronpk
hm, if you're trying to get people to be able to log in to things like nextcloud, that's going to require quite a bit of work to modify that software to work with it
snarfed joined the channel
#
[Petrk]
what were possible?
barpthewire joined the channel
#
[Petrk]
I mean IndieAuth work, but the problem is the integration in services, if no "client" in popular software is using IndieAuth, how it can be used?
[iambismark] joined the channel
#
Zegnat
[Petrk], the services that are interested in allowing people to login with IndieAuth will have to add that capability to their software. You’d want to ask Nextcloud to support it, or built a plugin for Nextcloud, if that is what you are after.
#
[Petrk]
Ok, due my lack in experience in programming such things, I think only openid stay here as solution, right?
eli_oat joined the channel
#
Zegnat
That depends. Did you check that Nextcloud / Humhumb / RocketChat / Friendica / etc all support OpenID? If they do not, that will give you the same issue
#
aaronpk
the other problem with openid is there are basically no providers left
#
[Petrk]
@Zegnat, Nextcloud provide a plugin, humhub has developer instructions, rocketchat provide that as in work in github issues, friendica provide openid natively
#
[Petrk]
[aaronpk] thats why I would choose simpleID as provider
snarfed joined the channel
#
Zegnat
Sounds like you have done your research then [Petrk] :)
#
[Petrk]
I just hoped to use IndieAuth, due its look better and more userfriendly
#
[Petrk]
but even so, I still dont know how to use it after the login code was successful
#
aaronpk
well you have to check that the code is valid by sending a POST request with the code back to indieauth.com, like described on that page
#
aaronpk
how you do that is very dependent on what language you're using to write this code in
#
[Petrk]
ok, lets say php, this should work everywhere
#
aaronpk
sure, so you can search for how to make a post request in PHP and find examples
#
[Petrk]
but I could not find any documentation how to check this and how to forward than to the site
#
Zegnat
[Petrk], you can have a look at https://github.com/indieweb/indieauth-client-php which implements every step of the login in PHP
#
Loqi
[indieweb] indieauth-client-php: Sample implementation and helper methods for an IndieAuth client.
#
loqi.me
created /Sched (+155) "prompted by [chrisaldrich] and dfn added by [chrisaldrich]"
(view diff)
#
kaja.sknebel.net
edited /Sched (+1) "linkify ('x is y. <url>.' pattern)"
(view diff)
#
[Petrk]
@Zegnat, thanks, this looks really interesting
snarfed joined the channel
#
boffosocko.com
uploaded /File:sched_RSVP_facepile.PNG "UI example of how events on Sched use facepiles to indicate attendees. Each avatar is linked to the attendees' profile on the service. https://indieweb.org/File:sched_RSVP_facepile.PNG"
leg joined the channel
#
boffosocko.com
edited /Sched (+683) "prompted by [chrisaldrich] added detail, see also, pagelogo, UI example of RSVP"
(view diff)
[philbowell] and dp37 joined the channel
#
boffosocko.com
uploaded /File:Meetup_event_rsvp_page.PNG "UI Example of the RSVP section of atttendees to an indivisual event. https://indieweb.org/File:Meetup_event_rsvp_page.PNG"
#
boffosocko.com
uploaded /File:meetup_RSVP_example.PNG "Example of Attendees standalone page for Meetup.com. Uses separate tabs for attending or not. https://indieweb.org/File:meetup_RSVP_example.PNG"
#
boffosocko.com
edited /rsvps (+787) "Sched silo example; Meetup.com example"
(view diff)
Chords, snarfed, sl3dge__ and [eddie] joined the channel
#
[eddie]
aaronpk: I’m thinking through steps regarding detecting and sending responses to ActivityPub posts. Let me know how this measures up to yours. Seems like what I’m thinking is: 1) Fetch the targetUrl as JSON, if that fails it’s not ActivityPub. 2) If you receive a response, check for @context to contain “https://www.w3.org/ns/activitystreams” in the response data to verify it’s ActivityPub. 3) Check the attributedTo variable to retrie
#
[eddie]
authorUrl as JSON in order to get the inbox
[jgmac1106] joined the channel
#
aaronpk
something got cut off
#
aaronpk
what's 3?
#
[eddie]
oops darn bridge. lol
#
[eddie]
3) Check the attributedTo variable to retrieve the author’s url 4) Fetch authorUrl as JSON in order to get the inbox
#
[eddie]
Then the final, obvious 5) send response to inbox
#
aaronpk
that sounds about right. some notes
#
aaronpk
@context can be either a string or array, so keep that in mind
#
aaronpk
some servers will only give you back the JSON result if you send "Accept: application/activity+json" or "application/ld+json"
#
[eddie]
Ahh gotcha. Those are two good potential gotchas
#
aaronpk
sending replies is a bit tricky because you need to also include a "Mention" in the tags array, and also you need to include the person's "preferredUsername" in the post text for mastodon to show it as a notification
#
[eddie]
Do you know if activity or ld is “preferred”
#
aaronpk
i've only been sending "activity", someone else told me that some servers also respond to "ld"
#
aaronpk
also apparently "attributedTo" *can* be an object, although I don't think I've encountered that yet
#
[eddie]
I’m thinking I’ll try to document some of this as I go. Should I do that on /ActivityPub? or some other page?
#
aaronpk
on /ActivityPub sounds good
#
aaronpk
do you already have the http signature stuff figured out?
#
[eddie]
I am in process of that. I have my pem files, and I installed a node.js signing library
#
aaronpk
cool. that was also a bit of a trick to figure out exactly what mastodon wanted.
#
aaronpk
turns out the http signature spec leaves a few things up to the implementation
#
snarfed
yeah the sigs took the most debugging for me with bridgy fed
#
aaronpk
and you don't get a good error back from mastodon, just a generic failure
#
[eddie]
ohhhh interesting
#
snarfed
exactly, that
#
aaronpk
you can try sending to mine though, since i made it return more details in the error messages
#
[eddie]
aaronpk++
#
Loqi
aaronpk has 103 karma in this channel over the last year (315 in all channels)
#
snarfed
and because AP underspecifies auth/sigs itself, so you usually have to dive into individual servers' code to figure out what they expect
#
aaronpk
oh and then when you're sending a reply, unless you also serve that at a URL that sends back JSON (or support conneg), it will "look weird" to people on other servers since they won't be able to interact with it
#
sknebel
aaronpk: did you mention that to the mastodon devs? If they're looking to make interoperability easier, "error messages" is comparatively low hanging fruit...
#
[eddie]
I figured I would do conneg as it seems pretty easy in node.js
#
[eddie]
:crossed_fingers:
#
sknebel
If you have caching , remember to respect it there
#
aaronpk
oh yeah that one bit me haha
#
aaronpk
nginx was caching on URL, so it would randomly cache json or http and return it inappropriately sometimes
[Vanessa] joined the channel
#
[eddie]
Ohh so that leads to something else. I should probably only attempt to send ActivityPub if a webmention endpoint isn’t found
#
[eddie]
Because technically your posts aaronpk are both activitypub + webmention compatible
kapowaz_ joined the channel
#
aaronpk
heh that's actually tricky
#
aaronpk
because my URLs also support conneg
#
[eddie]
exactly
#
aaronpk
so if you ask for activity+json you won't get back a webmention endpoint
#
[eddie]
so I should check http for webmention
#
[eddie]
if that fails
#
aaronpk
so you probably want to prioritize text/html in your accept header
#
[eddie]
Mastodon does conneg, though. So I need to actually do 2 queries rather than prioritize, right? Because Mastadon would return text/html rather than ActivityPub if I prioritize text/html?
KartikPrabhu joined the channel
#
aaronpk
😭 lol
#
[eddie]
If there is no webmention, then go down the activitypub workflow outlined above
#
[eddie]
So I really would need to do a text/html query, if that returns with a webmention endpoint do webmention
#
aaronpk
now i need to double check how i do this
#
skippy
sweet baby Cthulhu! I'm compiling assets for Mastodon. What a monster. gobbling up all my droplet's RAM.
#
aaronpk
ooh, i do both in parallel haha
#
sknebel
Mastodon is probably a bit overkill for a single user
#
[eddie]
Which wouldn’t be HORRIBLE, it’s just the same as sending a webmention AND a tweet
#
[eddie]
but probably not best practices lol
#
sknebel
aaronpk: why no we mention header on the json representation?
#
skippy
sknebel: you may be right.
#
aaronpk
sknebel: oh good point i might actually already be sending a Link header
#
aaronpk
mastodon is definitely not meant for one person, you'll end up with an empty "home timeline" and a bunch of the features won't make sense. but i know some people who are doing that anyway.
#
skippy
in single-user mode the default home page is the "about", though? so Mastodon clearly supports the notion of single user.
#
sknebel
Pleroma might be a bit more lightweight
#
skippy
the docker install process even asks "Do you want to enable single user mode?"
#
skippy
what is Pleroma?
#
Loqi
It looks like we don't have a page for "Pleroma" yet. Would you like to create it? (Or just say "Pleroma is ____", a sentence describing the term)
#
skippy
oooer, written in Elixir
[pfefferle], jackjamieson, snarfed and [iambismark] joined the channel
#
skippy
aaronpk: what features of Mastodon won't make sense on a single-user install? how is single user joining the federation different?
#
aaronpk
mastodon is more than just "joining the federation" and more than just a place to write stuff
#
aaronpk
it's also a reader, with features that are optimized for small communities
#
aaronpk
those features don't make sense in a single user install, things like the instance timeline
#
aaronpk
i mean it won't hurt anything, it'll just seem a little weird
#
skippy
i see. thanks for the input.
#
skippy
ponders if single-user mastodon would actually give him anything, other than one more thing to maintain...
KartikPrabhu joined the channel
#
aaronpk
if you already have a reader set up you can at least add ppls mastodon feeds to your dreader
#
aaronpk
reader not dreader lol
#
skippy
sure; but that doesnt help me interact easily with those people.
#
aaronpk
i was thinking about somehow making aperture work for this
#
aaronpk
well where i was going with that was you can use bridgy publish to send replies to people
#
aaronpk
you just need somewhere to see their posts show up in the first place
#
sknebel
What is bridgy fed?
#
Loqi
Bridgy Fed connects IndieWeb sites with federated social networks like Mastodon and Hubzilla https://indieweb.org/Bridgy_Fed
#
aaronpk
er that
#
aaronpk
thanks
[manton] joined the channel
#
[manton]
[cweiske] @Zegnat Sorry, catching up... Micro.blog doesn't actually check <link> for redirect URLs yet, so that's an improvement I need to make. But regardless, it seems like shpub will break for any IndieAuth provider that enforces the redirect check for security.
#
Zegnat
[manton], yes, if you are strictly enforcing the redirect_uri check, shpub will not work for you.
#
[manton]
It seems like shpub could be modified to always use localhost for the redirect, which is more easily whitelisted, but maybe I'm missing something. I've only used it very briefly.
#
[manton]
Micro.blog could also warn about this instead of making it an error, but generally I think the redirect check is a good thing.
#
Zegnat
You are missing running it on a non-local machine, e.g. on a remote machine you are connected to via ssh.
#
aaronpk
Zegnat: i don't understand why 0.0.0.0 doesn't work at that point?
#
Zegnat
I think this is a case where shpub is running on a remote machine. You then need to authenticate and use your local browser to authenticate. The redirect uri however needs to loop back to the remote machine.
#
aaronpk
shpub can listen on 0.0.0.0 (all interfaces)
#
aaronpk
oh nevermind, 0.0.0.0 -> localhost in a browser
#
aaronpk
so, another thought, if shpub knows it's on a remote machine, then couldn't it serve up its own client_id page?
#
Zegnat
It needs to give the auth endpoint a redirect_uri that points to the IP that shpub is running at.
TripFandango joined the channel
#
Zegnat
client_id has to be a domain, can’t be an IP
#
aaronpk
ahh we did say that didn't we
KartikPrabhu joined the channel
#
Zegnat
At that point you’ll need some magic DNS resolving so you can have a domain name that points at whatever IP address is needed right then.
#
aaronpk
1.2.3.4.ip.example lol
#
aaronpk
aaanyway
#
skippy
ipv6 for the win?
#
sknebel
There's a bunch of domains like that
#
sknebel
E.g. xip.io
#
aaronpk
the big picture is that until we get all the edge cases of this worked out, it's probably best for the authorization server to show a warning (and maybe even make the user click something to confirm) if the redirect uri isn't registered or doesn't match
#
aaronpk
but not actually prevent it yet
#
Zegnat
Can we add a note to that effect in the spec? Because right now people are recommended to outright block non-verified redirect_uris
#
sknebel
Hm, that's a tricky one... How much do you trust users to do the right thing effectively
#
sknebel
Although you can always work around it using a specially crafted site, so I guess little point in making the direct way forbidden?
#
Zegnat
sknebel, any idea if using xip.io (or something like it) would leak information? Logging policies? That’s the one thing I thought of as a point agains a dynamic client_id page (example.org/shpub?ip=1.2.3.4&port=1234): it means every time you authenticate with shpub you tell someone else about the IP you are on.
#
sknebel
Yeah. And since it is possible, the wildcard registration doesn't make it less secure in the normal case
#
Zegnat
The wildcard registration may even be more private (regardless of secure) as you don’t have to inform the third party client_id hoster of where you are going.
#
Zegnat
This should be noted in the issue, probably
#
@AngeloStavrow
✍️ And We’re Back: https://angelostavrow.com/post/and-were-back/ It’s probably not 100% there, but the custom theme for my personal site is finally live. I’d like to add webmentions at some point, but it’s otherwise 100% IndieWeb compatible.
(twitter.com/_/status/1029114520457945088)
[jgmac1106] joined the channel
#
Loqi
[Zegnat] @sknebel points out [in chat](https://chat.indieweb.org/dev/2018-08-13/1534192339261900) that clients are already able to work with variable redirect URLs by passing the `redirect_uri` value along to a specially crafted page at `client_id`. Example: ...
snarfed, snarfed1 and jgmac1106 joined the channel
#
@jgmac1106
↩️ Been doing #IndieWeb in  my classes since 2015. first year having students build out from #DoOO rather than @withknown or http://wordpress.com May like this a course template with proper(ish??) microformats soon to have webmention powered badges (http://jgregorymcverry.com/5955-2/)
(twitter.com/_/status/1029135012107612160)
snarfed, tantek__ and Corvus`9 joined the channel
#
snarfed.org
edited /discuss (-112) "deleting the #bridgy channel"
(view diff)
[chrisaldrich], HarryCross226, Smeef13 and KartikPrabhu joined the channel