#social 2017-10-27

2017-10-27 UTC
timbl, rowan, dlehn and xmpp-social joined the channel
#
rhiaro
puckipedia: re "to:talItems": 27 ... I had the same problem. I assumed it was my jsonld library. There's some weird find and replace thing going on where because as:to exists it gets overexcited when compacting 'total'. I didn't quite get to the bottom of it
#
rhiaro
I can't remember if I fixed it, filed issues, or just put it on the deal with later pile
#
rhiaro
probably latter
#
rhiaro
yeahhh I commented that line out
#
puckipedia
rhiaro: hahaha. same issue, after JSON-LD compacting
#
Loqi
hahahaha
#
puckipedia
I wonder if this was an oversight
#
puckipedia
also yeah, really didn't realise lol
#
puckipedia
oh. I think I know.
#
puckipedia
rhiaro: totalItems is defined as http://www.w3.org/2001/XMLSchema#nonNegativeInteger
#
puckipedia
rhiaro: fixed it by defining type lol
#
rhiaro
ooh interesting
#
rhiaro
cheers
#
rhiaro
that would not have occurred to me
#
rhiaro
I'm planning to fix up my AP implementation this weekend
#
puckipedia
I implemented the JSON-LD API myself, and remembered that the inverse mapping is also sensitive to type
#
rhiaro
So stay tuned for interop requests
#
puckipedia
yay :)
#
Loqi
giggles
#
puckipedia
I need to develop a database migration tool - older objects in my DB still have a plain AS2 @context
#
puckipedia
my new context takes the Mastodon context and adds a few Kroeg extensions to it, like fixing up jwks/uploadMedia/likes/liked as those aren't defined in AS2. then it adds kroeg:settingsEndpoint and kroeg:blocks
#
puckipedia
but the @context in the DB overrides these extensions so now older objects have _:likes
#
puckipedia
egh. just figured out why published etc weren't set
#
puckipedia
if you guessed "forgot to declare type" then yes
#
puckipedia
slowly building a triple store
rowan joined the channel
#
rhiaro
puckipedia: my condolences :)
rowan, rowan_ and timbl joined the channel
#
erincandescent
cwebber: I feel it's actually good for a test suite to often do the minimally correct thing
#
erincandescent
You should mix it up if possible :)
#
puckipedia
erincandescent: though, {"type": "Like", "object": "[...]"} is probably a bit too minimal
#
erincandescent
Hmm, could do with an actor :p
rowan_ joined the channel
#
puckipedia
yeah. my code decided "this is an activity. there's no actor. not allowed."
#
puckipedia
and this was basically cause for most of the tests failing. also something with access control, might be on Kroeg's end
#
puckipedia
(if an object has an actor, it won't get wrapped in a Create. but I did hard-code a list of definite-activities that just get refused without actor. for extensibility, of course :P)
#
cwebber
puckipedia: I assumed the server fills in the actor :)
#
cwebber
in c2s
#
cwebber
s2s is another matter!
#
cwebber
after all you probably throw out the actor if it's wrong anyhow in c2s
#
puckipedia
I actually just refuse
#
puckipedia
but, this is more to prime client developers to do proper "actor" adding
#
cwebber
:)
#
puckipedia
so if they decide to add custom Activities they will also pass `actor` and they won't get weird behaviour
#
cwebber
puckipedia: fair
#
cwebber
I'll add that in a few
#
puckipedia
yeah, no hurries, still working on my triple store :)
#
puckipedia
actually I think I just finished it
#
cwebber
wow!
#
puckipedia
I figured out how to store entities with no ID in the store. it's a really ugly hack
#
puckipedia
(I namespace all the triples into an TripleEntity object, while also having a separate Subject)
#
puckipedia
okay, I overlaid the triple store on top of the normal DB store
#
puckipedia
god. GETting the outbox is now up to 5 seconds
#
cwebber
oop
#
puckipedia
tbh, this is from a 'cold start'
#
cwebber
puckipedia: I assume you've added the appropriate indexes?
#
puckipedia
not yet lol :D
#
cwebber
well that probably affects things ;)
#
puckipedia
oh lol. I think it actually stored into the DB. but adding to the collection failed
#
puckipedia
woo! triple store has roundtrippyness
#
puckipedia
... almost
#
cwebber
puckipedia: cool :)
#
cwebber
puckipedia: are you going to use triples or quads?
#
puckipedia
... I really just designed quads, didn't I
#
cwebber
I'm a bit too fuzzy right now to tell :)
#
cwebber
puckipedia: btw I just added an actor field to every activity in the test suite
#
puckipedia
well, I basically have a 'graph' which is the main object and sub-objects inside a single Entity
#
cwebber
sounds like quads :)
#
cwebber
that's good, you want quads
#
puckipedia
okay so I developed quads. great.
#
cwebber
puckipedia: how are you extracting the "object shape" from it? are you going to use json-ld framing?
#
puckipedia
currently I can't recreate arbitrary document shapes yet
#
cwebber
json-ld framing probably already does what you want
#
cwebber
take a look and check at least
#
puckipedia
tbh I'd vote for signing every object separately
#
cwebber
> Submitted object, but no ActivityStreams object at response's Location
#
puckipedia
yeah that's the 403 issue
#
cwebber
oh
#
cwebber
I probably am not retrieving the objects, despite submitting them
#
cwebber
under the client's credentiasl
#
cwebber
easy fix
#
puckipedia
okay, I'm throwing the test suite against my quad-based store
#
cwebber
let's see
#
puckipedia
welp I got disconnected :P
#
cwebber
oh
#
cwebber
I was restarting it sorry
#
cwebber
since I was switching some of the requests to use the client's credentials
#
cwebber
back up now
#
cwebber
well that's a lot more Yes than before!
#
puckipedia
first 4: yes. froze at the response for "Up for some root beer floats?"
#
cwebber
well we're getting closer ;)
#
puckipedia
as in, no response after the GET request thing
#
cwebber
puckipedia: on your end or mine?
#
puckipedia
your end
#
puckipedia
retrying tests now
#
puckipedia
now it works(TM)
#
cwebber
nice :)
#
cwebber
oh yeah the "froze" was because I restarted
#
cwebber
mid-process
#
cwebber
heh!
#
puckipedia
"name": "An indecisive note"
#
cwebber
hehe
#
puckipedia
that one is still missing an actor
#
cwebber
oh ok
#
cwebber
there are some almost-jokes in the activities
#
puckipedia
and the following doesn't return the follow because it hasn't been Accepted (also froze again)
#
cwebber
puckipedia: should be fixed
#
cwebber
oh well re: the froze... another continuation bug :|
#
cwebber
ERROR: Attempt to suspend fiber within continuation barrier <- bane of my existence
#
cwebber
that could have been my fault this time for live hacking the code during the middle of it running
#
cwebber
puckipedia: could you try one more time?
#
cwebber
ERROR: Attempt to suspend fiber within continuation barrier
#
cwebber
argh
#
puckipedia
lol. it's still running though
#
cwebber
I'm lost as to why these continuation bugs are happening with your server but not mine
#
cwebber
obviously not your fault since it's a language issue
#
puckipedia
I respond with the object contents on 201
#
cwebber
I don't think that's related if you're suggesting that's why
#
cwebber
I do the same thing
#
puckipedia
hm
#
cwebber
the "root cause" of the bug is described here https://wingolog.org/archives/2010/02/26/guile-and-delimited-continuations
#
cwebber
what it really means
#
cwebber
is that the continuation is doing some clever things so I don't have to write callback style code because I hate that
#
puckipedia
do you know where it happens
#
puckipedia
bbiab, food
#
cwebber
which is all good and well but it involves the language doing something where, above a "prompt" layer, it suspends the code so the scheduler can resume it when it's ready
#
cwebber
the problem is it doesn't work if you "mix in" some C stack
#
cwebber
but afaict I'm doing all scheme, and at least it shouldn't be different
#
cwebber
puckipedia: sadly not quite, it doesn't "pinpoint" where the issue is happening... which is why this is the hardest damn thing to debug
#
cwebber
I may have an idea on how to find it
#
cwebber
maybe, maybe I can actually walk the stack and keep checking for the point at which the error is introduced
#
cwebber
this might be possible.
#
cwebber
but
#
cwebber
OH uh
#
cwebber
I wonder if my "fix" for the async https stuff is partly causing the issues here
#
cwebber
of course.. I'm doing call-with-new-thread... that's *almost certainly* the cause.
#
cwebber
I think I have an idea on how to fix it that's less hacky than my current solution.
#
cwebber
Oh! This may be easier than I thought.
#
cwebber
saying it here so I don't forget:
#
cwebber
have each <case-worker> (test suite runner) run in its own independent thread instead of breaking out one to try to get around the https issue.
#
cwebber
that should be good enough.
#
cwebber
I need to pack up. I'm at a wedding this weekend. I'll work on closing the remaining AP issues while on the trip though.
#
cwebber
fixing the continuation bug may have to wait until monday however... we'll see how much time I get.
#
cwebber
puckipedia: thank you again for all your help.
#
cwebber
you have really done a great job.
#
cwebber
also thanks rhiaro for all the help recently on closing issues!
#
xmpp-social
[ajordan] Have fun cwebber! \o/
#
cwebber
thank you ajordan :)
#
cwebber
I'm restarting the test suite on test.ap.rocks (ie, shutting it down from my laptop and putting it back up on the server proper, for obvious reasons)
#
cwebber
test.ap.rocks now running on the server proper again
#
xmpp-social
[ajordan] \o\ /o/ \o\
rowan, rowan_, alanz and timbl joined the channel
#
aaronpk
cwebber: just to confirm, there are no server-to-server tests there yet right? it looks like it just walks you through submitting an implementation repor
alanz_ joined the channel
#
rowan_
cwebber: i'm confused about how to use test.activitypub.rocks. is it just a series of questions, or is it supposed to do more?
#
puckipedia
I should be properly caching ID values now
#
Loqi
agreed.
#
puckipedia
bleh. need to basically rewrite the entirety of the collection utils. maybe replace it with a list of quads? :P
#
puckipedia
also I can garbage collect the contents of entities while keeping metadata intact, this could be cool
#
xmpp-social
[ajordan] Why would you need metadata but not data? Except for Tombstones?
#
puckipedia
I store all remote entities as well, I could possibly make a mechanism to purge them okay I have no reason to do so
#
xmpp-social
[ajordan] Lol
#
xmpp-social
[ajordan] Gotcha
timbl joined the channel