#dev 2018-02-15

2018-02-15 UTC
#
[kevinmarks]
in the eu they're legally required to
#
[eddie]
Regarding read/unread. I really approach different channels differently. So my *hope* is to be able to deal with both in Indigenous. But we’ll see how that goes :crossed_fingers:
#
[eddie]
But if not, the good news I could just use different Microsub apps for different channels
#
[eddie]
Since the API supports it all
snarfed joined the channel
#
GWG
[kevinmarks]: They are in California, alas.
gobengo, snarfed and snarfed1 joined the channel
#
GWG
I just told a company support rep that their privacy policy said they comply with EU Privacy Frameworks, and that would suggest they should have an export function to comply with GPDR. I wonder if I shouldn't have done that
tantek, chimo, eli_oat, renem, [miklb] and leg joined the channel
#
grantcodes
Added a multi column mode to Together if anyone likes classic feed readers
eli_oat and [eddie] joined the channel
#
[eddie]
grantcodes: Looks awesome!
snarfed, [jeremycherfas], barpthewire, jjuran and AngeloGladding joined the channel
tantek, [xavierroy], [jeremycherfas] and treora joined the channel
#
Zegnat
Hmm, does https://indieweb.org/Microsub-spec#Set_Channel_Order mean a client can only give a) 2 items where the first gets placed before the second, or b) an array of all items?
[kevinmarks] joined the channel
#
@xbs
A cryptocurrency miner hidden in a favicon.ico - welcome to 2018 via @chrskly https://pbs.twimg.com/media/DWAXuZGX0AAj3uE.jpg
(twitter.com/_/status/963796410100604929)
#
petermolnar
read the thread
#
Zegnat
So quickly scrolling the thread, it doesn’t seem like the favicon actually executes said code. So I am not sure what the big deal is.
#
petermolnar
indeed, that's my take away as well
leg and eli_oat joined the channel
#
vanderven.se martijn
edited /RelMeAuth (-12) "Martijn removed lots of [[rel-me]] from his profile for security reasons."
(view diff)
#
Zegnat
Bit the bullet, removed /rel-me on lots of links :(
tantek joined the channel
#
aaronpk
oh yeah did that ever get captured on the relmeauth page?
#
www.svenknebel.de
edited /RelMeAuth (+107) "/* Consolidated identities do not carry inherent trust */"
(view diff)
#
sknebel
yes, see there
#
aaronpk
wonders what tantek's thoughts are on that
#
aaronparecki.com
edited /RelMeAuth (+137) "/* Consolidated identities do not carry inherent trust */"
(view diff)
#
www.svenknebel.de
edited /RelMeAuth (+96) "/* Consolidated identities do not carry inherent trust */"
(view diff)
#
aaronparecki.com
edited /RelMeAuth (-1) "presumably you meant authorization_endpoint :)"
(view diff)
#
sknebel
of course i did
#
aaronparecki.com
edited /Microsub-spec (+118) "/* Set Channel Order */ try to be more explicit about the ordering command and use cases"
(view diff)
#
sknebel
somehow I still do not get the mental model behind the channel order stuff
#
aaronpk
huh, I dont know why it makes perfect sense to me
#
aaronpk
it wasn't even that hard to implement
#
aaronpk
okay, can you think of any other APIs that have a command to set the order of something?
#
aaronpk
maybe other photo APIs?
#
aaronpk
picasa doesn't seem to have the concept of ordering within an album at all https://developers.google.com/picasa-web/docs/3.0/developers_guide_protocol#PostPhotos
#
Zegnat
Yeah, I am still not sure what to do with more than 2 items.
#
Zegnat
What would the new order be if I have the order [a b c d e f g h] and a client sends [d a c g]?
#
aaronpk
[d b a c e f g h]
#
aaronpk
the key is "only the order of the items given are changed"
#
sknebel
[a b c d e f g h], [h, b] ?
#
aaronpk
[a h c d e f g b]
#
Zegnat
aaronpk, but it doesn’t look like either c nor g changed?
#
aaronpk
giving two items is a swap
#
aaronpk
c moved, and g didn't move because it was already the last one in the list out of the items you provided
#
sknebel
so to turn [a b c d e f] into [a f b c d e] I have to give [ f b d c e]?
#
sknebel
or [a f b]?
#
Zegnat
I guess I just cannot mentally get the algo right. I’ll wait for someone to document the actual sorting algorithm.
#
sknebel
that seems more than necessary for "drop this element between these two"/"in front of this one", as I'd express it
#
sknebel
I guess it's not all that hard to formulate the code to generate that (take element + entire span to it's original position if moving up, or span + element if moving down)
#
Zegnat
My mind doesn’t want to visualise a single case where the b is still between the d and a in my example. All I can say is that with current documentation I would not be able to write any sorting code.
#
sknebel
I wouldn't bet on being able to do so either. I have an inkling now, but only after asking here, and no understanding of why I'd want that behavior
#
www.svenknebel.de
edited /Microsub-spec (-1) "/* Set Channel Order */ method=order, not =delete"
(view diff)
#
Zegnat
Ha, I just realised that per RFC 8288 (Web Linking) I can’t use authorization_endpoint in an HTTP Link header
#
Zegnat
Relation type has to be a URI or match `LOALPHA *( LOALPHA | DIGIT | "." | "-" )`. No underscores allowed, apparently.
#
Zegnat
It is interesting because the IndieAuth spec cites the RFC as a MUST for discovery, but the RFC doesn’t even allow the header to be used.
#
aaronpk
uhoh that's not good haha
#
Loqi
hehe
#
tantek
is still waking up
#
Zegnat
aaronpk, I am not sure how best to handle it. Because you either need to change the relation name, or deprecate all Link header discovery :/
#
Loqi
[Zegnat] Hmm. I’m thinking about retiring some rel-me links. Because RelMeAuth is a thing, I would really only want to allow that from silos that support 2FA. Anyone else thought about that?
#
tantek
and understandable
#
aaronpk
Zegnat: or extend RFC 8288 since in practice underscores in link headers haven't caused any problems so clearly everything has implemented it that way anyway
#
tantek
aaronpk: yes that
#
Zegnat
That’s fine too. I just checked the rel registry and it seemed like IndieAuth is the only active thing that uses underscores.
#
Zegnat
So I wasn’t sure how much underscores are actually being used for rels.
#
tantek
really?
#
tantek
Zegnat lol no theres a long history from openid :)
#
Zegnat
Oh, true, for some reason I read over that
#
tantek
and micropub
#
Zegnat
Micropub doesn’t use _ does it?
#
Loqi
existing rel values
#
sknebel
for token_endpoint
#
Zegnat
token_endpoint isn’t mentioned in the Micropub spec IIRC
#
Zegnat
Because Micropub doesn’t define how its auth works.
#
sknebel
does openID support link headers at all?
#
sknebel
in HTML, underscores are fine
#
Zegnat
According the the registry there is the openid one, some dm_tab_* stuff (description link for that seems to be a zombie site), and an image_src that I have never actually seen in the wild.
#
Zegnat
For some reason I missed the openid one when I checked it, and the other two being on the list of proposed relations didn’t really make me feel like underscores were actually a thing in relations
#
aaronpk
I suppose a hyphen would have been a better choice, to match most of the other html link rels, but I used underscore because that's what they had in openid connect
#
aaronpk
"authorization_endpoint" and "token_endpoint" are listed there in that response
#
Zegnat
Maybe they never thought to check the RFC? Old openid used periods (openid.delegate / openid.server)
#
aaronpk
I think openid connect doesn't use http headers
#
aaronpk
their discovery is based on webfinger
#
tantek.com
edited /RelMeAuth (+582) "/* Consolidated identities do not carry inherent trust */ how about authn, as an addition to "me""
(view diff)
#
tantek
Zegnat they use periods for pseudo-namespace prefixing
#
tantek
not multiword terms
#
Loqi
[Aaron Parecki] channel-order-example.txt
#
Zegnat
Ah, yes! I could instantly implement that!
#
aaronpk
interesting
#
aaronpk
sknebel?
#
Zegnat
I was constantly thinking in terms of moving items within the given start list. So I was constantly trying to match things up through consecutive swapping or “moving in front of”
#
aaronpk
oh interesting
#
aaronpk
yes this is a very different way of thinking about it
#
Zegnat
Yeah, so no matter how I tried, I could never get the input and outputs to match up with yours.
#
Zegnat
But now I see that’s not what you are doing. You are actually targetting the index values more than the actual list.
#
aaronpk
So the one user gesture not cleanly represented by this API is dragging an item to a new position in the list. Wth this method, the client needs to keep track of a lot of state to do that.
#
Zegnat
Do they? Isn’t that just “move X before Y” once the user drops it?
#
aaronpk
That isn't a command in this api
#
Zegnat
Ah, true, because [b c] is a swap
#
sknebel
aaronpk: yes, that's what I gathered at the end. if you put that in the spec I'd be satisfied that the spec is understandable.
#
Zegnat
https://github.com/indieweb/indieauth/issues/17 - filed the relation type issue there for future reference
#
Loqi
[Zegnat] #17 Link relations in HTTP Link header conflict with RFC 5988.
#
aaronpk
Cool I will add that detail to the spec then
#
aaronpk
My thinking was that it's not that hard for a client to just send the full list in the new order if someone dragged an item to a new location
#
aaronpk
so maybe we should wait and see if that ends up being too hard
#
Zegnat
Now that it “clicked” for me, I do like this sorting.
#
aaronpk
oh yeah and by "full list" I dont mean literally the full list, since it also works just as well with the "full visible list" in the case that someone has a lot of channels but the client only shows N at a time
#
aaronparecki.com
edited /Microsub-spec (+782) "/* Set Channel Order */ add example of processing the order command on the server https://chat.indieweb.org/dev/2018-02-15#t1518709130562300"
(view diff)
[gerwitz], [tantek], gRegorLove, snarfed and [cleverdevil] joined the channel
#
[cleverdevil]
New build of Indigenous is great! Good job, [eddie]++ 🙂
snarfed, snarfed1 and tantek joined the channel
#
[cleverdevil]
Also, [grantcodes] continues to make great progress on Together. Now it includes read/unread status, a "classic" view, a more responsive design, and other improvements: https://cleverdevil.io/s/rbTFxamOAH.mp4
[eddie] joined the channel
#
[eddie]
grantcodes++
#
[eddie]
The “classic” view is pretty nifty for some of the channels I have. Really nice, grantcodes!
#
Loqi
grantcodes has 7 karma in this channel (10 overall)
#
[eddie]
Glad to hear, the new build is working for you, [cleverdevil]!
KartikPrabhu joined the channel
#
gRegorLove
Loqi, messages?
#
[cleverdevil]
Is the microsub client in this build?
#
[eddie]
If you don’t see it and were already logged in when you downloaded it, you might need to log out and back in
#
[cleverdevil]
So, I did that, and the microsub stuff doesn't seem to work for me.
#
[eddie]
hmmm do you see the channels?
#
[cleverdevil]
Just my website name at the top and then empty white below.
#
[eddie]
Hmm that’s definitely not right
#
[cleverdevil]
PM'd my debug info.
#
aaronpk
it irritates me that the name "indigenous" doesn't fit under the app icon in ios
#
aaronpk
it truncates to "Indigen..."
#
aaronpk
but somehow "Micro.blog" fits even though its the same number of letters
#
[eddie]
ohhhh I have it in my Dock which doesn’t display the name
#
aaronpk
good solution lol
#
[eddie]
The funny thing is I don’t think I noticed the cut off because it’s been in my dock since day one
#
aaronpk
when does the app mark things as read?
#
[eddie]
currently it doesn’t. next build will do that
#
[eddie]
Yep, just displays bold if there are unread items, but they are always unread
#
[eddie]
(unless you go into together and cheat, like I did. lol)
#
[eddie]
I didn’t want the bug fixes in this build to be held up by the mark as read functionality, but that is definitely what I’m working on now
#
[cleverdevil]
It fits in my home screen, [aaron_pk]
#
[cleverdevil]
I wonder if it depends on the device / resolution?
#
aaronpk
oh probably
#
aaronpk
this is a 6s
#
[eddie]
Ohhhh! That’s probably why it didn’t stick out then. I have the X
#
[eddie]
hmmm cleverdevil, aaronpk: For some reason cleverdevil’s microsub is returning “invalid user”
#
[eddie]
I checked the token endpoint and it returns create and read scopes
#
aaronpk
the response from aperture says invalid user?
#
[eddie]
oh wait
#
[eddie]
cleverdevil’s scopes are returned create+read
#
[eddie]
from the token endpoint. does that match spec?
#
[eddie]
mine returns “create read”
#
aaronpk
+ is a urlencoded space, so in a JSON response it should be a space
#
[cleverdevil]
Is this a Known thing?
#
aaronpk
sounds like it
#
[cleverdevil]
Let me re-login to Aperture
#
[cleverdevil]
I made some fixes to Known earlier in the week.
#
[cleverdevil]
Wait, that wouldn't matter would it.
#
[eddie]
Nope, I don’t think so
#
[cleverdevil]
Its strictly on the Known side.
#
[cleverdevil]
Let me look in the database at what I have stored
#
[eddie]
The strange thing is that Together works
#
[cleverdevil]
Hmm... it shows "Authorized 2018-02-15 with the scope create read" in the UI, now let me look in the database.
#
Zegnat
Hmm. I have started to get some knowledge of Known, and already have pretty good knowledge of the IndieAuth spec.
#
Zegnat
How much need is there for the IndieAuth part of Known to be refactored?
#
aaronpk
oh no grantcodes it's still crashing on my instagram feed
#
[eddie]
Together crashes for my instagram feed as well
#
[cleverdevil]
Zegnat, your help would be greatly appreciated!
#
[cleverdevil]
I am trying to put together a little crowdfunding to help make Known an exemplar of IndieWeb.
#
grantcodes
Hmm, what does it say in the console?
#
[cleverdevil]
I sort of fumble along and probably bother everyone in here too much with all of my questions 😂
#
aaronpk
"Error: Minified React error #130"
#
[cleverdevil]
[eddie] what route is being hit on my Known site that returns the scopes improperly?
#
[cleverdevil]
(everything in the database is correct)
#
Zegnat
I installed Known not too long ago to test some stuff out and try to help jeremycherfas. I kinda decided Known wasn’t for me, and because of /selfdogfood didn’t want to undertake big support things. But when I see issues like this come up I am swayed a little into thinking I should just offer some support.
#
[eddie]
Well, I don’t know if it’s technically improper. It’s returning URL-encoded value with create+read, which aaronpk said is the url-encoded form of “create read” because + equals ” ” in url-encoded
#
[eddie]
I’m looking in Aperture to see what part of the code is returning this error
#
[cleverdevil]
Something like Known is so important to really drive IndieWeb adoption, IMO.
#
aaronpk
it would definitely be nice to clean up the indieauth support in known
#
[cleverdevil]
I have been considering building my own bespoke site for a while, but I keep sticking with Known because I really want it to succeed as a community project.
#
[eddie]
It seems that Aperture is failing in this check: (\IndieAuth\Client::normalizeMeURL($token_data[‘me’]) != \IndieAuth\Client::normalizeMeURL($user->url))
#
aaronpk
interesting
#
Zegnat
If it is the token endpoint that is returing form encoded values for the scope, that would be outdated, as in the new spec the token endpoint is always JSON
#
[eddie]
cleverdevil: When you log in to Together do you login with http or https
#
aaronpk
this seems to be something to do with Known's profile URLs that look like https://cleverdevil.io/profile/cleverdevil
#
Loqi
Jonathan LaCour
#
[eddie]
ohhhh that makes sense.
#
aaronpk
the token endpoint is returning https://cleverdevil.io/
#
[eddie]
I wonder if I’m handling the me values wrong in some way in Indigenous?
#
aaronpk
i'm gonna have to step through this. let me see if I have a Known install running
#
[cleverdevil]
FWIW, I would prefer to use the shorter version everywhere. I suppose it’s part of Known’s multi user capability.
#
aaronpk
does known have the concept of a single-user site?
#
[eddie]
aaronpk: The odd thing is somehow Aperture is accepting Together’s token
#
[cleverdevil]
I don’t think so. But not positive.
#
aaronpk
like can you tell it there is only one user so the identity should be the root domain?
#
[cleverdevil]
Doubt it. But that’s a good idea.
#
Zegnat
I think whatever the client sends as the me parameter in the initial token request to the token endpoint gets stored inside the token.
#
aaronpk
I know there's something about the theme that kinda hints at that
#
Zegnat
the me isn’t used to verify the code or looked up again, if I look really quickly.
#
aaronpk
there are good reasons to support both models so I wouldn't want to hard-code Known's indieauth support to either version
#
Zegnat
aaronpk, according to the plugin description, the entire IndieAuth (or “IndiePub”) plugin only supports single user sites.
#
aaronpk
oh? that's interesting
#
aaronpk
if that's the case, then it should never be returning a URL like profile/cleverdevil
#
[eddie]
cleverdevil: when you log into Together you use ’https://cleverdevil.io' and when you log into Indigenous you use either ‘cleverdevil.io’ or ‘https://cleverdevil.io’ correct?
#
[cleverdevil]
I think I’ve always been using the full https URL.
#
[eddie]
Hmmm, so that means both Together and I should be sending the same url in the initial token request 😕
#
aaronpk
so in Aperture, the URL is the long version
#
aaronpk
that's why it's failing that check
#
[eddie]
ohhh how interesting
#
Zegnat
Hmm. So. I think the code request to the auth endpoint will return the user-specific-url as me. But if the client software then uses the domain-only-url as me parameter again to the token endpoint, that will be stored in the token.
#
aaronpk
I wonder if this is because of changes to Known that cleverdevil made
#
aaronpk
I kind of want to fix it up manually in the database for now, then try testing from a clean Known install
#
[cleverdevil]
The only changes I made are to the scope part.
#
[cleverdevil]
No change to anything about the URLs
#
aaronpk
ah when you log in to aperture, it's not requesting any scopes from the indieauth server so it actually verifies the auth code at the auth endpoint rather than requesting a token
#
aaronpk
so maybe Known is returning a different URL there
#
Zegnat
The request to get a login code from /auth will normalise me to the user URL. The request to get a token from /token will give back whatever URL is set as me parameter with that request, rather than normalised.
#
[eddie]
ohh!! that makes sense
#
Zegnat
So there might be some mismatch introduced there.
#
[eddie]
I’m still confused how Together could be working with this url mismatch
#
aaronpk
huh yeah me too
#
aaronpk
where is the known indieauth plugin?
#
aaronpk
source
#
[cleverdevil]
It’s in Cote
#
[cleverdevil]
Under IdnoPlugins/IndiePub
#
aaronpk
oh right
#
Zegnat
Good luck aaronpk.
#
Zegnat
If no progress on Known is made, I am willing to dedicate a couple hours this weekend to refactor the IndieAuth flow. Ping me.
#
Zegnat
Something different: do people have favourite PHP tooling for db migrations? Preferably something small.
#
aaronpk
if i'm not in Laravel which has its own system, I just write .sql files and do it manually
#
aaronpk
k I read through as much of the code I could without actually setting up known and looking at the DB. I suspect that the verify auth code method is returning a different `me` value than the token endpoint returns and that's causing the mismatch. the code got too confusing around looking up the user account for me to follow just by reading it.
#
Zegnat
I ran into the “too confusing” a lot when looking at Known, which is one of the reasons I dropped it for personal use :(
#
Zegnat
Or at least, it takes a while for it to start making sense.
#
[eddie]
I can confirm the Known authorization endpoint DOES provide domain/profile/username
jackjamieson joined the channel
#
KartikPrabhu
what is fragmentioner
#
Loqi
fragmentioner is a Javascript utility by Kartik Prabhu which gives a pop-up link with the fragmention URL to a piece of selected text https://indieweb.org/fragmentioner
#
[cleverdevil]
[eddie] is it providing it properly and consistently?
#
[cleverdevil]
I'd love to fix it, but I am not sure what precisely is wrong.
#
aaronpk
I suspect the token endpoint does not return that form
#
[eddie]
token endpoint returns https://cleverdevil.io/
#
aaronpk
there we go
#
[cleverdevil]
Gotcha. I wonder if I logged in with the longer-form URL, if it would work.
#
[cleverdevil]
My guess is "probably."
#
[eddie]
Yes, that seems like it would work
#
aaronpk
depends on whether the token endpoint hardcodes the root path or not
#
[cleverdevil]
Still, I don't really want to do that 😕
#
[cleverdevil]
I'd prefer to actually fix this.
#
kartikprabhu.com
edited /fragmentioner (+257) "add demo UI screeshot and self-example"
(view diff)
#
aaronpk
sounds like known is having an identity crisis ;-)
#
[eddie]
For your local install you could of course just hard-code the auth endpoint. But if you want to do something that can be put back into Known, you probably want to either add a config for the plugin that allows you to make all authentication requests as root, or you would want do do a global config where Known is identified as a “single-user install”, and then based on that, the plugin could return root if single user site
#
[cleverdevil]
So, here is the other idea.
#
[cleverdevil]
I could store the "me" that was used to generate the original code, and then return that back rather than looking it up on the user.
#
[cleverdevil]
But, it doesn't seem to be used for this purpose.
#
aaronpk
ah I knew there was a setting somewhere
#
[cleverdevil]
So, I suppose I *could* enhance for that.
#
aaronpk
yeah the indieauth plugin should definitely take that into account
#
[cleverdevil]
Let me see if I can figure out how to fetch that setting.
#
[cleverdevil]
Nice: `if (!$this->getOwner() && \Idno\Core\Idno::site()->config()->single_user) {`
#
[cleverdevil]
Should be relatively straightforward to simply return the root URL in that case.
#
[eddie]
Yeah, that seems pretty good
#
aaronpk
should fix it up the other direction too, so that it returns the path URL for multi-user sites
#
[cleverdevil]
So, you said its the `me` that is being returned from the Auth endpoint, right?
#
[eddie]
yep, th eme
#
[eddie]
from the auth endpoint
#
[cleverdevil]
I think can fix it centrally in the `Auth::verifyCode` static function.
#
[eddie]
That makes sense, you just might want to verify if the token endpoint calls that function and expects a profile back that it gets handled correctly there too
#
[cleverdevil]
I'm gonna try now, we'll see how it goes 🙂
#
[eddie]
:crossed_fingers:
#
[eddie]
let me know if you need me to ping for the me value
#
[cleverdevil]
So, now I just need to figure out how to pull the URL from the config.
#
aaronpk
hm if you're switching to the root URL then you'll need to sign in to aperture again
#
[cleverdevil]
OK, will do.
#
aaronpk
i'm going to have to actually update your URL there cause aperture will think it's a new account
#
aaronpk
but go ahead and log in and you should end up with a new account
#
aaronpk
let's see if it does that first
#
[cleverdevil]
invalid url
#
[cleverdevil]
Sorry, you do not have an account here
#
aaronpk
that's a good sign
#
aaronpk
one sec
#
aaronpk
try now
#
[cleverdevil]
Now I get "indieauth error
#
[cleverdevil]
The authoriation code was not able to be verified"
#
aaronpk
oh boy
#
[cleverdevil]
I might have to make this same tweak elsewhere in the code.
#
aaronpk
likely
#
[cleverdevil]
Good news is that its a really small, simple piece of code to add:
#
[eddie]
Wow, that’s pretty!
#
[eddie]
short and simple
#
[eddie]
except for all the PHP nonesense 😉
#
[cleverdevil]
Ugh, I've made that change pretty much everywhere that `me` is mentioned, and its still giving the same error in Aperture.
#
[cleverdevil]
I am clearly missing *something* somewhere.
#
[cleverdevil]
It looks like its using $user->getURL() as the way to identify `me`.
#
[cleverdevil]
So, I'll edit the user class to return the root URL for `me` in the case of single user.
#
[eddie]
Yeah, that might be a lower-level solution, so it might find the case that is somehow missed with the current solution
#
[eddie]
I wonder if that function is used anywhere else in the site though 😕
KartikPrabhu and [kevinmarks] joined the channel
#
[kevinmarks]
I wonder if this explains why quill stopped working with my hosted known site
#
[cleverdevil]
Yeah, that edit breaks other things.
#
[eddie]
kevinmarks: This should only affect a site when there is an app that logs the user in via the authentication flow, and it compares that me value to the one returned from the token endpoint
#
[eddie]
Typically an app only uses either authentication or authorization
#
[eddie]
Because of the microsub flow, we’re having microsub readers create tokens, pass those tokens to microsub which compares the initial authentication flow me value to the return value from the token endpoint for the microsub reader tokens
#
[cleverdevil]
Another another idea...
#
[eddie]
Hmm, that’s too bad that didn’t work 😕 I’m perusing the IndiePub plugin but not getting any different ideas yet. What’s your next idea?
#
[cleverdevil]
Added a new method called $user->getIndieAuthURL()
#
[cleverdevil]
And use that within IndieAuth plugin instead.
#
[eddie]
Yeah, that seems like it has potential :crossed_fingers:
#
[cleverdevil]
Fixed 🙂
#
Loqi
rofl
#
[eddie]
Wooo!!
#
[cleverdevil]
Now, I'm gonna try to logout/in to Indigenous
#
[cleverdevil]
Microsub love.
#
[eddie]
🙌🙌🙌🙌🙌🙌🙌
#
[eddie]
It’s a party!!!
#
[cleverdevil]
I'll work this into a PR for Known later this evening.
#
grantcodes
[eddie]: aaronpk Is there a public url you can give me that I can subscribe to to test the instagram crashing thing. (never use instagram myself)
#
[cleverdevil]
[eddie] are you going to evolve Indigenous to be a full-blown reader?
#
[eddie]
cleverdevil: Yep, that’s the plan
#
[eddie]
grancodes: Oh wait, I take that back. My instagram feeds are fine. It’s my photos feed that crashes
#
[eddie]
cleverdevil: Any specific priorities for you in expanding the reader functionality?
#
[eddie]
My two big things I want to do is a “reactions” bar when you tap on an item, and when you swipe right to left on the item to open up a native view, rather than the web view
#
[eddie]
But I’ve been cheating by just having the web view for now lol
#
Zegnat
[cleverdevil]++ nice job on bending Known to your will!
#
Loqi
cleverdevil has 8 karma in this channel (58 overall)
#
[cleverdevil]
[eddie] I used to love Reeder before I went all-in on Indieweb.
#
[cleverdevil]
Make it look as nice and functional as that 🙂
#
[kevinmarks]
I am missing woodwind
#
[cleverdevil]
Thanks, @Zegnat! Feels good to be growing my skillset.
#
[eddie]
lol, I’ll have to download Reeder. I’ve been playing around with lire because macstories was raving about it
#
[cleverdevil]
[kevinmarks], you really should try Together. Its getting pretty good 🙂
#
[cleverdevil]
Yeah, I was curious about Lire as well.
#
aaronpk
grantcodes: it's not public but it's my granary Instagram feed. I could give you the link if you need to test with it
#
[cleverdevil]
Honestly, I think you should really consider pitching Indigenous to Brent Simmons as the iOS version of Evergreen and merge the projects.
#
[cleverdevil]
That could have a huge impact on adoption.
#
[eddie]
[cleverdevil] I think his skillset in iOS surpasses mine so much, I think the real route for that would be for me to contribute my microsub/micropub library code to the Evergreen iOS project. Having read his programming guides for Evergreen on macOS, I don’t think he would want to use Indigenous as the base of Evergreen 🙂
#
grantcodes
aaronpk: either that or example mf2 objects would be great. I guess the posts are just missing a property that I assume exists
#
[cleverdevil]
[eddie] point taken, but that's also the beauty of open source. People who are willing to contribute are generally welcome. Regardless of how quickly they can come up to speed!
#
[cleverdevil]
Have you at least pinged him to let him know about Indigenous? He may find it interesting.
#
[cleverdevil]
As much as he is an expert in iOS, you're more of an expert in Indieweb.
#
[cleverdevil]
He may appreciate 🙂
#
[eddie]
I haven’t yet, I may do so shortly 🙂
#
[cleverdevil]
I think you underestimate your value 😉
#
[eddie]
Thanks 🙂 I’ll definitely have to reach out, and regardless of what influence what, my goal is that Evergreen can eventually support Micropub/sub either through Indigenous’ app, code, libraries or just knowledge sharing. That’s definitely a relationship I’d love to foster
#
aaronpk
grantcodes: PM'd you a link to an example of the Aperture response for my instagram feed
#
aaronpk
I see a couple bugs in it from the atom->html conversion but i'm not sure that's related
#
aaronpk
aha, when there is no caption in the photo, granary doesn't include an e-content class, so then the name of the post is a junk implied name
#
Loqi
[aaronpk] #131 Instagram->HTML: photos with no caption are missing a blank name property
#
aaronpk
I am still not sure that has anything to do with the Together crash
#
grantcodes
Probably not.
#
[eddie]
grantcodes: I sent you part of my photos feed microsub response over Slack
#
grantcodes
I didn't really realize what granary did before. It's like a magical new world!
#
grantcodes
snarfed++
#
Loqi
snarfed has 36 karma in this channel (344 overall)
#
grantcodes
Huh weird, the test data [eddie] sent me works fine for me
#
[eddie]
hmmm maybe it’s lower in my feed, let me see if there are any posts that don’t match what I sent you
#
[eddie]
Yeah I don’t see anything else in my feed that is different attribute wise
#
grantcodes
At some point someone (maybe me) should make really long jsonfeed example of every conceivable post type, would be super helpful for people building readers
#
[eddie]
ohhhh that’s an interesting idea. Good for testing
#
aaronpk
sounds like a test suite!
#
[cleverdevil]
It'd be cool to provide a way for people to connect Together with Facebook, Twitter, and Instagram via granary so you can use it as a centralized reader.
#
[cleverdevil]
Not sure that's easily possible.
#
aaronpk
including being able to reply? that's trickier
#
[cleverdevil]
I'd take the consumption side as a good start.
#
grantcodes
I think just reading is quite possible, only took me 2m to set up my twitter feed after realising it was a possibility
#
[cleverdevil]
I really like how in Quill, when I "like" a Twitter permalink on my site, it also pushes the "Like" out to Twitter natively.
#
[cleverdevil]
(Same with repost)
#
[eddie]
The challenge I have with granary is you can view your “feed” but I want to be able to sort various people into different feeds
#
[eddie]
that doesn’t seem to work
#
aaronpk
oh yeah that won't happen with the way granary works right now
#
[cleverdevil]
Yeah, I think its fine for Twitter, since you can simply use timeline and native lists.
#
[cleverdevil]
Instagram doesn't really have that capability natively anyway.
#
grantcodes
I'd be fine with needing to use twitter lists if they were importable through granary
#
[cleverdevil]
It would be even cooler if you could just subscribe to individual Twitter users and Instagram users.
#
[cleverdevil]
And put them in channels.
#
[cleverdevil]
If you added them, then it could transform that person's timeline via granary into an individual user feed, and optionally do the corresponding "follow" or "add to list" on the other side.
#
grantcodes
And the thing with syndicating likes may be a bit strange, like for example my site handles that syndication
#
[cleverdevil]
Right. That may be a better way to go about it.
#
jackjamieson
grantcodes++
#
Loqi
grantcodes has 8 karma in this channel (11 overall)
#
jackjamieson
Chiming in to say I'd be very keen on a test suite like you describe :)
#
grantcodes
Yeah would love to be able to follow arbitrary twitter & ig users, even some sort of middleman service would work for that.
#
aaronpk
Could totally be done as a service that you sign up for and it would just provide an html feed for Aperture to subscribe to
#
aaronpk
I basically have an internal version of that already which is how tweets show up here. I'm gonna make that available to Aperture shortly, which will really help me move over to it for good
#
[cleverdevil]
Love it. Gonna have to come up with a new project name, [aaron_pk] 😄
snarfed joined the channel
#
snarfed
delayed reaction, re granary, it can do individual silo users and twitter lists right now
#
aaronpk
ooh even twitter lists? that's aewsome
#
snarfed
the UI doesn't support it yet, but i can take a feature request. consider the UI a trailing indicator of its functionality. full docs are https://granary.readthedocs.io/en/latest/#using-the-rest-api
#
[cleverdevil]
Do you already have it available as a service somewhere, snarfed?
#
snarfed
[cleverdevil]: granary.io itself :P it's not in the UI yet, but just replace @me in a granary url with the silo username
#
snarfed
see ^ link for details
#
snarfed
also for reading your full silo "news feed" or a twitter list, i recommend https://twitter-atom.appspot.com/ and friends over granary
#
[eddie]
hmm snarfed, I’ve tried using the API to get individual user’s tweets. I’ve never gotten it to work, despite trying the username and the apiId
#
grantcodes
I've not looked into how aperture works really yet, but thought it would be smart for any microsub server to support plugins that would do parsing for certain urls. EG. make a plugin that could parse twitter.com/* Then it becomes exensible for future silos
#
[cleverdevil]
Also, I am shopping for a domain for the hosted version of together.
#
[cleverdevil]
Feel free to make suggestions!
#
snarfed
granary is primarily a developer tool. *-atom are aimed at users.
#
snarfed
[eddie]: huh. i did it just now, worked fine. feel free to post an example (sanitize the access tokens) or DM me
#
grantcodes
Awesome. Totally going to try my twitter lists
#
[cleverdevil]
together.ist is available, that's sort of fun,
#
snarfed
oh [eddie] based on https://github.com/snarfed/granary/issues/125 i'm guessing you were trying @username? yeah that's oddly broken right now. username (no @) works.
#
Loqi
[EdwardHinkle] #125 Source should be able to be a username
tantek joined the channel
#
[eddie]
ohhh hmm, I’ll try that
#
[eddie]
it works!
#
snarfed
yay. for the logs, here's e.g. the url for aaronpk's IG: https://granary.io/instagram/aaronpk/@self/@app/?format=atom
#
Loqi
does a happy dance!
#
[cleverdevil]
There's also together.express.
#
[eddie]
Found a new issue though. lol. there doesn’t seem to be any way that I see to determine when something is a retweet. It seems to appear as an entry with a different author.
#
[eddie]
I’ll make an issue on gh
#
snarfed
[eddie]: good point, thanks!
#
[eddie]
I’m so excited about being able to subscribe to individual feeds! I don’t know how I missed your response to my earlier issue
#
aaronpk
converting these to atom is going to always be lossy. i'd recommend subscribing to the HTML versions, then we can file bugs and improve the mf2 markup
#
[cleverdevil]
Yeah, this is awesome.
#
[eddie]
Yeah, I go for the html on these things
#
snarfed
[eddie]: you didn't, i replied was just now :P
#
[eddie]
oh! haha 😄
#
[eddie]
snarfed++
#
Loqi
snarfed has 37 karma in this channel (345 overall)
#
snarfed
also re the junk names for granary instagram photos without captions (aaronpk etc)...
#
Loqi
nice
#
aaronpk
except hmm the captions aren't showing up in that user feed for me at all
#
snarfed
🎵 hello implied `p-name` our old friend...you've come to haunt us once again... 🎵
#
Loqi
[aaronpk] #131 Instagram->HTML: photos with no caption are missing a blank name property
#
snarfed
so in practice i'm happy to do it
#
aaronpk
yeah it'll take a while to get all the parsers on board with the new implied name rules so probably better to patch the markup now in the mean time
#
snarfed
but bigger picture, this doesn't seem specific to bridgy. implied p-name in general seems to give us no end of grief. is it worth reconsidering? (i know, big can of worms, compatibility, etc)
#
snarfed
oh new rules?
#
aaronpk
there's been some discussion about this
#
snarfed
i don't actually know it at all, just that it seems to cause endless problems
#
snarfed
ok good
#
snarfed
relurks
#
grantcodes
I think I just need to figure out how to send notifications to aperture then I have a pretty full functioning reader
#
Loqi
[tantek] #6 reduce instances when p-name is implied
#
snarfed
so this would be a temporary ish hack, pending better rules
#
aaronpk
basically implied properties are only useful for the super minimal cases like <a href="http://example.com" class="h-card">name</a>, so if there are *any* mf2 properties inside an object then it wont create any implied properties
#
[eddie]
grantcodes: It’s pretty awesome. You generate an access token in the channel, then you just send a micropub post to /micropub rather than /microsub endpoint on the aperture url
#
Zegnat
aaronpk, “if there are *any* mf2 properties inside an object then it wont create any implied properties”, that would be my suggestion. tantek’s current proposal is a little different in that only p-name will not be implied if there are other p- properties.
#
[cleverdevil]
Oh, cool. What would notifications be used for?
#
Zegnat
If people wouldrather have nothing being implied in case of *any* properties, please comment on the mf2 parsing issue :)
#
[cleverdevil]
If I could stop having to use Tweetbot and Micro.blog's client app, and have everything consolidated into Together?
#
[cleverdevil]
So great 🙂
#
aaronpk
Zegnat: I was waiting for Tantek to comment on that since i suspect that was his intention
#
tantek
thought we already had this discussion
#
aaronpk
It's pending in the github thread
#
tantek
didn't I document my reasons there? reason for the specific p- / p-name proposal was it's a more conservative change
#
tantek
and I was amenable to expanding to any p- or e- = no implied p-name
#
tantek
I know we already discussed this
#
aaronpk
I don't remember that and i don't see it in the thread
#
tantek
but there is no justification (use-case) for further expanding that and thus making it a larger change
#
tantek
it might have been in IRC last time it was brought upt
#
tantek
snarfed: " in general seems to give us no end of grief" because impls haven't even caught up with the spec yet
#
[eddie]
[cleverdevil]: I have a working micro.blog mention to micropub converter running on my server. I’m hoping to put a UI on it soon so you could login with micro.blog and paste an access token from aperture and automatically have your micro.blog mentions forwarded to an aperture channel. I’m running the backend code currently and it seems to be working, so any micro.blog mentions show up in my Notifications channel on microsub
#
tantek
except for the addition of having e-* properties like e-content stop an implied p-name
#
snarfed
tantek: understood. both need work, but implementations especially
#
Zegnat
Expanding to cover e- should cover all breaking markup I have documented, so no complaints there, tantek.
#
snarfed
sadly mine (mf2py) is basically orphaned, tommorris notwithstanding :(
#
[cleverdevil]
If it’s as easy as you say I could likely do all notifications from Known via a plugin.
#
tantek
hmm - thought at least KartikPrabhu or maybe gRegorLove was looking at mf2py
#
tantek
or kevinmarks
#
KartikPrabhu
wait why is mf2py orphaned?
#
snarfed
KartikPrabhu: lots of issues, no commits
#
tantek
TFW a website forgets to support no-www and http:
#
KartikPrabhu
snarfed: aah I haven't had the time to work on it.
#
tantek
http://bodyshop.com/ -> <h1>Bad Request (Invalid Hostname)</h1>
#
snarfed
trivial one in 2017, work from only kylewm in 2016, others evidently stopped jan 2015
#
KartikPrabhu
and I think same with kylewm and tommorris
#
snarfed
KartikPrabhu: ooh how can i bribe you?! i have lots of requests!
#
[eddie]
[cleverdevil] Yeah, notifications are super easy. I added support so my website. When my website does rebuilds, it sends those updates to a Website Notifications channel. When I get webmentions, those forward to my Notifications channel right alongside my micro.blog mentions. Eventually hopefully Twitter mentions as well
#
aaronpk
[cleverdevil]: I wanted to make it as easy as possible to get content into Aperture! So if your CMS already provides a feed of notifications you can subscribe to that, otherwise you can use aperture's Micropub api to create content in it
#
[cleverdevil]
Adding to my todo list 😀
#
KartikPrabhu
snarfed: ok, maybe I'll go back to python programming on weekends :P I'll fork up the current mf2py and maybe you can help me prioritise the issues
#
tantek
oh nm for some reason they don't own their domain, they own thebodyshop.com
#
snarfed
KartikPrabhu: yes!!!
#
KartikPrabhu
cool. I'll put that for this weekend
#
tantek
KartikPrabhu++
#
Loqi
kartikprabhu has 11 karma in this channel (163 overall)
#
snarfed
KartikPrabhu++
#
Loqi
kartikprabhu has 12 karma in this channel (164 overall)
#
KartikPrabhu
I basically haven't been doing a lot of indieweb stuff due to actual work :P
#
snarfed
totally fine!
#
snarfed
no guilt or obligation
#
Loqi
[tantek] #6 reduce instances when p-name is implied
#
KartikPrabhu
my articles list is kind sad from a timeline perspective https://kartikprabhu.com/#latest-articles
#
tantek
should we ask tommorris to help move the "canonical" mf2py repo to the microformats org?
#
KartikPrabhu
oh are there others in there?
#
snarfed
maybe! usually the biggest challenge is *people* finding time and feeling ownership, not repo admin and orgs...but i'm fine with whatever
#
snarfed
(ie people not tools)
#
tantek
having multiple admins reduces the chances of that sense of abandonment / friction to update etc.
#
aaronpk
I do think there is a different sense of contributing to "tommorris' mf2 parser" vs "the official python mf2 parser" so there might be something to it
#
aaronpk
also that
#
tantek
is kylewm's fork newer by any chance?
#
tantek
^^^ also not having to ask those questions
#
KartikPrabhu
my fork is way behind for sure
#
tantek
also which fork has the canonical issues?
#
KartikPrabhu
tommorris I think
#
tantek
that's probably the key silo / dependency question
#
tantek
then that's the one we ought to "move"
#
tantek
so the issue discussion / history is preserved
#
tantek
since we're not all owning our issues, yet
#
snarfed
btw KartikPrabhu re writing (articles), i'm right there with you. https://snarfed.org/tag/essay don't feel bad! everything goes in cycles, if you write less sometimes, that's totally ok. no obligation. vive la difference.
#
Loqi
[Ryan Barrett] Pessimistic induction
#
KartikPrabhu
I made some issues on my fork, but I can see if they are still relevant
#
KartikPrabhu
snarfed: yes of course. My philosphy with articles is exactly that. Notes are more frequent
#
KartikPrabhu
aside funny that microformats.org repo has a fragmention fork, which seems totally unrelated
#
gRegorLove
I only know a bit of python, but have been wanting to tinker more. I might be able to contribute some to mf2py at some point, but it wouldn't be in the near future
#
snarfed
also re ownership, shared ownership often degrades, so it's often best to have a single lead maintainer/owner. they can always hand it off when they want to leave
#
snarfed
worth considering for mf2py
#
snarfed
gRegorLove++
#
Loqi
gregorlove has 42 karma in this channel (218 overall)
#
gRegorLove
I'm in favor of mf2py under microformats repo
#
KartikPrabhu
gRegorLove: I did most of my python learning while writing code for mf2py :P
#
gRegorLove
Hehe, nice
#
snarfed
KartikPrabhu: isn't your site python?
#
KartikPrabhu
snarfed: yes, which I made while starting to learn python
#
gRegorLove
I started learning it with the crypto pals challenges several years ago: https://cryptopals.com but I got busy/distracted
#
[cleverdevil]
[grantcodes] I have this icon I made for Together -> https://cleverdevil.io/s/e4L4BQWjje.png
#
[cleverdevil]
Not in love with it.
#
[cleverdevil]
But, its there 🙂
#
KartikPrabhu
that looks a lot like twitter's t
#
[cleverdevil]
Agreed. Not super happy about that bit 🙂
#
KartikPrabhu
Helvetica?
#
[cleverdevil]
Errr.. Nexa
#
[cleverdevil]
I can easily edit it to be whatever.
#
[cleverdevil]
[eddie] how do you forward the webmention to Aperture?
#
[cleverdevil]
Do you transform the webmention into a "post" and add it to the channel?
#
[eddie]
Yeah, my website currently receives pings from webmention.io when it gets a webmention. So then I just take the data I get and transform it into a micropub post
#
[eddie]
I actually modify it a little to make it more notification-ey
#
aaronpk
You're anticipating my next feature :-)
#
[eddie]
So I append (in reply to: (link to post))
#
[cleverdevil]
Oh, so you literally just micropub over to the channel itself.
#
[cleverdevil]
Looking at how I might implement that for Known.
#
[eddie]
How do you receive webmentions currently in Known? Does it receive them itself?
#
aaronpk
I'm gonna eventually make webmention.io hooks talk directly to Aperture so you can just hook them up without any new code
#
[cleverdevil]
Thinking I could actually leverage the existing email notifications code here: https://github.com/idno/Known/blob/master/Idno/Entities/User.php#L82
#
[cleverdevil]
Hook into the same event, and then send something to Aperture.
#
[eddie]
nice, aaronpk!
#
aaronpk
Ooh yeah it'd be a small leap to convert an email notification to a Micropub notification for Aperture
#
[cleverdevil]
That's what I am thinking. Notification objects have everything I need, clearly: https://github.com/idno/Known/blob/master/Idno/Entities/Notification.php
#
[cleverdevil]
I am not sure that Known has a Micropub client built-in or not, though.
#
[cleverdevil]
But, it definitely has a little HTTP client for sending requests.
#
[cleverdevil]
I use it to ping Micro.blog when I publish something new, since I was having flakiness with WebSub.
#
aaronpk
You don't need a whole Micropub client since it's just one post request
#
[cleverdevil]
So, I would essentially just send a Micropub POST to "https://aperture.p3k.io/channel/34", which is my Notifications channel?
#
aaronpk
No send it to the Micropub endpoint which is just /micropub
#
[cleverdevil]
Ah, right of course.
#
aaronpk
Using a token you generate from within the notifications channe
[kevinmarks] joined the channel
#
[kevinmarks]
I can have a look at mf2py again - I use it for unmung etc.
#
[kevinmarks]
Also if you want feed examples, feedparser has lots
#
snarfed
[kevinmarks]++
#
Loqi
kevinmarks has 7 karma in this channel (298 overall)
#
snarfed
mostly it needs a single active owner, and then some bandwidth on bug fixing from people who know it
#
[kevinmarks]
Making feedparser deal with h-feed is one of my itches
#
[kevinmarks]
I agree moving it to microformats repo would be good.
#
[kevinmarks]
(mf2py that is, feedparser is a bigger can of worms)
#
[cleverdevil]
[aaron_pk] when you say "Using a token you generate from within the notifications channel," what exactly do you mean?
#
aaronpk
No there's a UI for t in aperture
#
[cleverdevil]
Looking...
#
aaronpk
it doesn't do any IndieAuth discovery or anything, it's just an api key
#
[cleverdevil]
I see it 🙂
#
aaronpk
Eventually you'll be able to log in to Quill via Aperture's Micropub... it's like IndieAuth inception
KartikPrabhu joined the channel
#
[cleverdevil]
My brain hurts.
#
[cleverdevil]
Hmm... I am getting an Unauthorized response with that token.
#
[cleverdevil]
Can I just pass it as a "Authorization: Bearer XXXX"?
#
aaronpk
Should work yeah
#
[cleverdevil]
Hmm... maybe I am screwing something up.
#
[cleverdevil]
I'll try sending the same request to a requestbin.
#
[cleverdevil]
Hmm, yeah, its on me.
#
aaronpk
*whew*