#dev 2017-11-24

2017-11-24 UTC
#
tantek
looks like Googlebot is now my top bandwidth requester
#
GWG
tantek: Which it? The original user agent talk, or my comment that the URL in question couldn't be interpreted.
#
GWG
aaronpk: But it has an h-feed and a non-nested h-entry. That is a case neither you nor I envisioned.
#
tantek
GWG, technically it has hfeed and hentry (mf1)
#
GWG
tantek: Yes. I know. But should a parser account for improper feeds.
#
tantek
GWG, perhaps a parser client should
#
GWG
That is what I'm looking at.
#
tantek
but an mf2 parser no. it should just follow the mf2 parsing spec
#
tantek
in this case, the h-feed is empty, likely due to a nesting error
#
GWG
tantek: Mine is a client in that scenario.
#
tantek
so that's an easy case to detect and either ignore (easiest), or assume it's an h-feed for the rest of the h-entrys on that page
#
GWG
PHP-MF2 is my parser.
#
tantek
in this case the hfeed adds no information, so it can be safely ignored
#
GWG
I'm trying to figure out how to write the rule.
#
GWG
According to the logic I have, it is being rejected because it is checking for a matching url property.
#
tantek
if the h-feed has no .children, or .children.length==0, then ignore it
#
tantek
as if you never saw it
#
GWG
tantek: My logic is. But if there are multiple items, it checks each item for the presence of a URL property.
#
GWG
The hfeed has one, but the hentry does not.
#
GWG
That is what I'm trying to figure out how to account for without messing up the proper logic.
#
tantek
GWG having a URL is not good enough. if the h-feed has no children you can ignore it before you even check for presence of any URL properties
John___ joined the channel
#
GWG
Okay, Blogspot is also doing the non nested hfeed thing.
snarfed joined the channel
#
snarfed
!tell tantek thanks! i actually fixed it the day after it happened. https://github.com/kylewm/brevity/issues/8 . tldr: when they launched 280 chars, twitter also substantially changed the way they *count* chars. https://twittercommunity.com/t/updating-the-character-limit-and-the-twitter-text-library/96425/1
#
Loqi
Ok, I'll tell them that when I see them next
#
Loqi
snarfed: tantek left you a message 2 hours, 23 minutes ago: ICYMI - looks like I found a bug with Bridgy Publish's support of longer tweets when there's a photo included: https://chat.indieweb.org/dev/2017-11-18/1510993441166000 I couldn't find an issue on this in particular, should I file a new one?
#
Loqi
[snarfed] #8 Recent Twitter char counting changes ?
renem and tantek joined the channel
#
tantek
snarfed wow just wow
#
Loqi
tantek: snarfed left you a message 48 minutes ago: thanks! i actually fixed it the day after it happened. https://github.com/kylewm/brevity/issues/8 . tldr: when they launched 280 chars, twitter also substantially changed the way they *count* chars. https://twittercommunity.com/t/updating-the-character-limit-and-the-twitter-text-library/96425/1
tantek, jjuran and tbbrown joined the channel
#
GWG
Okay. Parsing issues fixed.
tantek, [xavierroy], cweiske, [mrkrndvs], loicm and marcthiele joined the channel
#
cweiske.de
edited /comments (+123) "/* Comments Embeds */ github-comments"
(view diff)
marcthiele, marc_thiele, tantek, John___, davidmead, [khurt], snarfed and jjuran joined the channel
#
@fhsales
Check out today's new blog post! Webmentions: Pingbacks For The Modern Web http://bit.ly/2mZjHNk
(twitter.com/_/status/934097017596465152)
John___ joined the channel
#
GWG
Parts of that article feel rather negative
#
sknebel
seems that they don't believe that off-silo comments are that important, so they are kinda negative on that aspect. or did you mean something else?
jjuran joined the channel
#
GWG
They seem negative on the concept in general
#
Zegnat
I think you may get that feel because it feels a bit like a fluff piece with carefully placed SEO links.
#
Zegnat
E.g. they say “the IndieWeb movement feels something important was lost with the decline of comments and conversations between bloggers and publishers, each with their own domain.” But they never point out what the important thing that was lost is: control of the content, less content loss when websites go down.
#
Zegnat
Probably never were interested in going into anything.
#
aaronpk
also the hyperlinks to their hosting solutions
#
aaronpk
doesn't seem super negative to me overall tho
marcthiele, snarfed and davidmead joined the channel
#
Zegnat
Yep, not negative, just ... shallow? It isn’t really an article that explains any of the tech. It is just a post. I guess a way to keep your corporate blog going?
davidmead joined the channel
#
Zegnat
Interesting that an escort firm can write a better blog post about Webmentions than a hosting company ;)
#
aaronpk
grantcodes: does this workflow for paging through a timeline make sense to you? https://indieweb.org/Microsub-spec#Example_Paging_Workflow
#
GWG
Zegnat: Leads to some great Indieweb pickup lines, doesn't it?
davidmead joined the channel
#
aaronparecki.com
edited /Microsub-spec (+191) "/* Example Paging Workflow */"
(view diff)
[miklb], John___ and KartikPrabhu joined the channel
#
aaronparecki.com
edited /Microsub-spec (+497) "/* Paging */"
(view diff)
#
aaronpk
tests++
#
Loqi
tests has 4 karma in this channel (13 overall)
#
aaronpk
GWG: just noticed your checkins have the foursquare URL as your u-url property. it'd be better if the foursquare URL was a u-syndication class
#
aaronpk
oh wait actually no it's worse, you're setting the venue URL as the u-url of the h-entry
#
GWG
aaronpk: I'll have a look. The Swarm URL is definitely a u-syndication.
#
GWG
But, it must be how Post Kinds is parsing the Micropub data
#
aaronpk
yep I see that now
#
GWG
I just released the first check-in code to the public
#
GWG
I'm already working on the bugfixes from version 2.7.0, which was a bunch of massive structural changes
#
GWG
So, I'll see about why it is off.
#
GWG
It is a template, so it will propagate back to older posts
#
GWG
aaronpk: In order to get anything to display, I had to change how the whole system stored mf2 properties
#
GWG
I had to switch from jf2 to mf2 json
marcthiele joined the channel
#
grantcodes
aaronpk: Hmm think the paging looks good. In your examples it looks like you have 2 values for both `after` and `before` separated by a semi colon or do your post uids have a semi colon?
#
grantcodes
Also I assume the number of 10 per page is changable? Seems quite low for a default to me
tantek joined the channel
#
aaronpk
grantcodes: the cursor values are opaque to the client so it's not important what my examples represent ;-)
#
aaronpk
yeah 10 is probably low but I also dont' think that needs to be defined by the spec
#
grantcodes
Yeah don't know if this is meant to be a techical but if it said `&after=post100&before90` or something more readable it would make more sense to me
#
grantcodes
Might be a good idea to have a set default just so there is more consistency accross readers?
#
tantek
joining late, but did someone collect examples of such query params?
#
tantek
e.g. Mediawiki searches
#
aaronpk
I could update the example to use sequential numeric IDs, but it's also meant to be opaque to clients so that clients don't make assumptions about the values
#
tantek.com
edited /pagination (+257) "/* APIs */ add MediaWiki"
(view diff)
#
aaronpk
hm interesting, that's not actually part of their API
#
tantek
I view query params as part of the API of a site
#
aaronpk
i'm specifically talking about API design, so I disagree
#
tantek
I believe the query params were designed
#
aaronpk
this is a useful example for website paging, but it's not part of their API
#
tantek
it's over HTTP, so I'm not sure of the distinction you're making
#
aaronpk
considering they have a separate API with a different paging mechanism, I want to capture that as well https://www.mediawiki.org/wiki/API:RecentChanges#Parameters
#
tantek
they're both APIs
#
tantek
just different content types being returned
#
tantek.com
edited /pagination (+174) "/* APIs */ Google Web Search / start = n"
(view diff)
#
tantek
"separate API", sigh.
#
aaronpk
for retrieving the source wiki markup, and making edits
#
tantek
classic web devs can't figure out how to use HTML as an API so they offer a smorgasbord of other rando formats instead and call it an "API" as if changing the syntax (format) changes the semantic (what's an API or not) https://www.mediawiki.org/wiki/Special:MyLanguage/API:Data_formats#Output
#
aaronpk
HTML isn't an API for wikis since you don't write HTML when you edit wiki pages
#
aaronpk
so you're always going to need some way to get the source data behind a mediwiki page
#
tantek
aaronpk - when you *edit* a wiki page it sends you back the wiki markup for example
#
tantek
there's also a "view source" option to query a mediawiki page and get back the wiki markup
#
tantek
all in HTML
#
tantek
these other rando formats are only because webdevs couldn't figure out how to re-use the existing HTML "API"s
#
aaronpk
too bad that's really hard to write code against
#
tantek
only if the HTML produced is crap, which would be the same problem if the XML produced is crap, or the JSON produced is crap, or the YAML etc
#
tantek
producing well formed HTML, even XML-valid HTML, is no harder than producing valid XML
#
aaronpk
producing well formed JSON is way easier tho
#
tantek
and yet they go to all this duplicate effor to do so (a whole another format), instead of doing the significantly *less* incremental work of producing higher quality HTML
#
aaronpk
anyway this is not really a useful debate, this ship sailed a long time ago
#
tantek
MediaWiki in particular never had much of a semantic HTML cuture
#
tantek
*culture
#
tantek
note the long list of rando formats they went through and abandoned (link) above
#
tantek
wddx, dump, txt, dbg, yaml
#
tantek
^^^ that's the ship that sailed a long time ago
#
tantek
and evidence of why that "ship a different format" methodology is fundamentally flawed (more work to maintain)
#
tantek
how many more extra formats do they have to build then abandon before they learn?
#
aaronparecki.com
edited /pagination (+417) "/* MediaWiki */ include info about the MediaWiki API"
(view diff)
#
tantek
xml is deprecated, and maybe their JSON output will be deprecated in another 10 years for whatever new dev-centric format is fashionable in the next 5 years
#
tantek
but they'll still be supporting HTML
#
aaronpk
anyway this conversation is not about HTML vs other formats for APIs
#
aaronpk
paging has nothing to do with the serialization format returned
#
tantek
right, which is why my initial claim stands - the search queries are API params
#
www.svenknebel.de
edited /pagination (+112) "/* MediaWiki */ API"
(view diff)
#
tantek
whether they return HTML or something else
#
aaronpk
nice find sknebel
#
aaronparecki.com
edited /pagination (+1205) "/* APIs */ Twitter"
(view diff)
#
tantek
I do like the queries that use datetimes for offsets instead of ordinal numbers
#
aaronpk
definitely
#
tantek
seems like people are slowly learning that lesson - I see more and more of them
#
tantek
except in cases where the service has nearly no datetime knowledge, or crappy knowledge thereof, like Google Searches
#
aaronpk
grantcodes: i'm hesitant to recommend any specific default page size cause I feel like it might be dependent on the context. but maybe I could use 20 in the examples just to sort of set the baseline?
#
aaronparecki.com
edited /pagination (+269) "/* Twitter */"
(view diff)
#
aaronpk
this "cursor" pagination concept that's appearing in a bunch of places is essentially an abstracted solution for date-based pagination
#
aaronpk
if the things you're paging over have dates, then often you'll see the cursor values are actually dates.
#
tantek
kinda. it's an abstraction to be able to incorporate or use other stable indices besides dates
#
tantek
it's also well established in database API cultures of 25+ years and more. pre-web
#
tantek
but if you've got dates, might as well expose them
#
grantcodes
aaronpk: yep I think 20 is a better example number. And for the cursors I'm no expert but is it not more useful to use uids just in case your data is sorted by something other than date? (not a hugely likely scenario). In the example I would remove the semicolons just so it's more obvious it's a random id
#
aaronpk
those are actually the strings I use in Monocle, it's actually two timestamps that I use to sort. date added to the channel and also published date.
#
aaronpk
but the nice thing is it's implementation specific so you don't need to know that :)
#
aaronparecki.com
edited /Microsub-spec (-9) "/* Example Paging Workflow */ update example to 20 per page, and remove colon so cursors are just a hex string"
(view diff)
#
aaronpk
another question, should servers be expected to support a "limit" or "count" query param so the client can decide how many results it wants per request?
marcthiele joined the channel
#
tantek
hex string? why not NewBase60 string? (they are URL safe by design :D )
#
aaronpk
heh, dechex() was just sitting right there
#
aaronpk
let's see what it looks like with newbase60
#
tantek
I happen to like chex, why is there a function to remove it?
#
aaronpk
nice and short: 1wcr11:1wc_L1
#
grantcodes
I would say a count/limit param would be useful, but it would probably need to be limited. I know the WordPress API has a max of 100 for example
#
aaronpk
yeah i'd expect each server would set its own upper limit
#
grantcodes
In that case it would need to handle requests for more than its upper limit but return less posts than were requested
#
aaronpk
yeah, it'd be able to tell if there was more data from the paging keys
#
aaronpk
so if you request 1000 items but the server maxes out at 100 at a time, it would return 100 items and a "after" cursor to get the next 100
#
grantcodes
Yeah that makes sense. The only issue is I can totally imagine people writing a for 1 to 1000 loop and thinking it works fine on with their microsub server but breaking with other servers that won't return 1000 posts. But I might be trying to idiotproof it too much ?
#
[miklb]
do not underestimate the ingenuity of idiots
#
aaronpk
heh yeah, if you're doing for i = 1 to 1000 instead of a foreach then I don't really want to get in your way of shooting yourself in the foot
#
grantcodes
Maybe in the spec it would be good to say the server must support a count from 1 to 100 (as an example) but may support more if they want
#
aaronpk
i'm kind of inclined to specify as little as possible about things that don't actually affect interop
#
aaronpk
so if a server wants to return only one item at a time, as long as it supports the paging parameters a client will be able to deal with it without any different code than a server that supports 100 at a time
#
grantcodes
The thing I dont like about that is different experiences for users in the same client.
#
grantcodes
If it supports a count you know all the users of a client will see x posts at a time
#
aaronpk
I was imagining clients working more like slack clients where it just keeps loading history of a channel seamlessly just might do it different numbers of chunks at a time
#
aaronpk
The client doesn't have to actually present paged data
#
aaronpk
I think it'd be reasonable to recommend a server supports page sizes of like 20-100 but clients should be able to handle whatever comes back and ultimately can't make assumptions about the server anyway
#
grantcodes
yeah the client make assumptions anyway if it is at the end of the dataset
#
grantcodes
*can't make assumptions
loicm, Loqi, cweiske and jjuran joined the channel
#
aaronparecki.com
edited /Microsub-spec (+619) "/* Paging */ limit"
(view diff)
#
tantek.com
edited /next-hwc (+0) "next 11-29"
(view diff)
[miklb] joined the channel
#
KartikPrabhu
aaronpk: why "before" and "after" in the micro-sub pagination with explanation to "newer" and "older"? Why not use "newer" and "older" directly as property names?
#
aaronpk
"newer" and "older" only make sense for pagination of things that have timestamps, whereas "before/after" can refer to positions in a list, not implying timestamp ordering
#
KartikPrabhu
aah, then the explanation might need tweaking
#
aaronpk
hm I should update that description
#
aaronpk
I started writing it in the context of the "timeline" example but that's not obvious now
#
KartikPrabhu
yeah in timeline "newer" and "older" seem more self-explnatory
#
aaronparecki.com
edited /Microsub-spec (-4) "/* Paging */ remove "newer/older" phrasing from paging description"
(view diff)
#
tantek.com
edited /Category:syndication (+133) "expand dfn for what is, no need for empty see also"
(view diff)
#
tantek.com
moved /Cross-posting to /cross-posting "lowercase non proper noun"
#
tantek.com
edited /cross-posting (+25) "/* See Also */ syndication-models"
(view diff)
KartikPrabhu and marcthiele joined the channel
#
tantek.com
edited /Main_Page (-227) "/* Homebrew Website Club */ update for next week"
(view diff)
#
aaronparecki.com
edited /Microsub-spec (+959) "/* Following */ following and unfollowing"
(view diff)
#
aaronparecki.com
edited /Microsub-spec (+93) "/* Search */ return "type" in search h-feed items"
(view diff)
#
aaronparecki.com
edited /Microsub-spec (+162) "/* Following */ return jf2 h-feed objects"
(view diff)
snarfed joined the channel
#
aaronparecki.com
edited /Microsub-spec (+94) "/* Preview */"
(view diff)
KartikPrabhu joined the channel
#
sknebel
what is logo?
#
Loqi
These are the official versions of the IndieWebCamp logo https://indieweb.org/logo
#
aaronpk
!tell grantcodes I just finished up enough of Monocle that it should be a functional prototype! I've added you to the beta so you can log in to it! https://monocle.p3k.io/dashboard
#
Loqi
Ok, I'll tell them that when I see them next
#
snarfed
aaronpk++
#
Loqi
aaronpk has 90 karma in this channel (1477 overall)
marcthiele joined the channel
#
grantcodes
aaronpk: awesome! I'll start playing with it next week
#
Loqi
grantcodes: aaronpk left you a message 11 minutes ago: I just finished up enough of Monocle that it should be a functional prototype! I've added you to the beta so you can log in to it! https://monocle.p3k.io/dashboard