IndieWebCamp September 25 through October 2, 2015
This is an automatically-generated summary of the IndieWebCamp wiki edits from September 25 through October 2, 2015
Table of Contents
New Pages
Changed Pages
- video 7 edits by tantek.com, aaronparecki.com, kevinmarks.com, ben.thatmustbe.me
- SleekXMPP 5 edits by tantek.com, kylewm.com, bear.im
- events/2015-10-07-homebrew-website-club 4 edits by tantek.com, kylewm.com, jeena.net
- events/2015-10-21-homebrew-website-club 3 edits by tantek.com, kylewm.com
- Events 3 edits by tantek.com, harryreeder.co.uk
- Micropub 3 edits by kylewm.com, tantek.com, notenoughneon.com
- IRC People 2 edits by kylewm.com, emmah.net
- lulz 2 edits by tantek.com
- it is considered 2 edits by tantek.com
- Webmention 2 edits by fiatjaf.alhur.es
- Diaspora 2 edits by tantek.com, aaronparecki.com
- Main Page 1 edit by tantek.com
- business-models 1 edit by aaronparecki.com
- Homebrew Website Club 1 edit by harryreeder.co.uk
- weasel word 1 edit by tantek.com
- Pinterest 1 edit by tantek.com
- content management system 1 edit by tantek.com
- Nginx 1 edit by petermolnar.eu
- Posts about the IndieWeb 1 edit by aaronparecki.com
- IndieArchive 1 edit by aaronparecki.com
- plurality 1 edit by tantek.com
- jam 1 edit by tantek.com
New Pages
Created by Tantek.com on September 26
- Sat, September 26 tantek.com draft stub, brainstorming link, next steps
- Sat, September 26 tantek.com more next steps
- Tue, September 29 tantek.com /* Brainstorming */ list which types I plan on writing up an algorithm for first
- Tue, September 29 tantek.com /* Brainstorming */ note other types being considered, and refine criteria
- Tue, September 29 tantek.com draft with license, methodology, algorithm, next steps, references, see also
- Tue, September 29 tantek.com /* Algorithm */
- Tue, September 29 tantek.com feedback
- Tue, September 29 tantek.com add explicit Participate section to header with links to Feedback, Issues, IRC
- Tue, September 29 tantek.com /* Next steps */ explicitly note plan to to use W3C wiki, github, irc if spec is accepted as an editor's draft in the Social Web WG
- Tue, September 29 tantek.com /* Other Types Under Consideration */ jam per request from KevinMarks
- Tue, September 29 tantek.com FAQ / What about a photo reply
- Tue, September 29 tantek.com /* What about a photo reply */ .
- Tue, September 29 tantek.com put algorithm first, methodology second as explanation for aspects of it
- Tue, September 29 tantek.com Use cases / Synthesizing explicit type formats
- Tue, September 29 tantek.com Implementations section / Granary
- Wed, September 30 tantek.com Normative References h-entry for property names in the algorithm, Activity Streams for JSON, microformats2-parsing for canonical microformats2 JSON, cite normative references inline where needed
- Wed, September 30 aaronparecki.com /* Issues */
- Wed, September 30 aaronparecki.com /* Issues */
- Wed, September 30 aaronparecki.com /* Issues */ videos
- Wed, September 30 tantek.com /* Algorithm */ use summary property if no content property, per issue from aaronpk re: summary
- Wed, September 30 tantek.com /* Issues */ resolved issue lack of content should use summary as fallback
- Wed, September 30 tantek.com /* Other Types Under Consideration */ add more types under consideration as pointed out by aaronpk. invitation, tag-of
- Wed, September 30 tantek.com /* Algorithm */ add line-breaks to make ORs and THENs clearer
- Wed, September 30 kylewm.com /* Issues */ note name.contains(content)
- Wed, September 30 tantek.com resolved issue, "unknown" is worse than "note" as fallback, display/presentation is outside the scope of this specification
- Wed, September 30 tantek.com resolve issue, reject video for now due to only one "current" u-video example. all other video examples are old or don't use u-video
- Wed, September 30 tantek.com /* Methodology */ recent (< 1 year old) permalinks
- Wed, September 30 tantek.com /* Issues */ respond to remaining issues with questions
- Wed, September 30 rhiaro.co.uk /* Next steps */
- Wed, September 30 kylewm.com /* Issues */ add example of name.contains(content), ask if there are examples of content.startswith(name)
- Wed, September 30 aaronparecki.com /* Issues */
- Wed, September 30 rhiaro.co.uk /* See Also */
- Wed, September 30 tantek.com status, editor's draft, mature enough though for implementation and feedback!
- Wed, September 30 tantek.com link implementations
Post Type Discovery specifies an algorithm for determining the type of a post by what properties it has and potentially what value(s) they have, which helps avoid the need for explicit post types that are being abandoned by modern post creation UIs.
- Status
- This is an Editor's Draft yet mature enough to encourage implementations and feedback therefrom!
- Participate
- Wiki (Feedback, Open issues)
- IRC: #indiewebcamp on Freenode
- Editor
- Tantek Çelik
- License
- Per CC0, to the extent possible under law, the editor(s) and contributors have waived all copyright and related or neighboring rights to this work. In addition, as of 2015-09-30, the editor(s) and contributors (2015-04-07 onward) have made this specification available under the Open Web Foundation Agreement Version 1.0.
Use cases
Both creation user interfaces, and post presentation designs are evolving to directly use the presence or absence of specific properties (and their values) directly, rather than depending on any kind of explicit "post type", thus why bother discovering a post type in the first place? This section documents the (few) use-case(s) that is/are known to date.
Synthesizing explicit type formats
There are existing formats that require explicit post types (e.g. ActivityStreams), and code that consumes them expects explicit post types. Post type discovery enabling automatic synthesizing of such formats from posts that merely have a set of content related properties.
Algorithm
The Post Type Discovery algorithm ("the algorithm") discovers the type of a post given a data structure representing a post with a flat set of properties (e.g. Activity Streams (1.0 or 2.0) JSON, or JSON output from parsing [microformats2]), each with one or more values, by following these steps until reaching the first "it is a(n) ... post" statement at which point the "..." is the discovered post type.
- If the post has an "rsvp" property with a valid value,
Then it is an RSVP post.
- If the post has an "in-reply-to" property with a valid URL,
Then it is a reply post.
- If the post has a "repost-of" property with a valid URL,
Then it is a repost (AKA "share") post.
- If the post has a "like-of" property with a valid URL,
Then it is a like (AKA "favorite") post.
- If the post has a "photo" property with a valid URL,
Then it is a photo post.
- If the post has a "content" property with a non-empty value,
Then use its first non-empty value as the content
- Else if the post has a "summary" property with a non-empty value,
Then use its first non-empty value as the content
- Else it is a note post.
- If the post has no "name" property
or has a "name" property with an empty string value (or no value)
Then it is a note post.
- Take the first non-empty value of the "name" property
- Trim all leading/trailing whitespace
- Collapse all sequences of internal whitespace to a single space (0x20) character each
- Do the same with the content
- If this processed "name" property value is NOT a prefix of the processed content,
Then it is an article post.
- It is a note post.
Quoted property names in the algorithm are defined in [h-entry].
Methodology
There are two important aspects to the methodology of the Post Type Discovery algorithm: scope (why is something explicitly in the algorithm), and order (why is something where it is in the algorithm).
- Scope
- The algorithm could attempt to cover innumerable potential hypothetical post types, or take an evidence based approach, focusing on real world publishing practices. This specification does the latter, specifically by placing a minimum bar of documented real world publishing practices of different visually apparent post types on the open web at recent (< 1 year old) permalinks, each with at least three independent implementations that have converged on what properties (and potentially values thereof) they have to imply their visually apparent post types. As a result of being evidence based, it is likely this specification will expand over time as more apparent post types are published by more convergent implementations.
- Order
- The algorithm must also specify an order (e.g. of precedence) that various properties (and their values) imply various post types. The algorithm is ordered by post types that are in general "richer" in terms of content as well as show greater cognitive effort by the author.
Other Types Under Consideration
Other types are being considered and will be included in the future iterations of the algorithm based on convergence of publishing patterns and critical mass of adoption thereof.
Next steps
This section is for the editor, and may provide hints at updates to come for this specification.
Feedback
Feel free to leave feedback about the draft here, please sign your name with ~~~~!
Issues
Open issues on this specification are documented here.
- Some of the entries on http://aaronparecki.com/articles have just a name, or a name and "featured" image, but no content or summary. Maybe the only way to tell this is an article is to go look at the canonical URL.
- Example permalinks of this? Tantek 22:15, 29 September 2015 (PDT)
- The article vs. note check currently says to check if name is a prefix of content, but this fails the common auto-generated "name" case, where the name contains everything in the post including the content. I have had better luck checking name.contains(content) instead of content.startswith(name) Kylewm.com 21:24, 29 September 2015 (PDT)
- Note with an implied "name" that contains the "content": https://shanehudson.net/2015/09/24/2042
- What if we made it an OR? That is "name.contains(content) OR content.startswith(name)" means this is a note? Tantek 22:15, 29 September 2015 (PDT)
- I can't think of anyone who gives their notes an explicit title that is a prefix of the content. The markup would be odd <div class="e-content"><span class="p-name">This is note</span> with a title that is a prefix</div>. I don't feel too strongly about it, but if we can't come up with any real-world examples, it's probably not worth complicating the spec with content.startswith(name)
Resolved
- In an h-feed, an entry may have a name and summary but no content. In this case it is an article, but step 6 would have already classified it as a note since there is no content. Perhaps update this step to read "If the post has no "content" property and no "summary" property"?
- Steps 6 and following have been updated to use "summary" as a fallback for "content". Tantek 21:02, 29 September 2015 (PDT)
- It appears that a post with no content and no name would be classified as a note. Would it be better for a possible result of this algorithm to be "unknown"?
- No. By having the known fallback of a note post, implementation for both publishing and consuming code is more predictable, and reliable. Tantek 21:40, 29 September 2015 (PDT)
- For example, when determining the post type of a comment, I may not want to display anything if the content and name are empty since it would just look like an empty post.
- What you display is up to you (outside the scope of this specification), and "post type" should only be one aspect of what you use to decide what to display or present. Tantek 21:40, 29 September 2015 (PDT)
- There are several examples of people publishing video posts. Can we add "If the post has a "video" property with a valid URL, then it is a video post." before checking for the "photo" property? (Video posts often have a photo property as a fallback for consumers that don't understand video posts and to show a thumbnail of the video in a feed)
- There is only one recent example of people publishing video posts with
u-video
(Ben Roberts), one person no longer publishing (last was 2+ years ago), and no other examples with u-video
.[1] One < three - thus video stays as "under consideration" for now. Tantek 22:08, 29 September 2015 (PDT)
FAQ
What about a photo reply
Q: What about a reply that includes a photo?
A: It's a reply.
Q2: Should that show up as a "photo" post?
A2: It should show up as a "reply" and not be in a user's published feed of their photos. The user-centric design here is to treat replies separately, because in practice, when users post replies to others' posts, and include a photo, the photos typically assume the context of that other post, and would look odd outside of it (e.g. in a generic "photos" feed). In addition, by not including reply photos in a user's feed of their photos, it gives the user the freedom to reply to other posts with whatever they wish, including photos, and not have those reply-specific photos pollute their streams of "their stuff" that their followers subscribe to.
A2a: From a presentation perspective, a reply should primarily be displayed as a reply first, and then adapt accordingly to whatever other properties it may have.
Implementations
Implementations, in progress, partial, or complete, of Post Type Discovery.
Granary
Granary synthesizes ActivityStreams, microformats2, and Atom from various input feeds and sources, and as such has some code that can be considered in progress or even a partial implementation of Post Type Discovery:
Normative References
- [Activity Streams 1.0]
- for canonical Activity Streams 1.0 JSON
- [Activity Streams 2.0]
- for canonical Activity Streams 2.0 JSON
- [h-entry] - h-entry microformats 2 vocabulary
- for definitions of property names used in the algorithm
- [microformats2] - microformats2 parsing
- for canonical microformats2 JSON output
Informative References
See Also
Created by Loqi.me on September 25
- Fri, September 25 loqi.me prompted by tantek https://indiewebcamp.com/irc/2015-09-25/line/1443216664069 and dfn added by tantek
- Fri, September 25 tantek.com IndieWeb Examples, add subheads, Articles with one article via KevinMarks, see also
- Fri, September 25 tantek.com /* Articles */ note quoted responses to the article in IRC
- Fri, September 25 tantek.com manually, IndieWebCamp Events
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
An events listing is a page or portion of a page (like on a homepage) of an indieweb site that shows a list of events, perhaps including some subset of their event, invitation, and RSVP posts, displayed as a list or grid of some sort.
IndieWeb Examples
Jeena
Jeena Paradies has post an automatic listing of his upcoming events since 2015-??-??
manually
IndieWebCamp
This community keeps a manually edited summary of upcoming events on:
Tantek
Tantek Çelik has manually posted a brief summary of three upcoming events that he is going to, perhaps speaking at, or organizing, on the bottom of his home page since 2012(rough guestimate ? need to lookup exact year/date)
Articles
See Also
Created by Loqi.me on September 28
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
negative reasoning is a form of deductive prose reasoning that has a negation conditional and/or a negation result, and is an anti-pattern because negation conditionals tend to be a misframing, and negation results are rarely actionable, thus rarely productive.
Examples
Examples of negative reasoning:
- "You cannot x without y"[1]
- Instead: With y you can x
- "I am not convinced x"[2]
- "I am convinced not x"[3]
- Instead: I am convinced y
See Also
Created by Kodfabrik.se on October 1
Created by Loqi.me on September 28
- Mon, September 28 loqi.me prompted by tantek https://indiewebcamp.com/irc/2015-09-28/line/1443472063765 and dfn added by tantek
- Mon, September 28 aaronparecki.com add flickstagram
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
Pay what you will is business-model based on a donation button or other UX that allows and encourages the user of a service to pay what they think the service is worth.
Examples
Flickstagram
http://flickstagram.org is a service which imports your Instagram photos to your Flickr account. People have paid anywhere from $1 to $10 after using this service.
Created by Loqi.me on September 25
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
screenshot safe is the act or description of making the body of a post visible on a typical desktop window with a large enough font size that others can take a screenshot of that window, and use it as a full screen image in a presentation to convey the point your post is making.
Created by Tantek.com on September 28
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
micropub-xmpp-bot is an experimental XMPP chat bot for posting notes, replies, likes, and reposts to sites that support Micropub.
Created by Kyle Mahan in September 2015.
open source: https://github.com/kylewm/micropub-xmpp-bot/
How to use it
Give it a shot by XMPP chatting with micropub@kylewm.com. (If it's offline, ping "kylewm" on IRC).
Notably, it uses an out-of-band redirect_uri handler that prompts the user to copy/paste their auth code.
See Also
Created by Loqi.me on September 26
- Sat, September 26 loqi.me prompted by voxpelli https://indiewebcamp.com/irc/2015-09-26/line/1443289635799 and dfn added by voxpelli
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
Jaiku was an early competitor to Twitter that was very popular in certain communities. Was bought and shut down by Google.
Created by Loqi.me on September 25
- Fri, September 25 loqi.me prompted by tantek https://indiewebcamp.com/irc/2015-09-25/line/1443224438609 and dfn added by KartikPrabhu
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
featured image is featured
Created by Loqi.me on October 2
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
rebuild is a feature on some silos (like Pinterest) that prompts the user on their home page, likely after they have not logged in for a while, to rebuild their home feed (followings) by clearing out everything they follow and starting from scratch.
Changed Pages
7 edits by tantek.com, aaronparecki.com, kevinmarks.com, ben.thatmustbe.me
5 edits by tantek.com, kylewm.com, bear.im
4 edits by tantek.com, kylewm.com, jeena.net
3 edits by tantek.com, kylewm.com
3 edits by tantek.com, harryreeder.co.uk
3 edits by kylewm.com, tantek.com, notenoughneon.com- Sun, September 27 kylewm.com /* Clients */ add xmpp chat bot
- Mon, September 28 tantek.com /* micropub-xmpp-bot */ note date, link to its own page, explicitly note open source
- Wed, September 30 notenoughneon.com /* Create */ clarify array properties with single value
2 edits by kylewm.com, emmah.net
2 edits by tantek.com
2 edits by tantek.com
2 edits by fiatjaf.alhur.es
2 edits by tantek.com, aaronparecki.com
1 edits by tantek.com- Fri, September 25 tantek.com assume next HWC is 2015-10-07 unless we hear otherwise about HWC Edi
1 edits by aaronparecki.com
1 edits by harryreeder.co.uk- Fri, September 25 harryreeder.co.uk /* Getting Started or Restarting */ HWC Edi - rhiaro is leaving us
1 edits by tantek.com
1 edits by tantek.com- Fri, October 2 tantek.com dfn, linky linky, use generic versions of pin-specific terms, note pinning involves user-chosen URL+image in the UX
1 edits by tantek.com- Fri, October 2 tantek.com /* Why write your own */ Articles advocating your own (from 2003)
1 edits by petermolnar.eu
1 edits by aaronparecki.com
1 edits by aaronparecki.com
1 edits by tantek.com
1 edits by tantek.com