IndieWebCamp February 13-20, 2015

This is an automatically-generated summary of the IndieWebCamp wiki edits from February 13-20, 2015

Table of Contents

New Pages

Changed Pages

New Pages

WordPress Data

Created by David.shanske.com on February 15


In order to ensure interoperability between Indieweb WordPress plugins, as much as possible, the same data structures should be used.

Contents

Taxonomies

A taxonomy called 'kind' is currently used for the Post Kinds Plugin. This is meant to indicate the post kind

Current post kinds are all lowercase. List appears below:

  • article
  • note
  • reply
  • repost
  • like
  • favorite
  • bookmark
  • photo
  • tag
  • rsvp
  • listen
  • watch
  • play
  • checkin
  • wish

Many can be disabled by sites not using them

Considering the following additions:

  • weather
  • exercise

Metadata

WordPress allows for for metadata to be attached to various objects.

By default, WordPress includes a metadata table for post types(posts, pages, etc), comments, and users.

WordPress contains a Metadata API that it uses to handle metadata. Metadata can also be created for other object types, but is not part of a default installation.

Microformats data

Proposal by Ryan Barrett: store a post's top-level microformats2 string properties in post metadata with the property names as the keys, prefixed by mf2_. wordpress-micropub does this now.

For example, this RSVP snippet:

<data class="p-rsvp" value="yes">I'm in!</data>

would be stored in post meta with the key mf2_rsvp and value yes.

For mf2 properties with multiple values, just store multiple values for the post meta key. WordPress supports this with e.g. add_post_meta.

Use code like this to get multiple post meta values in a single database query:

$query = new WP_Query(array('meta_query' => array(array(
  'key' => 'meta_key',
  'value' => array('mf2_name', 'mf2_content', ...),
  'compare' => 'IN'))));

use uf2 instead of mf2

Tantek Çelik minor revision of Ryan Barrett's proposal - same but use "uf2" instead of "mf2" because the "u" looks closer to a µ for "micro":

Store a post's top-level microformats2 string properties in post metadata with the property names as the keys, prefixed by uf2_. For example, this RSVP snippet:

<data class="p-rsvp" value="yes">I'm in!</data>

would be stored in post meta with the key uf2_rsvp and value yes.

For uf2 properties with multiple values, just store multiple values for the post meta key. WordPress supports this with e.g. add_post_meta.

Use code like this to get multiple post meta values in a single database query:

$query = new WP_Query(array('meta_query' => array(array(
  'key' => 'meta_key',
  'value' => array('uf2_name', 'uf2_content', ...),
  'compare' => 'IN'))));

why mf2 is better than uf2

Per Ryan Barrett's follow-up in IRC:

  • mf2 is seen in existing code much more often than uf2
    • e.g. php-mf2, mf2py, mf2util, etc
  • mf2 is more obvious (and maybe less clever)

Geodata

WordPress currently provides a Geodata data structure.

  • geo_latitude REQUIRED
   (float) decimal degrees -90 to 90 (negative values are in the southern hemisphere). 
  • geo_longitude REQUIRED
  (float) decimal degrees -180 to 180 (negative values are in the western hemisphere). 
  • geo_public OPTIONAL
  (int) is the geodata public (1) or private (0)? If value is missing, assume public. 
  • geo_address OPTIONAL
    (string) freeform textual description of coordinates. 
   "221B Baker St, Westminster, London NW1 6XE, UK", 
   "Pasadena, CA", "Soho, NYC", "Idaho", etc. 
   Accuracy level and language is arbitrary. 
  • geo_venue OPTIONAL
  (string) freeform textual name of location
   Not part of WordPress standard - proposed by David Shanske for compatibility with microformats

Comment

Webmention Plugin adds an additional comment type of 'webmention' to comments.

Semantic Linkbacks stores extra information in the comment metadata.



  • semantic_linkbacks_canonical - the canonical source url
  • semantic_linkbacks_avatar - the author avatar URL
  • semantic_linkbacks_type - the comment type. The plugin currently supports the following types:
    • mention(default)
    • reply
    • repost
    • like
    • favorite
    • tag
    • rsvp:yes, rsvp:no, rsvp:maybe, rsvp:invited, rsvp:tracking.

