#social 2017-07-03

2017-07-03 UTC
#
ben_thatmustbeme
Takyoji, Mastodon had been working to implementing it, and puckipedia has been working on a .Net implementation. But that's all I really know of personally. But I am not super involved in it
#
Takyoji
It seems the link for reference named "OAuth-Server-Metadata" on ActivityPub is dead. It's moved to: https://tools.ietf.org/html/draft-ietf-oauth-discovery-06
#
ben_thatmustbeme
cwebber2: ^^
#
cwebber2
Takyoji: I also have an implementation
#
cwebber2
Takyoji: and so does NextCloud
#
cwebber2
there's also a PR I haven't merged yet
#
cwebber2
and we probably won't get most implementation reports until the test suite up... which is my current work
#
cwebber2
Takyoji: re: the link, thanks! could you file an issue?
#
Takyoji
cwebber2: Absolutely, I shall do so shortly.
#
cwebber2
thank you Takyoji :)
#
Takyoji
I noticed a veeeery subtle syntax issue in Example 16: https://www.w3.org/TR/activitypub/#object-without-create
#
Takyoji
A comma was forgotten after the assignment for the "id" property, at the end of the line
#
Takyoji
Is it even worth raising an issue or anything for something so miniscule though? xP
#
Takyoji
And apparently after "actor" in Example 13 as well
#
Takyoji
And, well, in Example 11 as well
#
Takyoji
Here's a pull request of those minor fixes, if it's of any value: https://github.com/w3c/activitypub/pull/238/files
xmpp-social joined the channel
#
xmpp-social
[ajordan] Takyoji: the bridge isn't moderated. However, it DOES crash when someone on the IRC side sends fancy Unicode :/
#
xmpp-social
[ajordan] I just restarted it.
#
xmpp-social
[ajordan] Takyoji: AFAIK the Working Group can't accept PRs from anyone outside the WG because they haven't signed W3C copyright/patent agreements but I can send the same changes for you
#
xmpp-social
[ajordan] cwebber2: if you merge my PRs they fix a lot of these small problems, including the IETF 404 Takyoji mentioned
#
xmpp-social
[ajordan] Or alternately if you're comfortable I can ask someone to make me a collaborator and merge them myself?
#
xmpp-social
[Takyoji] Whichever route is most practical. I don't really claim any sort of intellectual property of anything that I do, for the most part.
#
xmpp-social
[ajordan] For the record the Unicode issue is filed at https://github.com/42wim/matterbridge/issues/210 but I'm hoping to port https://github.com/aaronpk/Slack-IRC-Gateway to XMPP anyway, which should make this a non-issue
#
Loqi
[strugee] #210 Funky Unicode causes XMPP to disconnect
#
xmpp-social
[ajordan] Takyoji: in the US copyright is automatic whether you claim it or not
#
xmpp-social
[ajordan] Personally I think trivial typo fixes like this should be okay, but it's not up to me. Or, AFAIK, any of the WG members
#
xmpp-social
[ajordan] :/ sorry, I know it's annoying and we really appreciate you bringing up problems like this one
#
puckipedia
I just added uploadMedia support to Kroeg ... though, there's one issue I can see with it
#
puckipedia
... how do I upload more than one image?
lambadalambda, bitbit and timbl joined the channel
#
aaronpk
feels like he saw only one side of that conversation
#
aaronpk
You can definitely open issues as someone outside the group. The only potential concern is contributing actual text to the spec
newton joined the channel
#
cwebber2
puckipedia: hm
#
cwebber2
puckipedia: I would think you'd have one Image object per image?
#
cwebber2
I guess if you want to upload multiple images and have them grouped into a single object maybe it's not the best endpoint for it
#
puckipedia
like, imagine a twitter-style 4-image post
#
cwebber2
I hadn't considered that use case
#
cwebber2
puckipedia: I mean, maybe there could be one big POST with multiple file objects but that seems maybe hacky? I dunno
#
cwebber2
it seems trickier to define
#
cwebber2
puckipedia: what do you think?
#
aaronpk
in Micropub, you upload each image to the media endpoint to get each image's jpeg URL, then you can just post all the URLs in the "photo" property in the Micropub request
#
puckipedia
^ I would guess not directly posting into the outbox, but just assigning an id
#
aaronpk
(the media endpoint idea is based on the Twitter API so it's not surprising it matches)
#
puckipedia
so you can then do a {"type": "Create", {"type": "Note", "attachment": ["id1", "id2", "id3", "id4"]}}
#
puckipedia
and ad a content
#
cwebber2
we used to have a similar thing where you did the upload across multiple posts
#
cwebber2
but, and I guess this is MediaGoblin bias, I felt (and I convinced tsyesika) that it was more easily done all in one POST
#
aaronpk
the benefit of splitting the media upload from creating the post object is allows clients to upload the images asynchronously
#
cwebber2
aaronpk: we did have some challenges in mediagoblin where we wanted to be able to transcode videos
#
aaronpk
or even in the reverse order, such as how Swarm does it. you can create a checkin with a photo and if you're on crappy wifi, the checkin is created first and the app says "photo upload failed, try again" and you can tap it to upload the photo afterwards
#
cwebber2
and if you uploaded a video, you might have several resolutions
#
cwebber2
and "attaching" each one to the object, well you might not even know what those filenames would be
#
cwebber2
you'd have to wait until video transcoding could be done
#
cwebber2
before you upload your object
#
cwebber2
that could take hours
#
cwebber2
so it was easier to upload the media at the same time and have it affix the right things to the object
#
aaronpk
the way micropub (and twitter) define it is the media endpoint response is the ID of the thing to add to your post, regardless of whether "processing" is done
#
cwebber2
also less garbage collection of unused stuff
#
aaronpk
twitter supports video upload too of course
#
aaronpk
and they transcode like crazy
#
tsyesika
cwebber2: our mediagoblin issues were more a legacy problem rather than a technical one
#
tsyesika
regarding transcoding and having images submitted without the metadata
#
tsyesika
mediagoblin mixes image objects and posts containing images due to it obviously being designed in where the distinction was meaningless
#
cwebber2
this could still be done with the current api sort of, but there's a catch
#
cwebber2
you could upload multiple images to the mediaUpload endpoint, and it would create multiple objects for that, then create a single post that you submit to your outbox that has them all as attachments
#
cwebber2
the problem is they'd all appear in your outbox as individual posts
#
cwebber2
you'd need a way to flag that this is meant to be attached to something else, and not go in the outbox
#
cwebber2
if you could do that, you could put each one of the objects created in the attachments as puckipedia described I think
#
cwebber2
so you'd need an extra boolean in the form
#
puckipedia
maybe if it's a Create activity, post it into the outbox, else just give it an ID?
#
cwebber2
puckipedia: so make a {Video} as opposed to {Create: {Video}} ?
#
puckipedia
well, if you send it as {Create: {Video}} it's post it into the outbox. if you send {Video} it only gives it an ID
#
cwebber2
right, the id of the Video only
#
cwebber2
but not post it wrapped in the Create to the outbox
#
cwebber2
I like that puckipedia
#
cwebber2
puckipedia: could you write up an issue for this on the tracker? I'd like to get it integrated.
#
cwebber2
puckipedia: or I can if you don't feel like it :)
#
Loqi
[puckipedia] #239 mediaUpload: only post to outbox if it's a Create activity?
#
puckipedia
I'll quickly put this into Kroeg
#
cwebber2
puckipedia: thanx :D
#
cwebber2
puckipedia: finally, a really good reason to be wrapping things in Create ;)
#
puckipedia
hehe, I think I just got it implemented in Kroeg. lemme verify...
#
cwebber2
puckipedia: you are kicking butt with your implementation work
#
puckipedia
(I added .json/.atom, those override the Accept: header for user convenience) also I fixed the URI path: https://lol.puckipedia.com/asdf/image/690c307d.json
#
puckipedia
it used a cool template to generate the image id: ${$.attributedTo|$.actor|resolve|%.preferredUsername|shortguid}/${$.type|slug}/${shortguid}
#
puckipedia
first thing says 'get attributedTo, if that fails, use actor, then resolve the object, get preferredUsername from that object, if that fails use a randomly short guid'
#
cwebber2
puckipedia: btw, curious if you support users posting a new collection, and then adding arbitrary items to it
#
puckipedia
... yes? I think?
#
cwebber2
puckipedia: my tests for Add / Remove assume you can do that
#
cwebber2
because I wasn't sure how else to test it
#
puckipedia
lemme see...
#
puckipedia
it /should/ work
#
puckipedia
but it's failing for unknown reasons
#
cwebber2
puckipedia: well the real question wasn't whether it's working or not currently (hey, and the test suite could help you catch that) but whether it's a reasonable thing to expect people to implement
#
cwebber2
sounds like since you meant it to be there and work, it's a reasonable approach
#
puckipedia
yeah. Collections are kinda a hack, the items inside are stored separately
#
puckipedia
so I forced the unflattener to never unflatten collections, because it won't unflatten the orderedItems etc
#
cwebber2
puckipedia: yeah, I have it done as a separate step. that runs before the unflattener
#
cwebber2
what I do is I have a display-expand procedure that different object types can implement, and that fills in the initial page
#
cwebber2
and then it gets passed to the unflattener to expand the whole thing for retrieval
#
cwebber2
puckipedia: also how are you doing pagination? I'm having the user be able to pass in which item to start with via a GET request
#
cwebber2
a query parameter in the GET
#
cwebber2
so if there's a page=<object-id> it returns an OrderedCollectionPage for that object
#
puckipedia
the collection item table has normal sequential IDs
#
puckipedia
so "id": "https://lol.puckipedia.com/users/asdf/outbox?from_id=5"
#
cwebber2
puckipedia: gotcha
#
puckipedia
I should probably stop external OrderedCollections etc from being cached
#
Loqi
agreed.
#
puckipedia
ehm, woops, I broke {type: Update} a while back
#
puckipedia
... now it isn't recognized as a collection anymore :D:
#
puckipedia
fixed
#
puckipedia
cwebber2: I just did a Create / Add / Update
#
puckipedia
so yes, it works
#
cwebber2
puckipedia: cool
#
cwebber2
puckipedia: I'm able to retrieve the Collection object using Accept header of application/activity+json
#
cwebber2
trying with Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"
#
Loqi
[Amy Guy] ActivityStreams 2.0 Terms
#
puckipedia
the server is down atm, doing a git commit
#
cwebber2
makes your server spill its guts :)
#
puckipedia
one sec
#
puckipedia
try again?
#
puckipedia
ouch yeah
#
cwebber2
maybe I should have the test suite test for which ones the server supports...
#
puckipedia
... works here? :P
#
puckipedia
maybe you have some kind of extra spaces somewhere?
#
cwebber2
I get back text/html
#
cwebber2
it's not breaking now
#
puckipedia
yeah, the gateway errors is because it's just a proxy to my home IP which has VS open
#
puckipedia
can you try once more?
#
puckipedia
figured out, there's no space between ; and p
#
puckipedia
and I kinda require that ATM
#
cwebber2
I was sending it as
#
cwebber2
(http-get "https://lol.puckipedia.com/asdf/status/a4b41405/orderedcollection" #:headers '((accept . ((application/ld+json (profile . "https://www.w3.org/ns/activitystreams"))))))
#
cwebber2
the lists are automatically converted to the right accept header
#
cwebber2
so I don't even control the space ;)
#
puckipedia
ah. I got 'Accept: application/ld+json;profile="https://www.w3.org/ns/activitystreams"'
#
Loqi
[Amy Guy] ActivityStreams 2.0 Terms
#
puckipedia
I should probably clean that up
#
puckipedia
done
#
cwebber2
no dice
#
puckipedia
... ehm
#
puckipedia
hm
#
puckipedia
can you try once more?
#
puckipedia
aha, "application/ld+json;profile=https://www.w3.org/ns/activitystreams"
#
Loqi
[Amy Guy] ActivityStreams 2.0 Terms
#
puckipedia
... I should probably use something better to normalize
#
cwebber2
yeah still not working
#
puckipedia
yeah, apparently you don't need to quote values
#
puckipedia
should work now
#
puckipedia
bbiab
#
cwebber2
works, thanks puckipedia
#
cwebber2
puckipedia: ping me when things are up again on your server
#
puckipedia
done
#
cwebber2
cool, my client can pull down stuff from your server
#
puckipedia
I.. broke something, so it may not be doing accept things right
#
puckipedia
woops, I do checks the wrong way
#
cwebber2
and render as localized as2 objects
#
puckipedia
1 sec, restarting servers
#
puckipedia
so I'm going to SHA2017, and they've got a python-powered badge
#
puckipedia
... guess what I'm going to make? :)
#
cwebber2
a python? :)
#
puckipedia
a tiny ActivityPub client maybe? :P
#
puckipedia
I like the progress I'm making on Kroeg. slowly but surely fixing the last things in the implementation document
#
puckipedia
let's add a blocking mechanism now
#
puckipedia
lol. my new mimetype code makes browsers get the atom xml
#
puckipedia
because application/xml
#
puckipedia
aand blocks are implemented!
#
puckipedia
except for reading back blocks, and undoing blocks
#
cwebber2
puckipedia: fast!
#
xmpp-social
[ajordan] aaronpk: the only message IRC missed was Takyoji wondering if the bridge was moderated cause their message about existing implementations didn't make it though to IRC originally
#
Loqi
[puckipedia] #240 Document `Undo`ing Blocks, and maybe reading back Blocks
#
puckipedia
undoing and reading blocks fixed
#
puckipedia
... hmmmmm. hit an optimization roadblock
#
puckipedia
my current "is blocked" check is checking the OrderedCollection for the user, which is instant
#
puckipedia
but I can't find the Block activity I used to block someone
#
cwebber2
puckipedia: you mean when the client wants to send the {Undo: Block}?
#
puckipedia
yeah
#
cwebber2
puckipedia: what do you think of something like this
#
puckipedia
I wonder if the 'blocked' list should be a list of Block activities, then an internal list of blocked users
#
puckipedia
... yeah, that's more logical, I add a published property to every activity so you can see when the block happened
#
cwebber2
"type": "Undo",
#
cwebber2
{"id": "https://foovile.example/123",
#
cwebber2
"object": {
#
cwebber2
"type": "Block",
#
cwebber2
"id": "https://foovile.example/123#undoing-object"
#
cwebber2
"object": "https://actorland.example/user/troublemaker"}}
#
cwebber2
puckipedia: you don't need the original block object to undo it necessarily
#
cwebber2
since it's more removing the user from the collection, rather than undoing the specific former block action
#
cwebber2
this is what I've been planning on doing... does it make sense to you?
#
puckipedia
yeah
#
puckipedia
I mean, if I were to put that into client->server api, it'd probably do the Right Thing
#
puckipedia
into my API, that is
#
cwebber2
personally I'm not sure if removing all the UnFoo types made sense, it's more tricky to use Undo than to just use an inverse type
#
cwebber2
but by the time I came to that realization it was too late
#
cwebber2
I think this is a reasonable workaround but it isn't as nice as having an Unblock IMO
#
puckipedia
I'm thinking. the 'likes' also has the Like activities, and not the Actor that liked it
#
puckipedia
cwebber2: to unblock someone you need to know they're blocked
#
puckipedia
so having to get the Activity isn't that bad imo
#
cwebber2
I'm back
#
cwebber2
hey nice puckipedia :)
#
xmpp-social
[ajordan] puckipedia: it would also make sense to me to err on the side of providing more information
#
xmpp-social
[ajordan] It's easy to get actors who have been blocked from a list of Block activities, but not the other way around
#
puckipedia
yeah. that's what I decided on too
#
puckipedia
I added an invisible 'blocked' inside the 'blocks' collection, so blocks is OrderedCollection<Block>, and blocked is OrderedCollection<Actor> and is invisible
#
xmpp-social
[ajordan] Which would be an argument in favor of the "blocked" list being a Collection of Block activities, not actors
#
xmpp-social
[ajordan] Ah gotcha
#
puckipedia
well, I renamed it to be 'blocks'. the 'blocks' collection contains "_blocked", which you can't read (the _blocked is just for the server's reference)
#
xmpp-social
[ajordan] But how is the Collection of actors useful if it's invisible? What's it for?
#
xmpp-social
[ajordan] Ohhh I see
#
xmpp-social
[ajordan] Just an implementation detail basically
#
puckipedia
yeah
#
puckipedia
checking if a Collection contains an Actor is just asking the database 'does a collection item exist that is from collection A and is entity B'
#
xmpp-social
[ajordan] Right
#
cwebber2
puckipedia: btw out of curiosit
#
cwebber2
you said you support multi-domain hosting in your current application model
#
xmpp-social
[ajordan] Do we not have a standard way to get blocked actors? I thought we specified a name/semantics for that like we do for likes, following, etc.
#
cwebber2
do you flag when something is a "local" vs a "remote" object?
#
cwebber2
since object under the server's control presumably need to track information that remote objects don't
#
puckipedia
yes. IsOwner, which means that the server itself is *the* authority for that object
#
cwebber2
puckipedia: nice to compare notes :)
#
puckipedia
IsOwner also means they don't expire (I added a small 1-week cache for external objects, except for tag: because those I can't regenerate from the id only)
#
puckipedia
if it expires, the database store just says 'it doesn't exist' and the retrieving entity store will pick up the slack
#
puckipedia
(and push it back into the cache)
#
puckipedia
btw, that RetrievingEntityStore also is responsible for e.g. OStatus user retrieval, which is a slightly evil hack
#
xmpp-social
[ajordan] cwebber2: since you're here, presumably instead of being deep in the test suite
#
cwebber2
ajordan: I am deep in the test suite :)
#
cwebber2
but I will get to those.
#
cwebber2
I appreciate you working on them, and sorry it's taking me so long
#
puckipedia
cwebber2: btw, I can give you access to my semi-temporary Kroeg instance, so you can throw the test suite against it
#
xmpp-social
[ajordan] Lol too bad
#
xmpp-social
[ajordan] It's np, I just want them to get merged vaguely soon since they're trivial but really nice to have
#
cwebber2
puckipedia: cool, I'd love to do that. the current way I'm running tests is by having an actor and an associated oauth2 bearer token to throw at them for access, is that possible with your setup?
#
xmpp-social
[ajordan] In particular the OAuth URL problem that got filed yesterday I caught a while ago
#
puckipedia
cwebber2: yeah
#
cwebber2
puckipedia: jawesome
#
puckipedia
lemme see, I just pushed the newest code to it
#
puckipedia
https://puckipedia.com/auth/register you can register here, just enter whatever, it has to be valid
#
puckipedia
woops I pressed ^C
#
puckipedia
once you have an account, you can go to https://puckipedia.com/settings and use 'new' to create an actor. Then to skip the whole OAuth2 flow go to https://puckipedia.com/auth/actor and you can get a token for a specific actor
#
puckipedia
this flow will be massively improved, but it works for now :P
#
puckipedia
and there you go :)
#
cwebber2
puckipedia: cool, thanks :)
#
puckipedia
from /settings you can make multiple actors, btw
#
puckipedia
you do need separate OAuth2 tokens for them
#
puckipedia
(they're user+actor bound)
#
cwebber2
cool, registered
#
cwebber2
I'll try posting some content :)
#
puckipedia
follows access log carefully
#
cwebber2
thanks puckipedia, it'll be nice to see if the stuff I'm doing works outside of my own tests
#
cwebber2
wuh-oh, I wonder what's causing this
#
cwebber2
ERROR: Throw to key `gnutls-error' with args `(#<gnutls-error-enum The TLS connection was non-properly terminated.> read_from_session_record_port)'.
#
cwebber2
guess I'd better find out
#
puckipedia
my VPS provider isn't awesome, that might just be the network connection randomly dropping
#
cwebber2
it may be also something on my end
#
puckipedia
ehm, lemme rebuild and switch over to debug, because for some reason you just got like four 404's after each other
#
cwebber2
I recently helped in contributing https support to guile, which surprisingly didn't have support out of the box, but I was mostly porting someone else's code
#
puckipedia
cwebber2: I'm seeing POST http://puckipedia.com/social/users/cwebber/outbox text/plain;charset=utf-8 (Content-Length: 75)
#
puckipedia
on my end
#
puckipedia
... did that url just get archived by web archive
#
cwebber2
lol it went into the irc logs probably
#
cwebber2
the error was fixed in guile recently
#
cwebber2
not in the version I'm running, yet ;p
#
puckipedia
that 404 is because the POST is in unknown format, and then it fails the posting
#
cwebber2
okay, I've fixed the part that's on my end
#
cwebber2
but let me keep hacking
#
puckipedia
yeah, this one won't close down, it's on my server
#
cwebber2
puckipedia: the gnutls error was on my end fwiw
#
puckipedia
ah
#
cwebber2
but! it's something I know now I have to patch locally
#
cwebber2
it looks like I'm hitting some other issues, but they're different... looking into it
#
cwebber2
puckipedia: so one assumption I just hit that you don't have on your side
#
cwebber2
I have a streams interface to the collections
#
cwebber2
when I retrieve my outbox I see:
#
cwebber2
puckipedia: I confused my streams interface, because it says "oh, if I see a uri for the first object, retrieve that, but if it's an object, we can use that as the first page!"
#
cwebber2
nope :)
#
cwebber2
I'll change my code to not make that assumption.
#
puckipedia
well, it's a page, but it's empty
#
puckipedia
if it isn't empty, see e.g. https://puckipedia.com/social/outbox.json
#
cwebber2
you don't include items/orderedItems when there's nothing there
#
cwebber2
got it :)
#
puckipedia
yeah
#
cwebber2
fixed that one...
#
puckipedia
side effect of how I implement AS2 object to JSON serialization
#
cwebber2
puckipedia: cool, nah it's good to see where my assumptions are just based off of my implementation
#
cwebber2
that's interesting
#
cwebber2
puckipedia: I think I'm getting a 404 when trying to post to my outbox
#
puckipedia
text/plain;charset=utf-8 again
#
cwebber2
did I not set the headers
#
puckipedia
I should probably add a fallback for that situation
#
cwebber2
puckipedia: still getting a 404 and afaict I should have fixed that one
#
cwebber2
oh wait
#
puckipedia
I just restarted the server
#
puckipedia
should help you debug
#
puckipedia
... okay what
#
puckipedia
that was not supposed to happen?
#
puckipedia
cwebber2: I am bad at code, one sec
#
puckipedia
it's the charset it's choking on
#
cwebber2
puckipedia: I'm obviously having my own issues
#
cwebber2
good to test our assumptions against each other :)
#
puckipedia
yeah
#
puckipedia
should be fixed now btw
#
puckipedia
(issue was that I still did a string compare on the Content-Type instead of doing proper mime type parsing)
#
puckipedia
that's for the object :P
#
puckipedia
the activity is without the slug :P nice evil configurable hack
#
cwebber2
ttps://puckipedia.com/social/cwebber/status/5ddf162c
#
cwebber2
puckipedia: nice, I'm guessing I can't see it because I didn't make it public access :)
#
cwebber2
let me test that theory.
#
puckipedia
correct!
#
puckipedia
hacks DB, gives themself access to cwebber2's test account
#
xmpp-social
[ajordan] Lollll
#
xmpp-social
[ajordan] BOFH makes an appearance ;)
#
cwebber2
puckipedia++
#
Loqi
puckipedia has 6 karma
#
cwebber2
kroeg++
#
Loqi
kroeg has 1 karma
#
puckipedia
"Unknown mime type application/x-www-form-urlencoded" oh right now I can't use any non-activitypub features
#
cwebber2
hey interesting
#
cwebber2
I just fetched my outbox both authed and non-authed
#
cwebber2
and I see that when non-authed, the non-public object doesn't show up
#
cwebber2
but it is included in the totalItems!
#
cwebber2
that seems like reasonable behavior
#
puckipedia
well, I'm not sure what to do with totalItems. it can be pretty expensive to calculate (need to go over each item, calculate audience, then see if you can view it)
#
cwebber2
yeah I think it's fine
#
puckipedia
I guess totalItems is more of an indicator
#
cwebber2
I guess I could possibly tell if someone was still posting even if I wasn't getting their messages ;)
#
puckipedia
like, "posted N posts"
#
cwebber2
but that's the worst you can do knowing about that
#
cwebber2
puckipedia: that's how I think of it.
#
puckipedia
actually, twitter leaks that too
#
puckipedia
private accounts show amount of tweets
#
puckipedia
I could filter public vs non-public prertty fast though
#
cwebber2
puckipedia: I think it's no big deal, up to you. but yeah, anyway, this is good.
#
cwebber2
time to test submitting some other types :)
#
puckipedia
I don't do any special processing
#
puckipedia
oh and I kinda don't do html yet :D:
#
cwebber2
that's one of the objects I test against locally
#
puckipedia
heh, I don't flatten Link types because url isn't really an id type
#
cwebber2
here's how I render them:
#
cwebber2
that's the latter one
#
puckipedia
I don't really have any kind of rendering except for Note yet
#
cwebber2
http://dustycloud.org/tmp/pubstrate-ellen-terry.png here's how I render that image currently
#
cwebber2
puckipedia: mind if I link to https://puckipedia.com/social/cwebber/status/ee896ef5 on my microblog accounts?
#
puckipedia
go ahead
#
puckipedia
oh and check your /inbox :P
#
puckipedia
hm, GNU social is having a bit more trouble with it
#
puckipedia
... I broke HEAD, didn't I
#
puckipedia
cwebber2: btw, if a tweet starts with an @, it only shows up if they follow both you and me
#
cwebber2
ah oops
#
cwebber2
puckipedia: I thought htey changed that
#
cwebber2
I'll repost it
#
cwebber2
puckipedia: reposted
#
cwebber2
puckipedia: I'm gonna take a break for a bit. Thanks for your work on Kroeg :)
#
cwebber2
super awesome.
#
puckipedia
no problem, thanks for being so awesome!
#
puckipedia
a ton of Friendica instances are picking up on the link
#
puckipedia
hm. woops. I think there's a bug somewhere. you can't read your own inbox :D:
#
puckipedia
let's go to bed now though. 01:01 hee
#
puckipedia
here*
timbl joined the channel