2013-05-26 UTC
morrocco_mole, tantek and scor joined the channel
# 01:56 tantek aaronpk, barnabywalters - how are you storing (are you?) the images of authors of posts you reply to? or are you hotlinking to their images on the web?
# 01:56 aaronpk right now I'm not displaying images in the reply context, only text
# 01:59 tantek !tell barnabywalters how are you storing (are you?) the images of authors of posts you reply to? or are you hotlinking to their images on the web? (for/when displaying reply contexts)
# 02:00 Loqi Ok, I'll tell him that when I see him next
# 02:01 tantek aaronpk - I'm seeing author images on your replies!
# 02:01 aaronpk yea I'm hotlinking to whatever the mf2 parser returns
# 02:01 aaronpk I think I might switch that to the archive format I use for the HTML though, and link to my own site
# 02:02 tantek or we could mirror the author photos to i-a as well
# 02:03 tantek would have the effect of showing someone's old image, as of when you replied to them, rather than their "latest"
# 02:03 tantek presumably those URLs can break when they change their twitter image for example.
# 02:03 tantek so hotlinking to an img src URL that you have in your JSON storage could be fragile
# 02:04 aaronpk yes, that's what I meant, but until we get that rolling I can just use my local version
# 02:04 aaronpk no you're not at all, it's already been a problem
# 02:04 tantek oh - someone you replied to changed their avatar?
# 02:05 aaronpk well, on the indiewebcamp wiki the two UK sponsor logos already disappeared
# 02:05 tantek um, I think you can give adactio a hard time about that
# 02:06 tantek I just went through and checked everyone I've ever posted an "in-reply-to:" in the plain text content of my past notes to see what the quality of data is that I'd get by accessing their Twitter profiles
# 02:07 tantek (I've only posted both real replies, and "fake" note replies (with the in-reply-to: in the text of the note, to tweets)
# 02:07 aaronpk oh in one of my replies, the person changed his username which really messed things up
# 02:09 aaronpk so yea, I do think I would like to capture as much as possible about the original thing I was replying to
# 02:10 tantek turns out I can always count on getting an author avatar, and almost always an author full name (in all but 6 cases)
# 02:10 aaronpk well i'm not really using code that knows about twitter
# 02:10 aaronpk and when they change their username, the original URL is gone
# 02:10 tantek you *can* depend on the tweet permalinks with old usernames - the redirects work
# 02:11 aaronpk well in this specific case, he also changed his profile to private
# 02:11 tantek so well that you can just use "_" for the username - ALWAYS
# 02:13 tantek so original post author switches their permalink to private
# 02:13 aaronpk yea... we're going to have to address this eventually
# 02:13 tantek of course you can always cache / display what you had as of the time you posted your reply
# 02:14 aaronpk depends on their motivation for making their account private
# 02:17 tantek what if, when you made your account private on Twitter, it let you choose to only make *future* posts private, and leave past posts public?
# 02:17 tantek I have a feeling a lot of folks would opt for that
# 02:17 tantek similarly, if you made your private Twitter account public, if it let you keep your old tweets private, I bet people would choose that also
# 02:18 tantek so here's my hypothesis - that's the behavior people actually want / intend
# 02:18 aaronpk at that point you could even have the option to make individual tweets public/private
# 02:18 tantek so if we accept that hypothesis of user model/expectations, then it is reasonable to cache and display someone's old public tweets
# 02:19 aaronpk something I always thought was awkward about twitter... if my tweets are public and I reply to someone whose tweets are private, my tweet is of course public, but nobody can see the context
# 02:19 tantek in fact, to further that reasonable assertion, Twitter's own "embed" code/markup includes a <blockquote> of the entirety of the tweet content, which you then paste into your blog post etc.
# 02:19 tantek so *Twitter* has set an expectation that once a public post, if someone embeds it somewhere else, then it can stay public there forever
# 02:20 tantek therefore, it is reasonable for us to follow the same user expectations
# 02:20 tantek because we should always ask with these kinds of human issues, about not only *can* we do something, but *should* we
# 02:23 tantek ok, so we can store post content, author name, author photo URL as of the time of reply
# 02:24 tantek caching the image at the photo URL feels a bit more dicey
# 02:24 aaronpk why's that? in case the photo at that URL changes?
# 02:28 tantek oh it would - would probably get a lot of redundant images if you saved someone's avatar everytime you replied
# 02:29 aaronpk oh right... guess I was thinking it would somehow know the date the photo was modified
# 02:29 tantek well then it wouldn't technically be archiving
# 02:30 tantek so I'm thinking some kind of self-healing heuristic
# 02:31 tantek archive/cache their avatar photo, but don't use it, and just keep hotlinking (which should work better for actual overall browser web cache performance, especially if all hotlink the same images across sites etc.)
# 02:32 tantek then once in a while when a reply is retrieved for display (once a month?), also go check the avatar URL to see if it still returns an image mime type, if so, great
# 02:32 tantek if not (e.g. if it returns a 404 or a text or html result), then flip a switch on that reply post to use the archived/cached avatar instead.
# 02:33 aaronpk the same could also work with the "in-reply-to" URL. if it exists on the web, link directly to it. if it disappears, link to the i-a.github.io version instead!
# 02:41 tantek was it you or barnaby that keeps a whitelist of twitter aliases <-> personal URLs and swaps them out in posts / POSSE copies accordingly?
# 02:41 aaronpk that must be barnaby. I'm not being that clever with it yet
# 02:41 tantek I'm thinking such a whitelist could also keep additional h-card info like given-name, family-name, avatar URL
# 02:41 aaronpk I do have a file with twitter <-> domain mappings
# 02:42 tantek might I suggest you add twitter userid # to that
# 02:42 tantek so you can repair it when someone changes their username
# 02:43 tantek or heck what to do when someone changes their domain!
# 02:43 aaronpk part of the reason we've been able to make so much progress so quickly is because we aren't taking in to acount all of the edge/failure cases yet
# 02:44 tantek so I think the simple answer is, if someone's domain no longer represents them, we simply delete it from the list
# 02:44 tantek manual process, doesn't happen to often, will likely require manual notification from that person anyway
# 02:45 tantek you only use the mapping for new posts right?
# 02:45 tantek hmm - or maybe it ends up in a tombstone list instead
# 02:46 tantek and then any old posts can check that and link to the latest i-a version instead?
# 02:46 aaronpk actually I still use it in articles, when I type @tantek in an article, my renderer changes it to the little h-card with your name,photo and url
# 02:46 tantek sure - but that's just for writing *new* articles
# 02:46 tantek I'm wondering how it impacts the past (if at all)
# 02:46 aaronpk well the renderer renders the markdown on every request (with some minor caching). I don't store the HTML generated in a permanent store
# 02:46 tantek BTW - Twitter embed markup hyperlinks to authors has the same problem with username renamings
# 02:47 tantek what aspect of the identity *do* you store in the markdown
# 02:47 aaronpk for notes, it's whatever I typed in the note, so just @username. for articles, it's @username where I assume I have a mapping in my users.txt file
# 02:48 aaronpk I would consider changing what I store in the markdown though, to an identifier that is more reliable
# 02:50 tantek re: identifier that is more reliable - that's the userid # for Twitter
# 02:50 tantek for domains, we don't really have anything else
# 02:50 tantek does your users.txt have a "date of creation" for each entry? so you know from when you've been using the mapping?
# 02:51 tantek (historically it might be helpful if we know from what date to what date a domain/alias mapping was valid)
# 02:53 tantek ok, so for now the only real world problem we've encountered is the public->private transition
# 02:53 tantek for that problem, simple caching/storage of the info you want to display in the reply context will solve it
# 02:54 tantek and we reasoned our way through why it's ok to do so
# 02:54 tantek the other problems we can punt on for now until they happen
# 02:54 tantek I think it's a good idea to start storing twitter userid #s
# 02:54 tantek in anything that stores twitter usernames (separate from tweet permalinks)
# 02:55 tantek (since tweet permalinks will always redirect to the latest / correct username, short of if the tweet was deleted or made private)
# 02:55 tantek do you manually edit users.txt? or does your code populate it automatically by following someone's twitter profile and seeing what website it links to?
# 02:56 tantek (or vice versa rel=me from their web site to their twitter alias)
# 02:56 aaronpk I usually build the structures first, then use them manually for a while, then automate after I know it's a good plan
# 02:56 tantek oh ok - I'm always imagining you have a bunch of machinery in the works :)
# 03:14 aaronpk interesting. does that fall under the same TOS the regular twitter API does?
# 03:19 aaronpk arg, been dealing with EBS / MySQL all day. I want to do something fun now, heh
# 03:22 aaronpk you were encouraging me not to use the API directly, because of the TOS requires you to display tweets a certain way, and can't include them inline with other content that isn't also tweets
# 03:23 tantek wait so what does barnaby's parser take and return? tweet permalinks, and then … ?
# 03:28 tantek is he parsing/scraping things like userid and name?
# 03:29 aaronpk that's what it gets currently, although we're trying to change it to do that in a separate PHP class, and not have it rely on class name mappings. it will get everything via xpath queries
# 03:35 tantek the challenge with the sketching is I want to sketch presentation for what I feel I can dependably get (in terms of fields like name, photo)
# 03:36 aaronpk i would just look at the html of a tweet URL and assume anything there is fair game
# 03:36 tantek also maybe I'll start with manually caching those properties in a users.txt as well indexed by twitter name, rather than retrieving/parsing them from tweets
tantek joined the channel
# 03:44 tantek changed my mind. users.html with an h-card for everyone I reply to.
# 03:45 tantek with name, url (both domain and twitter profiles), photo (e.g. from twitter), logo (from their own domain if any)
# 03:45 tantek then I just add to that manually for now when I reply to a new person
# 03:49 tantek hmm - no h-card field I know of to store the twitter userid #
# 03:52 tantek ok cool - now I can store all the information about someone I'm replying to in an h-card
# 03:52 aaronpk although that's actually my second account, cause I thought there was no way to change a username so I made a new one
xtof joined the channel
# 04:01 tantek one of the earliest twitter employees, she did support, then led support, then eventually left
# 04:03 tantek hmm - I think I'm going to store all this reply context info manually to begin with
# 04:03 tantek just to bootstrap figuring out the presentation/design
# 04:04 tantek and then worry about automating the back-end pieces later
# 04:05 tantek might be some work to figure out where to include barnaby's parser in my posting code flow to get reply context info
# 04:06 tantek and then I can use what I get from to automatically put into storage so I don't have to do it manually
# 04:06 aaronpk yea. mine does it lazily when the reply is displayed
# 04:07 tantek see I'm thinking as part of my posting UI, assuming I paste in what URL I'm replying to, that it goes out and AJAXes in all the reply context info via my server and shows it as part of my reply preview
# 04:07 aaronpk but then you'll also have to write a script to fill in the history of everything up to this point
# 04:07 tantek and when I hit "post", it saves exactly what I was looking at
# 04:08 tantek including importing all my old tweets and such
# 04:09 aaronpk yea, that's the nice thing about doing it at display time, I imported all my old tweets a long time ago, and I don't really have to worry about importing the reply context now. As google crawls around my site, it gets pulled in automatically!
scor joined the channel
# 04:26 tantek I'm also thinking that I'll only use the plain text of the original posts I'm replying to for my reply context display
# 04:27 tantek perhaps auto-linked using my auto-linker - but no auto-embedding (for now)
# 04:27 aaronpk I came to the same conclusion, with the possible exception of displaying a single square image on the left.
# 04:27 tantek what about if they linked to a youtube video for example?
# 04:28 tantek I'm thinking only hyperlinks, no embeds, for a v0 of reply context display
# 04:28 aaronpk the square image would be a thumbnail I think is appropriate, so that leaves me room to display the youtube thumbnail for example
# 04:29 tantek so in that mockup - that photo is not linked anywhere in the text (unlike e.g. pic.twitter.com embeds)
# 04:29 tantek so that's a proper photo post that you're replying to
# 04:29 tantek rather than a note that happens to include a photo URL as part of the text
# 04:30 tantek so I'm not worrying about replies to non-notes yet
# 04:30 tantek just going to design for replies to notes, get all that working, then keep iterating
# 04:30 tantek your mockup is ahead of where I'm thinking :)
# 04:31 tantek also in practice I don't seem to @-reply many (if any) posts with photo or video links/embeds
# 04:31 tantek so also a design problem I can kind of blow off for now given my current behavior
# 04:31 tantek if/when my behavior changes, then I can figure out a design iteration then - based on what feels right with real world examples at that point in time
# 04:31 tantek until them, I don't want to design for a theoretical use case for myself
# 04:32 tantek (I'll likely overgeneralize and it won't quite be what I want when I actually start using that use-case)
# 04:32 Loqi tantek meant to say: (I'd likely overgeneralize and it won't quite be what I want when I actually start using that use-case)
# 04:32 tantek oh I can't do multiple edits via Loqi, oh well ;)
# 04:33 aaronpk so I'm starting to work on displaying comments/conversations, like eschnou's posts
# 04:33 aaronpk and wondering how deep in a conversation I should traverse
# 04:33 aaronpk twitter shows replies not just to the permalink you're looking at, but also replies to replies
# 04:34 aaronpk I think we're going to have to make some modifications to webmention in order to support that
# 04:34 tantek as if they're just a single conversation like in IRC
# 04:35 tantek I think showing only direct replies is fine for now
# 04:35 tantek rather than attempting to show a full thread of replies to replies to replies
# 04:35 aaronpk that's an interesting choice given how many previous systems like message boards were big into showing threading of comments
# 04:35 aaronpk twitter flattened everything down into a "conversation" view
# 04:36 tantek there are comments on the event. and there are comments on the comments on the event. and no more depth than that.
# 04:36 tantek that seems to make a lot of sense in practice
# 04:37 tantek ok I've figure out my next sketching / markup brainstorming tasks for reply context info - based on pre-flighting where the info for the reply context display will come from / be stored.
# 04:37 tantek so it's a good time for me to take a break and bounce locations
fmarier joined the channel
# 05:19 Loqi Ok, I'll tell him that when I see him next
# 05:29 aaronpk next up: populating my data store when a webmention comes in
duckbillp, spindrit1 and tantek joined the channel
# 06:37 tantek I think a lot of the ActivityStreams verbs other than post came from such passive/consumptive activities.
andreypopp, catsup, seyz, eschnou and xtof joined the channel
andreypopp, scor, seyz, eschnou and danbri joined the channel
duckbillp, seyz and xtof joined the channel
# 15:02 aaronpk tantek: do you think a pre-indiewebcamp party at a bar is better, or a post-indiewebcamp party?
# 15:06 aaronpk I plan to open a tab at a bar nearby for 2 hours or so and have an open bar
# 15:06 aaronpk if it's before, like friday night, we might be able to recruit more people from osbridge to come
# 15:13 tantek also it will be just after the OSBridge BarCamp day
# 15:33 tantek so you know how every new silo gives you an option to post to Twitter?
# 15:34 tantek I'm thinking of creating a Twitter account just for auto-posting such new silo things that I'm ok with / want to be public - and then I can do something with the URLs later.
# 15:35 tantek a) I'm using these services for convenience right now - despite wanting to do them on my own site
# 15:36 aaronpk that's actually a great idea. the thing that annoys me about Vine right now is you can't get the URL unless you post it somewhere!
# 15:36 tantek b) auto-posting them to Twitter at least extracts (or creates) a URL permalink to their activities which isn't always available otherwise (yes, arronpk, like Vine)
# 15:36 tantek c) I can use this as a learning experience for how to post these types of content as notes
# 15:37 tantek which will hopefully help me more quickly design & build the functionality for my own site
# 15:38 tantek d) this "silos" twitter account would be an interesting overall measure of how much I use which silos to post how often, could run metrics on it to determine what next content type I should implement myself etc.
# 15:40 aaronpk oh nice, the twitter iOS integration lets you select a twitter account when you press the twitter button within an app
# 15:40 aaronpk so as long as they're using the new iOS 5 twitter integration you can still choose whether to post to your main or the silo twitter account
# 15:42 tantek I'm thinking we could even come up with a twitter account naming convention that avoided collisions for this
# 15:43 tantek as kind of a indieweb silo-dependence/usage admittance solidarity thing
# 15:43 tantek like a suffix that no one would choose for their own main account
# 15:46 tantek pkbot does a superset of what I'm talking about
# 15:46 tantek literally just for hooking up silos to twitter
# 15:46 aaronpk actually until that sleep tweet, it was entirely automated, I don't push anything there myself
# 15:47 tantek oh man, twitter's new account sign-up is getting more and more annoying
# 15:48 tantek just exited their signup flow because of that - how dumb
# 15:48 tantek or rather - really goes to show they see themselves as an aggregator UI
# 15:50 aaronpk I clicked "share" on an existing video to try to push it to @pkbot, but instead it was like "tweeted!"
# 15:51 aaronpk ah my vine account is perma-linked to my @aaronpk twitter account. I think I need a new vine account for this to work
# 15:52 aaronpk ah here we go... if I use barnaby's email parsing trick I can selectively publish vine videos to my site by "sharing" via email
# 15:54 tantek I might have the same problem with IG - already hooked up my @t account.
# 15:54 tantek Which actually has some functionality since they implement intelligent cross-post @-name fixups.
# 15:55 tantek so when others reference @tantek on IG, and post to Twitter, IG automatically renames the reference to @t on the Twitter post.
# 15:55 tantek I don't know of any other service that does that
hmans joined the channel
# 15:56 tantek alright I'm going to use the CC open share icon
# 16:02 tantek oops apparently I created my vine account via Twitter sign-in!
# 16:05 tantek ok now going back and tweeting all my vines to @t_silos
# 16:06 tantek Profile, scroll to bottom, …, Share This Post, Twitter
# 16:07 aaronpk I tried disconnecting my twitter account, but it said I couldn't
# 16:08 aaronpk now i can sorta switch between them if I really want to post to @aaronpk twitter some time
# 16:10 tantek you could always just retweet from aaronpk_silos
# 16:10 tantek interesting - when crossposting, the hashtags get abbreviated!
# 16:12 tantek retweeting using @aaronpk when viewing @aaronpk_silos
# 16:12 aaronpk retweeting links from the silo account to my main account
# 16:13 tantek retweeting the silo account's links to your main account
# 16:13 tantek there, didn't need that pesky extra preposition anyway ;)
# 16:16 tantek Darn it, Nike+ is being dumb and auto-picking which Twitter account (of many)
# 16:16 tommorris fixing a major issue with ferocity location stuff before going back to working on new-location
josephboyle joined the channel
# 16:26 tantek since Nike+ is being dumb, going to have to do this circuitously through Path. Nike+ -> Path -> @t_silos
# 16:27 tantek hmm… now I'm not sure Path will autopost to Twitter the posts from Nike+. guess there's only one way to find out - going for a run.
dpk joined the channel
# 16:30 tantek just cross-posted my latest thisismyjam.com post
# 16:31 tantek let's see if it will do it automatically with a new jam
pdurbin joined the channel
# 16:38 tantek and that worked. Vine and Path cross-posting confirmed. Now to go test Nike+ -> Path -> @t_silos. back in a bit.
# 16:39 tommorris my location noodling is going rather well. been writing more tests for it. I want to take the code out of Ferocity and make it a separate open source component
lindas_, brianloveswords and marjolein joined the channel
# 18:02 aaronpk tommorris: do you do any background processing on Ferocity yet?
andreypopp joined the channel
# 18:28 aaronpk interesting... I could make my tag pages also show other peoples' content that contains those tags
lion-_ joined the channel
eschnou and scor joined the channel
# 19:18 tommorris posting to Twitter and sending the PubSubHubbub ping are done on a msg queue
# 19:22 tommorris so I send lat,long into the database and then have an async background job to retrieve reverse geocode from Nominatim
danbri and barnabywalters joined the channel
# 20:28 Loqi barnabywalters: tantek left you a message on 5/25 at 7:00pm: how are you storing (are you?) the images of authors of posts you reply to? or are you hotlinking to their images on the web? (for/when displaying reply contexts)
# 20:34 barnabywalters !tell tantek RE reply context image archival/hotlinking: currently hotlinking, I may set up an archive at some point. profile photo URLs seem really fragile in general (my current one certainly is), we should document some good/bad practises
# 20:34 Loqi Ok, I'll tell him that when I see him next
# 20:43 barnabywalters RE yum: hopefully, I’ve never made them before and have no idea how they’ll turn out:
sandeepshetty joined the channel
# 20:47 barnabywalters I like the datetime URL convention, now I’m moving to flat files and don’t want to try to hack incremental IDs I might use that for my notes
# 20:50 barnabywalters I’m liking this — aaronpk are you planning on automating contributions to it or doing it manually?
# 20:50 barnabywalters sandeepshetty: not that I know of, but I made a prototype of one using php-mf2 in a couple of hours
# 20:51 aaronpk barnabywalters: the idea would be anybody who is verified can push to it automatically. but at first, you'd have to push to your own fork so we can monitor for a while to make sure your code is following all the conventions
# 20:51 barnabywalters perhaps there’s an open source one which is sufficiently well designed that a mf plugin could be made for it
# 20:51 barnabywalters hopefully all those UIs people are designing are not coupled completely to a RSS/ATOM backend
josephboyle, scor and andreypopp joined the channel
# 22:07 marjolein is away: zzzzzzzzzzzz in my hammock
fmarier, andreypopp and scor joined the channel