Response

The Post Kinds Plugin uses the following array of metadata using the key 'response' to store details on what a post is responding to. All fields are optional.

  • response['url'] - The URL the post is responding to.
  • response['title'] - The title of same
  • response['author'] - The author name
  • response['icon'] - The author icon/image/avatar
  • response['published'] - URL publish date in ISO8601 with timezone offset
  • response['content'] - Content or a Citation...to allow for an excerpt for context.

Syndication

David Shanske's Syndication Links plugin uses a single data field with the key 'syndication_urls' with URLs separated by newlines for syndication URLs to be marked up for syndication. Entry is a textbox with one URL per line. This means there is no requirement that WordPress know about a service to add a link to it.

The plugin formerly stored an array of URLs of various syndication services under the metadata key 'synlinks'. This is now deprecated.

specifications

Created by Tantek.com on February 16

  • Mon, February 16 tantek.com prompted indirectly by GPHemsley in #whatwg
  • Mon, February 16 tantek.com /* IndieWebCamp Specifications */ fragmentions
  • Mon, February 16 tantek.com note existence of other specifications deliberately not listed, because they are not necessary for web independence
  • Mon, February 16 tantek.com h-cite



Specifications are technical documentation of how to support key building blocks for the indieweb, in particular, to achieve various levels and axes of IndieMark feature functionality with formats, protocols, and algorithms for consuming, sending, and receiving.

Contents

IndieWebCamp Specifications

The following specifications are developed here in the IndieWebCamp community.

Widely implemented:

Being implemented / in development:

microformats specifications

Per IndieWebCamp principles, the following microformats specifications are (re-)used heavily as essential simple building block extensions to HTML:

Other specifications

There are other specifications that even though various IndieWeb implementations / sites may support, they're not necessary for web independence, and thus omitted here.

To keep things especially simpler for authors and publishers, the indieweb does not depend on any specifications which require the author to duplicate (e.g. DRY violate) their content on additional URLs (e.g. sidefile-antipattern).

See Also

legacy contact

Created by Tantek.com on February 16




legacy contact is the ability to designate someone else who is given permission to manage your profile / site when you die.

Contents

Silo Examples

Facebook

Facebook supports specifying a legacy contact since 2015-02-12 for US users.

Sessions

Related *Camp sessions:

See Also

ownyourresponses

Created by Tantek.com on February 17




ownyourresponses is a project to enable PESOS as a service for likes, replies, reposts, and event RSVPs from silos to your own indieweb site.

Background

See Also

passive post

Created by Loqi.me on February 18




A passive post is a post that is created without the person taking an explicit action to create the post, such as listening to music or watching a movie.

See Also

Glitch

Created by Loqi.me on February 17

  • Tue, February 17 loqi.me prompted by tantek https://indiewebcamp.com/irc/2015-02-17/line/1424212022731 and dfn added by KevinMarks
  • Tue, February 17 kevinmarks.com



Glitch is a now-defunct game created by the founders of Slack.

plumbing

Created by Tantek.com on February 20




Plumbing in the context of the IndieWeb, refers to all the underlying code, backend setup, protocols, formats that is all merely there to support the design and user experience of a site, the actual user visible and interactive parts.

Contents

UX and design is more important than plumbing

One of the key IndieWeb principles is "UX and design is more important than protocols."

Yet programmers love to talk about plumbing, in the same way that construction workers do — it's their area of expertise, hobby, and fun to talk about.

However, when you're building your own site, you realize you just want the most minimal plumbing that is reliable and will do what is necessary for the design and user experience of your site.

Thus any discussion of plumbing should always be framed as a means to an ends of good UX/design.

Discussing plumbing for plumbing's sake tends to be a distraction from actually building and creating a functional site that you want to use day to day.

Exposed Plumbing Is Bad Design

Your plumbing is showing

