#indiewebcamp 2012-08-20

2012-08-20 UTC
#
@aaronpk
Alright, if all goes well, this message will be posted to my site and syndicated to Twitter... #indieweb http://t.co/g3I128q7
#
@aaronpk
Alright, if all goes well, this message will be posted to my site and syndicated to Twitter... #indieweb http://t.co/yKZdcphv
zztr, spinnerin and tantek joined the channel
#
tantek
aaronpk - your note post permalinks are looking pretty sweet
#
tantek
so here's a question about the tweet button you have e.g. on http://aaronparecki.com/2012/232/note/2
#
aaronpk
why thank you sir
#
tantek
I tried clicking it and it gave me a Tweet box with -45 characters left (45 characters too many)
#
aaronpk
oh man. hadn't thought of that.
#
tantek
should notes really have "Tweet" buttons? or should they have "Retweet" buttons (which just retweet the tweet that you sent out originally as the copy of the note)
spinnerin joined the channel
#
tantek
I'm leaning toward the latter
#
tantek
actually the whole "what web actions belong with what post type" design question has been vexing me
#
aaronpk
hm yes for notes it seems like it should be a "retweet"
#
tantek
that's my thinking
#
tantek
but then it also feel too Twitter specific
#
tantek
(nevermind about the UI noise / and cookie tracking / and performance slowdown of including the FB IFRAMEs)
#
tantek
BTW - not saying I have a good answer figured out
#
tantek
just figured I'd share with you the questions that I've been coming up with
#
tantek
perhaps you'll figure something out that makes sense
#
aaronpk
I think the twitter button has a way to change the suggested text
#
tantek
it does
#
tantek
but there is a "popularity" and "original copy" benefit of using Retweet instead of Tweet
#
aaronpk
is there a retweet button?
#
tantek
why yes, there is a retweet Tweet Action :)
#
@aaronpk
Jeez, you'd think twitter could do a little targeting with their ads. They have one of the richest datasets on me! http://t.co/lAzpZD2j
#
tantek
I'm waiting for Hormel to start posting promoted tweets about Spam, then the circle will be complete.
tantek joined the channel
#
tantek
in all this discussion on how to post peer to peer comments, assuming we solve (have solved?) the first level of comments on posts, at some point we may want to consider how to solve the comments on comments on posts threading thing.
#
tantek
i.e. how does one pingback not only a post, but a specific comment on a post?
#
tantek
or if you pingback to a post on someone's blog, which is of object-type "comment", then how do we propagate that pingback up to the original post as being re: a specific other comment on that post?
#
tantek
here is a real world example of comments on comments, which may have some (humor) value at least: http://www.cracked.com/blog/5-reasons-san-francisco-worst-awesome-city-in-america_p2/ (scroll down)
#
aaronpk
it seems at least at first glance that if comments have #ids, then you could send a pingback of example.com/page#comment-id
spinnerin joined the channel
#
tantek
aaronpk - I like
#
tantek
now the question is whether any blog software pingback endpoints pay attention to the fragid and use it as such
#
tantek
which begs another question, since the comment is being created originally on another site and being syndicated into (onto?) the original post via pingback, who creates the "comment-id" in the subsequent markup? the blog software hosting the original post?
#
aaronpk
oh good point... technically the content is from the author's site
#
tantek
but the comment-id is local to the post
#
tantek
the comment-id could be automatically generated from the permalink of the comment on the commenter's own site!
#
tantek
e.g. if aaronparecki.com/2012/232/note/2 was a comment, then as a local id on the post itself, it could be: id="comment-aaronparecki-com-2012-232-note-2"
#
aaronpk
shouldn't the ping be sent to the author's site tho?
#
aaronpk
author of the comment*
#
tantek
oh no
#
tantek
if you're writing the comment, then the metaweblog *post* is sent to your site, which then sends a pingback to the original post's site with the permalink of your comment post.
#
aaronpk
ok, and then say you reply to my comment. shouldn't your reply ping my site since I commented?
#
tantek
then the original post's site creates a local representation of that comment, inside an <article id="…"> element where the id is as described above, so that someone who wants to comment on *your* comment, would pingback per the pingback URL with fragid you suggested.
#
tantek
right, there are two pingbacks that must occur on comments on comments
#
tantek
the first, is as you say, the comment on the comment must pingback the comment post.
#
aaronpk
two pingbacks is the key
#
tantek
then, the question is which/who does the 2nd pingback, and I think the answer is both
#
tantek
just for robustness
#
aaronpk
so the source URL needs to be noted when the copy of the comment is brought in
#
tantek
so your site, with the comment, passes along a pingback to the permalink to your comment on the original post
#
tantek
and the comment on comment site also sends a direct pingback to the original post with pingback URL with fragid
#
tantek
by "source URL" if you mean "where the pingback came from" then yes, and always. technically that should be the actual permalink for the comment
#
tantek
rather than the local fragid
#
tantek
the local fragid should only be used for comment threading
#
tantek
btw, to pop-up a level
#
tantek
the "comment on a post is transparently a post on your own blog" UI/approach is what Tumblr implements already
#
tantek
so we know it can "work" in terms of people using it and getting it
#
tantek
so let's look at Tumblr as the bar to meet for the UX of peer-to-peer comment posting on blog posts.
#
aaronpk
that's a great idea
#
aaronpk
oh, so neat hack to get the tweet button working (that's what i'm poking at right now)
#
aaronpk
turns out if you don't specify a url, it will include the URL of the current page, so then it makes the length spill over
#
aaronpk
so I have to set url="." (an invalid URL) which causes their javascript to not put a URL in the tweet
#
aaronpk
and to get the count right, I set counturl="http://example.com/xxx"
#
tantek
seems a bit hacky
#
tantek
for the tweet button question, I decided to *only* put a tweet button on my articles for now, not my notes. I figured when in doubt, go with less UI until you have a good reason (use-case) to do otherwise.
#
aaronpk
very, but if I don't, then they put in the page URL
#
aaronpk
that's not a bad approach. I did get the "retweet" one working great if my post has a tweet id
#
tantek
i'm still leaning towards note posts having more of an RT button than a Tweet button
#
tantek
nice!
#
aaronpk
but if I don't have a tweet ID stored, then it falls back to a regular tweet button
#
tantek
yeah, my HTML5+hAtom storage keeps track of the syndicated out tweet id for each note
#
tantek
so it would be relatively easy to display an RT tweet action for my notes that have been tweeted out
#
tantek
because the lack of a tweet means that either a) I haven't officially "published" the note yet (including sending PuSH notification) or b) when I published the note, the twitter API had a failure (maybe Twitter was down)
#
tantek
which means it will get sent out when twitter is up again
#
tantek
but if twitter is down, then there is no point in showing a tweet button anyway
#
tantek
so I decided, no tweet id, means don't show any kind of tweet action button
#
aaronpk
makes sense
#
tantek
(assume no tweet id means either a) I haven't published it so why would I want anyone to tweet it, or if b) it's because twitter is down, then any tweet action button would be useless anyway
#
tantek
is behind on publishing several mostly written "web actions for the indie web" blog posts.
#
tantek
so yes, at an even higher level, congrats aaronpk on getting POSSE setup on your domain! http://aaronparecki.com/2012/232/note/1
#
tantek
POSSE ACHIEVEMENT UNLOCKED
#
@aaronpk
Alright, if all goes well, this message will be posted to my site and syndicated to Twitter... #indieweb http://t.co/g3I128q7
#
aaronpk
thanks! I'm happy to have that in place now!
#
tantek
also cool that our newbase60 epoch days are sync'd up
#
tantek
question, why "n" for note instead of "t" for text ?
#
tantek
e.g. n4KY1 vs. t4KY1
#
aaronpk
I liked the way "note" and "article" are nouns so both can be pluralized and sound more natural in speech
#
tantek
(I liked 't' for text in particular because 't' also helped me think "tweet")
#
tantek
people say texts :)
#
tantek
both as a plural noun and as a verb
#
aaronpk
so the header bar says "Articles" and "Notes", and the URLs match as well
#
aaronpk
when I hear texts I think SMSs
#
tantek
right - they're the same data type
#
tantek
tweets were based on SMS ;)
#
tantek
you could make the header "Text notes" if you don't like calling them "texts"
#
tantek
(I agree that "texts" seems to imply a specific medium precision of SMS)
#
tantek
your approach with the different columns is interesting
#
tantek
and avoids the challenge of creating a hybrid feed style that has both text notes and articles
#
aaronpk
yes, I thought about that for a while. the one drawback is that it ends up being two separate hfeeds.
#
tantek
seriously that was a challenge to do in terms of whitespace, subtle separators, etc.
#
aaronpk
yea I bet
#
tantek
you could wrap them in one hfeed
#
tantek
and just have two collections of hentrys
#
aaronpk
the posts would be out of order then, does that matter?
#
tantek
the "order" in a feed shouldn't matter, since anyone who cares about "order" should be resorting according to whatever order they want (e.g. published date, updated date etc.)
#
tantek
that's the consumer's problem
#
tantek
not yours (the generator)
#
aaronpk
ok, wasn't sure. I wonder how most RSS readers and PuSH hubs handle it tho.
#
aaronpk
alright -- just launched updated tweet buttons for articles and notes! and if there is no tweet-id, you get a regular tweet button but it auto-shortens the text and includes the link, see: http://aaronparecki.com/2012/231/note/5
josephboyle joined the channel
#
tantek
btw - create a private test twitter account ;)
#
tantek
hmm - so why isn't there a tweet id in that case?
#
tantek
that tweet claims "syndicating to Twitter"
#
tantek
er, that *note* claims "syndicating to Twitter" :)
#
tantek
which if there's no tweet id, then it means it wasn't syndicated to Twitter, or am I missing something?
#
tantek
hmm - just noticed this: <span data-latitude="45.522309" data-longitude="-122.681277" class="geo">
#
tantek
Portland, OR, US </span>
#
tantek
that's not quite a geo microformat ;)
davida, tantek, BjornW, xtof_fr, tilgovi, barnabywalters, danbri, stereoket and lmorchard joined the channel
#
aaronpk
tantek: that syndication attempt failed :)
tantek_ joined the channel
#
aaronpk
also good catch with the geo span, I don't actually know where I got that markup from.
stereoket, davida and danbri joined the channel
#
aaronpk
!tell tantek I went with the proposed geo microformat from here: http://microformats.org/wiki/geo-brainstorming since I wanted the display version to be "Portland, OR" and not the coordinates
#
Loqi
Ok, I'll tell him that when I see him next
spinnerin, davida, xtof_fr, danbri and tantek joined the channel
#
Loqi
tantek: aaronpk left you a message 1 hour, 17 minutes ago: I went with the proposed geo microformat from here: http://microformats.org/wiki/geo-brainstorming since I wanted the display version to be "Portland, OR" and not the coordinates
#
tantek
someone proposed using data-* attributes with microformats? that's expressly forbidden by the HTML5 spec, and in our FAQ on the matter as well.
#
aaronpk
I don't know if it was from a microformats reference, it may have been from some other reference I found
#
tantek
re-reading the brainstorming page now
#
tantek
probably needs some updates, e.g. we have more strict use of the abbr element now
#
aaronpk
I thought data-* attributes were part of html5
#
tantek
they are but they're not for data exchange / publishing
#
tantek
this is a common error
#
tantek
data-* attributes are storage for private (to the page) data, for use with server script libraries etc.
#
tantek
not for other sites/tools to consume
#
aaronpk
got it, that makes sense
#
tantek
short version: since you're displaying a structured address "Portland, OR, US", you should mark that up with the "adr" microformat
#
aaronpk
I don't always know if it's going to be a structured address, the text I get there is technically freeform
#
tantek
the lat long - is it precise, like exactly where you tweeted from, or is it just the center of "Portland, OR, US" ?
#
aaronpk
it's precise
#
tantek
but you don't want to provide a UI for the precise location then...
#
aaronpk
not at the moment. I need to put more thought into a UI for it.
#
tantek
when you say the "the text you get there is free form" - where are you getting that "Portland, OR, US" text from?
#
tantek
I guess at a minimum I would expect some sort of "map point" icon that links to a map of the precise location
#
aaronpk
if it's an imported tweet, it comes from their JSON data. if it's genereated from my site it's from my reverse geocoding API.
#
aaronpk
I need to add some sort of bounds/span/zoom level before I can show a map
#
tantek
ah, or you could start with what twitter does
#
tantek
which is to hyperlink the structured address text
#
tantek
to a map
#
aaronpk
that's probably a good start
#
tantek
when in doubt, just copy Twitter's UI and then improve upon it :)
#
aaronpk
works for me
#
tantek
except there's a problem with the resulting map
#
tantek
took me a sec to figure it out by hacking the URL
#
tantek
the (a) red map point is on "Portland", not on your lat/long
#
aaronpk
you have to put the lat/lng in the q= parameter, and then it shows a green dot
#
tantek
a-ha!
#
tantek
what's the complete better URL? and why does Twitter not use it?
#
aaronpk
I don't know how to get Portland, OR in the search as well as the lat/lng, but: https://maps.google.com/maps?q=45.543205%2C-122.65441&z=13
josephboyle1 joined the channel
#
tantek
interesting - now it's putting the (A) red map point on "Irvington", and a green down arrow presumably on the actual latlong
#
tantek
and there's a dashed outlined pink background polygon around Irvington
#
tantek
what's making it do that?
#
aaronpk
they started doing that automatically recently
#
tantek
but it's confusing - which is the actual point? the green arrow or the red (A) map point?
#
aaronpk
it's very confusing, I don't like it
#
tantek
or is it somewhere in the polygon?
#
aaronpk
the green one is the actual point, but it always takes me a few seconds to remember that
#
tantek
hoping this is just a temporary gmaps UI iteration/test
#
tantek
because it kind of sucks for clarity
#
aaronpk
I say "recently" but I really mean several months
#
aaronpk
interesting, at zoom level 15 it doesn't do it
#
aaronpk
ah it still does the red marker but doesn't do the neighborhood polygon https://maps.google.com/maps?q=45.543205%2C-122.65441&z=15
#
aaronpk
it reverse geocodes to an address in that case
#
aaronpk
check out this tweet, it links to the actual point: https://twitter.com/jkprime/status/233778329340223488
#
tantek
interesting - so always use zoom level 15?
#
tantek
this is a good thread: (originally noticed via an instagram screenshot by @dens) https://twitter.com/anildash/status/237541463192399872
#
@anildash
@jkottke There is still good in him. I can feel it.
#
tantek
aaronpk - what's odd about that jkprime permalink is that the "minimap" embed still makes it look like it's from the middle of the word "Portland" and then implies something about the polygon is special.
#
tantek
Tufte would be ripping these map displays to shreds
#
aaronpk
yea I agree. you can't put the user icon pointing to a specific part of the map unless you're actually talking about that point specifically.
#
tantek
ok so let's get back to solvable problems
#
tantek
geo / adr markup
#
tantek
is there any kind of query parameter convention that mapping sites use for lat long?
#
tantek
does everyone just imitate gmaps?
#
tantek
or does Yahoo maps, bing maps, mapquest all have their own query params?
#
tantek
intersting, this works (without an explicit zoom) : https://maps.google.com/maps?q=37.386013%2C-122.082932
#
aaronpk
from what i've seen they all do it differently
#
aaronpk
tantek: I think no zoom level implies something like 15 or 16
#
tantek
I'm wondering if they all accept q=lat,long though
#
tantek
if by now they've all converged
#
tantek
at least for compatibility reasons, with the "q" param
#
tantek
if so, it wouldn't be unreasonable to spec parsing/inspection of such URLs for the lat/long
#
tantek
and in microformats2, we could even do so at least halfway by using a u-geo property, which would indicate to a microformats2 parser to get the value of the geo property from the URL of the element, e.g. the href on an <a> element.
#
tantek
then interpreting that URL becomes a client specific task
#
tantek
which is perhaps not too much to ask
#
tantek
maybe I'll write a CASSIS function to scrape lat/long from gmaps, ymaps, bmaps, mapquest URLs
#
tantek
hmmm...
#
tantek
has lots of abbr updating to do on that geo-brainstorming page :/
barnabywalters joined the channel
#
barnabywalters
___NO WAY___
#
barnabywalters
finally managed to get #statusnet to subscribe to me!
#
barnabywalters
achievement unlocked!
#
aaronpk
congrats!
stereoket joined the channel
#
aaronpk
would you add some notes here on what it took? http://indiewebcamp.com/How_to_set_up_your_realtime_feed
#
barnabywalters
It also managed much better profile discovery this time: http://public.waterpigs.co.uk/images/statusnet-success.png
josephboyle joined the channel
#
barnabywalters
aaronpk: sure, will do
#
barnabywalters
next up: Pingbacks, Salmon and a webDAV interface for creating/editing articles
#
aaronpk
webdav? interesting choice
#
tantek
congrats barnabywalters!
#
barnabywalters
yep, SabreDAV is a php library for creating webDAV shares with arbitrary backends
#
barnabywalters
tantek: thanks!
#
tantek
barnabywalters, why not metaweblog API instead of WebDAV?
#
tantek
by supporting metaweblog API, you automatically get the ability to use the WordPress iOS client to publish to your site!
#
tantek
(which is a pretty nice blogging client)
#
aaronpk
yes, tantek and I have been talking about the metaweblog API over the last couple days
#
barnabywalters
tantek: I plan to add that too, but want to be able to mount my articles as a virtual filesystem first
#
tantek
I know it may be "old school", but metaweblog API is fairly well supported by various blogging clients (some open source, like the WordPress iOS client)
#
barnabywalters
it'll make backups a lot easier
#
tantek
uh ok
#
tantek
I just use scp :D
#
tantek
no need to do any virtual filesystem mounting
#
aaronpk
yea my backups are via scp, and also my site is a git repo so that's another backup
#
barnabywalters
yep, me too :) But this is even more automatic. And if I mount it to my dropbox folder, I get yet more backups that way too
#
barnabywalters
tantek: RE MWB being old school: sure — I'm not too opposed to XML-based systems, especially when they're widely implemented
#
barnabywalters
e.g. I currently accept pingbacks and intend to treat them equal to salmon slaps for both tx and rx purposes
#
barnabywalters
salmon is also mainly XML — I don't think anyone uses the JSON serialisation
#
tantek
interesting (re: salmon / XML)
#
barnabywalters
really, 'salmon' is just a discovery protocol
#
barnabywalters
magic signatures does the bulk of the work
#
tantek
ok, have started updating geo-brainstorming per our discussion aaronpk
#
barnabywalters
it's essentially xmlrpc with public key verification
#
tantek
that's the simplest summary of salmon I've heard to date
#
barnabywalters
tantek: the official site is so obfusticated. once I've implemented it I plan on writing a proper explanation, implementation details and tutorial
#
barnabywalters
otherwise only hard-core fsw people will ever bother implementing it :|
#
tantek
barnabywalters - I gave up on trying to understand the spec and all the things it depends on.
#
tantek
a simplified explanation would be great
#
tantek
perhaps salmon can be saved
#
waterpigs.co.uk
edited /How_to_set_up_your_realtime_feed (+261) "/* Entries */ Emphasised need for well-formed XML"
(view diff)
#
barnabywalters
tantek: I hope so. That salmon is verifiable saves a whole load of faffing around involved with pingback
#
barnabywalters
I am hesitant to do any explaining before I've implemented salmon Tx and Rx, but as soon as I have I'll post a guide
#
barnabywalters
but essentially salmon =
#
barnabywalters
1. User receives salmon slap
#
barnabywalters
2. User uses webfinger to look up originating public key
#
barnabywalters
3. User verifies data with public key, it checks out as valid
#
barnabywalters
4. Process whatever the data is e.g. reply, mention, follow notification/whatever
#
barnabywalters
where "user" = salmon endpoint
#
tantek
actually would be interesting to see your explaining *while* you're implementing
#
tantek
so that at each step, you capture how you think it works
#
tantek
and then if anything doesn't work that way, you can move that section to an FAQ about possible misconceptions
#
aaronpk
oh, so it's really just signed requests?
#
tantek
you're essentially charting the path to understanding, which includes documenting the pitfalls along the way.
#
barnabywalters
tantek: that is a brilliant idea. I will do that.
#
tantek
great - looking forward to reading the play-by-play barnabywalters :)
#
tantek
off to lunch - bbiab
#
barnabywalters
aaronpk: pretty much, yes. Signed requests, a regular format and discovery protocol
#
barnabywalters
that is the bulk of the spec
#
barnabywalters
the salmon spec just defines discovery and flow
#
barnabywalters
magic sigs and webfinger do the actual work
#
aaronpk
interesting
#
aaronpk
doesn't really solve the spam problem tho, since it seems like anyone can sign a request easily
#
barnabywalters
yep, but if the request is signed by someone on your whitelist, you don't have to make a request to their site each time you get a notification
#
barnabywalters
just once, to get their public key
#
aaronpk
that's true
#
aaronpk
lunch, back in a bit
danbri, josephboyle1, brennannovak, tilgovi, stereoket and tantek joined the channel
#
tantek
barnabywalters - does salmon depend on webfinger, or is it an optional pluggable component?
#
tantek
!tell barnabywalters does salmon depend on webfinger, or is it an optional pluggable component? or can we use indieauth instead to make it URL based identity/discovery, rather than using .well-known and email addresses?
#
Loqi
Ok, I'll tell them that when I see them next
mkowens_ joined the channel
#
tantek
aaronpk, barnabywalters (in absentia), I wonder if for step 2. that barnaby listed, we could use indieauth + hCard "key" property instead
#
aaronpk
ah that would be nicer!
#
tantek
if we use indieauth/relmeauth as our identity component, thus URL is your identity
#
tantek
then we pull the representative hCard from that URL (as we do anyway for avatar, name, email, whatever else)
#
tantek
and we can grab the "key" property from that hCard for the public key
#
tantek
some docs on that property here:
#
tantek
that has a lot more than is needed for generic public keys
#
tantek
however by publishing an hCard with public keys in the same way as documented in the examples there, it enables use of hCard public key for both Salmon, and potentially WebID
#
tantek
in that regard, the W3C's WebID could build upon existing relmeauth + hCard key publishing practices
#
tantek
bbiab
tantek and brennannovak joined the channel