Just as you would never live in a house with exposed plumbing like this, it's considered bad design if your site makes its plumbing obvious to the user, e.g. long seemingly random numbers in URLs (as opposed to good URL design), use of acronyms and jargon in your site description, and worst of all, when code or cryptic error messages show through and make your site look ugly.

Your plumbing is showing

Unnecessary Plumbing Is Neglected

Cobwebbed water spigot and old dusty plumbing with ties to keep it in place.

Caption: What happens to most sites' RSS feed(s).

Whenever you build DRY violating duplicate plumbing into a site, e.g. feed files, more often than not, such plumbing ends up getting hastily patched, ignored, neglected, and eventually non-functional, because it's not what people primarily pay attention to, which is the visible site instead.

See Also

events/2015-03-25-homebrew-website-club

Created by Gregorlove.com on February 16

  • Mon, February 16 gregorlove.com Created page with "<div class="h-event vevent"> = <span class="p-name summary">Homebrew Website Club Meetup</span> = == Details == === When === <span class="dt-start dtstart"><time class="value">..."

Contents

Homebrew Website Club Meetup

Details

When

:

- – Homebrew Website Club broadcast & peer-to-peer meetup & beforehand:

• optional 17:30-18:30 – quiet writing hour for the venues that explicitly have it.

All times are Pacific Time unless otherwise noted in venues.

Where

San Francisco

TBD

Portland

TBD

Chicago
The Living Room, 2423 W North Ave., Chicago, IL
Note the Chicago meeting is at 19:00 CDT

What

new! 17:30-18:30 Quiet writing hour before the meetup. Come on by to blog or do other writing quietly.

Homebrew Website Club Meetup: Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy? If so, come on by and join a gathering of people with likeminded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project...

See the Homebrew Website Club Newsletter Volume 1 Issue 1 for a description of the first meeting.

URLs

San Francisco:

  • add indieevent...
  • ... and POSSE copy

Portland:

  • add indieevent...
  • ... and POSSE copy

Chicago:

  • add indieevent...
  • ... and POSSE copy

RSVP

Optional RSVP - just show up! You're encouraged to RSVP by any or all of:

  • adding your name below (and indicate parenthetically if you're in for writing hour)
  • sending an indie RSVP to the respective indie event listed above for your location,
  • RSVPing on its POSSE copy on Facebook (also linked above)

Or just show up and say hi! We're a friendly bunch. You may also RSVP after attending.

San Francisco:

  • ... add yourself!

Portland:

  • ... add yourself!

Chicago:

  • ... add yourself!

Notes

San Francisco

  • ...

Portland

  • ...

Chicago

  • ...

Blog posts

Blog posts before the meeting:

  • ...

Photos

  • ...
Homebrew Website Club
2015 03-2503-1102-2502-1102-07-ko01-2801-14
2014 12-1712-0311-1911-0510-2210-0809-2409-1008-2708-1307-3007-1607-0206-1806-0405-2105-0704-2304-0903-2603-1903-1202-2602-1201-2901-15
2013 12-1812-0411-20



reader-components

Created by Kevinmarks.com on February 14

  • Sat, February 14 kevinmarks.com Created page with "=Reader Components= A [[reader]] describes a common user experience model of a feed of updates compiled from multiple sources. In order to construct this, there are various compo..."

Contents

Reader Components

A reader describes a common user experience model of a feed of updates compiled from multiple sources. In order to construct this, there are various components needed. This is an attempt to delimit them and point to existing components where possible.

Feed Presentation

A Feed is normally a list of entries, ordered by time. Presentation of them often has 2 or 3 levels of detail. For articles this would correspond to name, summary and content. For notes, the name, summary and content may be the same, or expansion may show a photo.

Entry extraction

Extracting useful name/summary/content info may make sense as standalone service- silo equivalents are twitter cards and facebook previews. For content already marked with h-entry this is a straightforward process; for legacy or silo content heuristics may be needed to remap existing markup.

Entry store and splicing

Separating out entries and re-ordering them based on time (or other criteria) is also important. Deciding which entries to display is a complex and contested problem in silos, and one that may make sense as a service

Entry read state

It is often useful for the user to know if this is an entry they have already read. Storing this state is necessary for this to be implemented. There are many presentations possible from hiding read, to unbolding or showing a read-up-to cursor, but the underlying data is equivalent.

Entry like/share/reply state

Being able to like, repost or reply to an entry is a valuable user feature. displaying this state to the user is also useful, and in a distributed system like indieweb potentially complex to rediscover.

Feed updated state

Knowing when new entries are available is also useful. This may imply polling or notification. In either case doing this on a persistent endpoint (server) rather than client-side is probably better. This can also be a useful caching point, to reduce the thundering herd problem.

node-feedparser

Created by Kevinmarks.com on February 14

  • Sat, February 14 kevinmarks.com (prompted by tantek https://indiewebcamp.com/irc/2015-02-13/line/1423877145600)

node-feedparser is a feed parser written in node.js. It supports RSS and Atom feeds, but sadly not h-feed yet.

events/2015-03-11-homebrew-website-club

Created by Gregorlove.com on February 16

  • Mon, February 16 gregorlove.com Created page with "<div class="h-event vevent"> = <span class="p-name summary">Homebrew Website Club Meetup</span> = == Details == === When === <span class="dt-start dtstart"><time class="value">..."

Contents

Homebrew Website Club Meetup

Details

When

:

- – Homebrew Website Club broadcast & peer-to-peer meetup & beforehand:

• optional 17:30-18:30 – quiet writing hour for the venues that explicitly have it.

All times are Pacific Time unless otherwise noted in venues.

Where

San Francisco

TBD

Portland

TBD

Chicago
The Living Room, 2423 W North Ave., Chicago, IL
Note the Chicago meeting is at 19:00 CDT

What

new! 17:30-18:30 Quiet writing hour before the meetup. Come on by to blog or do other writing quietly.

Homebrew Website Club Meetup: Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy? If so, come on by and join a gathering of people with likeminded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project...

See the Homebrew Website Club Newsletter Volume 1 Issue 1 for a description of the first meeting.

URLs

San Francisco:

  • add indieevent...
  • ... and POSSE copy

Portland:

  • add indieevent...
  • ... and POSSE copy

Chicago:

  • add indieevent...
  • ... and POSSE copy

RSVP

Optional RSVP - just show up! You're encouraged to RSVP by any or all of:

  • adding your name below (and indicate parenthetically if you're in for writing hour)
  • sending an indie RSVP to the respective indie event listed above for your location,
  • RSVPing on its POSSE copy on Facebook (also linked above)

Or just show up and say hi! We're a friendly bunch. You may also RSVP after attending.

San Francisco:

  • ... add yourself!

Portland:

  • ... add yourself!

Chicago:

  • ... add yourself!

Notes

San Francisco

  • ...

Portland

  • ...

Chicago

  • ...

Blog posts

Blog posts before the meeting:

  • ...

Photos

  • ...
Homebrew Website Club
2015 03-2503-1102-2502-1102-07-ko01-2801-14
2014 12-1712-0311-1911-0510-2210-0809-2409-1008-2708-1307-3007-1607-0206-1806-0405-2105-0704-2304-0903-2603-1903-1202-2602-1201-2901-15
2013 12-1812-0411-20



events/2015-02-25-homebrew-website-club

Created by Gregorlove.com on February 16

  • Mon, February 16 gregorlove.com Created page with "<div class="h-event vevent"> = <span class="p-name summary">Homebrew Website Club Meetup</span> = == Details == === When === <span class="dt-start dtstart"><time class="value">..."

Contents

Homebrew Website Club Meetup

Details

When

:

- – Homebrew Website Club broadcast & peer-to-peer meetup & beforehand:

• optional 17:30-18:30 – quiet writing hour for the venues that explicitly have it.

All times are Pacific Time unless otherwise noted in venues.

Where

San Francisco

TBD

Portland

TBD

Chicago
The Living Room, 2423 W North Ave., Chicago, IL
Note the Chicago meeting is at 19:00 CDT

What

new! 17:30-18:30 Quiet writing hour before the meetup. Come on by to blog or do other writing quietly.

Homebrew Website Club Meetup: Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy? If so, come on by and join a gathering of people with likeminded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project...

See the Homebrew Website Club Newsletter Volume 1 Issue 1 for a description of the first meeting.

URLs

San Francisco:

  • add indieevent...
  • ... and POSSE copy

Portland:

  • add indieevent...
  • ... and POSSE copy

Chicago:

RSVP

Optional RSVP - just show up! You're encouraged to RSVP by any or all of:

  • adding your name below (and indicate parenthetically if you're in for writing hour)
  • sending an indie RSVP to the respective indie event listed above for your location,
  • RSVPing on its POSSE copy on Facebook (also linked above)

Or just show up and say hi! We're a friendly bunch. You may also RSVP after attending.

San Francisco:

  • ... add yourself!

Portland:

  • ... add yourself!

Chicago:

  • ... add yourself!

Notes

San Francisco

  • ...

Portland

  • ...

Chicago

  • ...

Blog posts

Blog posts before the meeting:

  • ...

Photos

  • ...
Homebrew Website Club
2015 03-2503-1102-2502-1102-07-ko01-2801-14
2014 12-1712-0311-1911-0510-2210-0809-2409-1008-2708-1307-3007-1607-0206-1806-0405-2105-0704-2304-0903-2603-1903-1202-2602-1201-2901-15
2013 12-1812-0411-20



two

Created by Loqi.me on February 18




two more than one

Retrieved from "http://indiewebcamp.com/two"

ReactJS

Created by Loqi.me on February 17

  • Tue, February 17 loqi.me prompted by KevinMarks https://indiewebcamp.com/irc/2015-02-17/line/1424215998282 and dfn added by KevinMarks



ReactJS is a messy combination of JS and HTML to make front end development more fragile, form Facebook github link

Taylor Swift

Created by Loqi.me on February 17




Taylor Swift is the best infosec voice on Twitter. https://twitter.com/SwiftOnSecurity/

macports

Created by Loqi.me on February 18




macports is like /homebrew, a software package installation manager for MacOS, that automatically installs (or updates) dependencies for whatever package you ask it to install or update.

frequency Kenneth

Created by Loqi.me on February 18




frequency Kenneth is your benzedrine, uh huh

webalyzer

Created by Loqi.me on February 17

  • Tue, February 17 loqi.me prompted by gRegor` https://indiewebcamp.com/irc/2015-02-17/line/1424213674550 and dfn added by aaronpk



webalyzer is a web analytics tool that parses a server's access logs and generates HTML reports

midnight

Created by Kevinmarks.com on February 17

  • Tue, February 17 kevinmarks.com (prompted by tantek https://indiewebcamp.com/irc/2015-02-17/line/1424201389946)

midnight is the arbitrary endpoint of a calendar day. This may not be a human interpretation of when the day ends. Swarm/Foursquare understands that people stay out after midnight. Exercise trackers often do not, so will break a walk that spans midnight into 2 days.

Template:loqidef

Created by Kevinmarks.com on February 17


$1 is $2

Huffduffer

Created by Kylewm.com on February 17


Huffduffer, built by User:Adactio.com is a tool for creating podcasts out of audio files from around the web. It supports several indieweb-friendly technologies that

  • Asks for your personal website on sign up and grabs rel=me links to build your user profile
  • Huffduffer user profile is marked up with rel=me
  • microformats2 support for podcast feeds, including h-feed (actually hfeed) and h-entry
  • https://huffduffer.com/add?page= ostensibly scrapes microformats data from the source page to fill in the title, permalink, and description.

See Also

Changed Pages

River4

12 edits by andysylvester.com

interactions

4 edits by aaronparecki.com, rhiaro.co.uk, kevinmarks.com

subdomain

4 edits by tantek.com, david.shanske.com

WordPress Plugins

4 edits by petermolnar.eu, notizblog.org, david.shanske.com

PubSubHubbub

4 edits by tantek.com, david.shanske.com

Getting Started on WordPress

4 edits by david.shanske.com

podcast

3 edits by tantek.com, acegiak.net

2015

3 edits by david.shanske.com, tylergillies.club

2015/Cambridge/Guest List

3 edits by ben.thatmustbe.me, sixtwothree.org
  • Wed, February 18 ben.thatmustbe.me /* Apprentices */ add @lowellmower https://twitter.com/lowellmower/status/568086121827028992
  • Wed, February 18 ben.thatmustbe.me /* Participants */ updating count
  • Wed, February 18 sixtwothree.org /* Remote Participants */ RSVPing for self.

create

2 edits by tantek.com

Loqi

2 edits by aaronparecki.com

Semantic Linkbacks

2 edits by david.shanske.com

Facebook

2 edits by tantek.com
  • Mon, February 16 tantek.com /* Features */ legacy contact
  • Mon, February 16 tantek.com shorten headline, no need to duplicate "Facebook" nor included implicit "about you"

Bridgy

2 edits by tantek.com

like

2 edits by tantek.com
  • Mon, February 16 tantek.com /* receive and markup incoming likes */ fix displaying like markup to link to like permalink, and use u-like per uf2 parsing rules updates and "value" handling for uf objects on properties
  • Mon, February 16 tantek.com /* receive and markup incoming likes */ .h-cite>.u-like-of unnecessary per reasoning from aaronpk in IRC

User:Kylewm.com

2 edits by kylewm.com

RSS

2 edits by tantek.com

rsvp

2 edits by tantek.com
  • Sat, February 14 tantek.com /* Tantek */ now supports RSVP no also
  • Sat, February 14 tantek.com /* Why */ expand, add Why RSVP no subsection since I found a specific use-case myself (and it was sufficient to make me implement RSVP no posts in particular)

Docker

2 edits by aaronparecki.com, kylewm.com

Foursquare

2 edits by aaronparecki.com

Known

1 edits by blog.davidjohnmead.com

founders

1 edits by tantek.com

rel-syndication

1 edits by tantek.com
  • Sun, February 15 tantek.com re-organize into understandable and actionable Why, How-to, IndieWeb Examples sections, update info about WordPress plugins

FAQ

1 edits by tantek.com
  • Mon, February 16 tantek.com /* How should I markup my site */ What are IndieWebCamp specifications

silo

1 edits by tantek.com

Falcon

1 edits by tantek.com

WordPress.com

1 edits by kylewm.com
  • Mon, February 16 kylewm.com /* Features */ supports PubSubHubbub on Atom feeds since 2010-03-03

image proxy

1 edits by willnorris.com

short-domains

1 edits by david.shanske.com

WordPress/Development

1 edits by notizblog.org

User:David.shanske.com

1 edits by david.shanske.com

FreeMyOAuth

1 edits by kylewm.com
  • Thu, February 19 kylewm.com add Dropbox (prompted by https://twitter.com/anildash/status/568225195682631681) and update Foursquare icon

User:Wwelves.org perpetual-tripper

1 edits by wwelves.org perpetual-tripper

Twitter

1 edits by tantek.com
  • Tue, February 17 tantek.com /* POSSE Reposts to Twitter */ consider How to POSSE a repost of a post that lacks a POSSE tweet itself

2014/reposts

1 edits by tantek.com
  • Tue, February 17 tantek.com subheads for repost presentation sketches, expand text description of Reposting a post that lacks a POSSE tweet

scrobble

1 edits by acegiak.net

User:Colintedford.com

1 edits by colintedford.com
  • Tue, February 17 colintedford.com /* Colin Tedford */ Exact date I started using my domain (WHOIS reminder reminded me)

2015/Cambridge

1 edits by ben.thatmustbe.me
  • Tue, February 17 ben.thatmustbe.me Adding a bunch more content from last year's IWC Cambridge

Blogger

1 edits by kylewm.com