IndieWebCamp June 19-26, 2015

This is an automatically-generated summary of the IndieWebCamp wiki edits from June 19-26, 2015

Table of Contents

New Pages

Changed Pages

New Pages

micropub chaining

Created by Loqi.me on June 24

  • Wed, June 24 loqi.me prompted by tantek https://indiewebcamp.com/irc/2015-06-24/line/1435176979597 and dfn added by tantek
  • Wed, June 24 tantek.com fix typo, expand citations, see also
  • Thu, June 25 tantek.com why, how to, indieweb examples
  • Thu, June 25 ben.thatmustbe.me Adding some brainstorming ideas



micropub chaining is when you have one micropub endpoint itself use micropub to post to another micropub endpoint, like to POSSE a post to silos, or to a community site or other commons.

2015-06-08 Concept described in IRC by Ben Roberts http://indiewebcamp.com/irc/2015-06-08/line/1433793069686

2015-06-23 Term proposed in IRC by Tantek Çelik [1][2]

Contents

Why

By supporting micropub chaining on the micropub endpoint, you can use any any micropub client to post to your site, and let your server handle automatic POSSEing (e.g. via silo.pub) to silos, or cross-posting.

How to

Your server must be both a Micropub server implementation with an endpoint, and then have stored state to be able to be a Micropub client implementation to post to other Micropub endpoints.

IndieWeb Examples

None currently.

Brainstorming

Authorization Flow

One of the more difficult pieces will be getting the user interface for the initial set up. Getting a token to the first endpoint in the chain will be a slightly confusing task. Say there is some external site PublishToSomeSilo.xyz that we want to add to our chained micropub endpoints, how do we add this?

  1. visit PublishToSomeSilo.xyz and select to sign-up (probably at this point you will authorize the site to publish on your behalf).
  2. redirect to primary sites endpoint with <micropub endpoint>/?register=PublishToSomeSilo.xyz
  3. follow general flow as if <micropub endpoint>/?register=PublishToSomeSilo.xyz is a client looking to use access PublishToSomeSilo.xyz
  4. after verifying the token, store the token and URL and possibly other data (fields to add??) somewhere
  5. redirect to PublishToSomeSilo.xyz and get notification that your endpoint can now syndicate to this site.

~ Ben Roberts 2015-06-25

Annotate canonical url for post

The chained (secondary) micropub endpoint may not be specifically designed to be a micropub endpoint. How does one specify the canonical url in micropub post? syndication-of=<url> or maybe just url=<url> but this has been overloaded already polling data to edit a post. ~ Ben Roberts 2015-06-25

Custom text for syndicated copy

It might be beneficial to be able to send different syndication targets, different values for some fields (content for example) to allow syndicated copies to be abbreviated versions. How would the Micropub client application display this? how would it send the data as it requires embedded items (gets ugly in form encoding) ~ Ben Roberts 2015-06-25

See Also

2014-created

Created by Aaronparecki.com on June 23

  • Tue, June 23 aaronparecki.com all pages created in 2014
  • Tue, June 23 aaronparecki.com thumbnail images
  • Tue, June 23 aaronparecki.com remove redirects, add namespace for templates, add name of the file
  • Tue, June 23 aaronparecki.com please don't edit

Pages created in 2014

events/2014-06-24-indieauth-at-osbridge

Created by Aaronparecki.com on June 21

  • Sun, June 21 aaronparecki.com create event page for last year's osbridge talk, and session notes
  • Sun, June 21 aaronparecki.com add video URL

Contents

OAuth, IndieAuth, and the Future of Authorization APIs

You use OAuth every time you log in to Facebook or Twitter, but what if you could use it from your own website? What if your own domain became a source of data, and you had your own personal API? By decentralizing authorization to your own domain instead of a silo, you control when, how, and to whom your data is shared.

Session Notes

Notes from Aaron Parecki's talk at Open Source Bridge, 2014

Talking about oauth and indieauth

people used to microblog on the old days of twitter there was an ecosystem of apps that let you write and read tweets in many creative ways.

the twitter web interface included which app was used to post that note leading to a diverse ecosystem of apps

some apps would create visualizations of your tweet history

in the dark ages before oath, you used to hand over credentials over to some of these applications. this was a major problem. how can people post to their twitter accounts without asking for their password?

lots of problems:

  • security issues
  • multiple places to change your password

everyone jumped on board with oath! this problem was no more

2014: moving this ecosystem out of twitter?

examples of indieweb sites:

Current in progress posting interfaces to personal websites and blogs:

Building our own posting interface gets boring, so why not use each others?

Quill: a simple web interface for posting notes to your website.

  • signing in gives you a checklist of requirements that need to be met to use the client
  • a simple post interface
  • pressing post sends off a request to your website and it makes the post.

There are a few of these interfaces that work on multiple sites.

  • taproot (barnaby walters waterpigs.co.uk)
  • ownyourgram (ownyourgram.com)



Working with constraints:

  • (re)invent as little as possible
  • https is easier than cryptography

Oauth2 dropped crypto and relies only on https

only form encoded request and html for authentication

users are represented by urls

apps are represented by urls

putting these things together you get: IndieAuth: Oauth2 + Web Identity

Example signing in with IndieAuth:

Application

  • ClientID: the client you are signing into e.g.: indiewebcamp.com
  • redirect_url: the thing indieauth redirects back to? e.g. indiewebcamp.com/auth/callback
  • user
  • me = their website identity e.g. aaronparecki.com

this is done by adding a rel=me attribute to a link to an profile that is OAuth enabled IE twitter or github.

The user clicks sign in on the client applicationL

Going through the details of how indiauth interacts with the client application. See: http://indiewebcamp.com/authentication



Now lets do that again in a different context. Signing into a web posting client with the domain name you will be posting to:

We will sign into a 3rd party app

  • client_id = quill.p3k.io
  • redirect_uri = a callback url
  • user
  • me = personal domain

users services:

the client authorizes the app, the app gets an authorization code, now goes and gets an access token.

the client gives that authorization code to the token endpoint. the token endpoint verifies the auth token and generates an access token for the client. the client stores that token to make publish requests to the micro pub endpoint. this is all oAuth2 with an additional layer of an identity layer (rel=me) on top?

If you want to actually try this, you can use quill.p3k.com to set all this up. You can just jump straight to building just the micro pub endpoint and put off the token endpoint work by using the auth and token endpoints aaron built.

Your personal site needs to verify access tokens

it can query the token endpoint to check token validity.

Micropub

"Chances are half of you have your own website running different software for publishing" Micropub is a vocabulary for creating and editing posts on your website. its based on micro format 2 vocal: http://microformats.org/wiki/microformats-2 authentication is handled by oauth2 bearer tokens Usually provided by indieauth

you can delegate your endpoint to another service

Micropub details…. see the documentation linked above

Examples of different post types: instagram photos via ownyourgram.com quill

Multipart used for receiving files from a simple post request

no additional encoding scheme was required, just use multipart

trying to reinvent as little as possible

Questions

Shared secrets are scary (iOS decompile lead to secrete (the app) shared secrets to be leaked)

Is the access token similar to a session ID? Its kinda like a session ID. Pretty much equivalent. Its responsible for issuing a session. A string that you can use so when you come back and make a request it will be granted. Inforamtion on the website.

Open ID is complicated: How does this get out of the realm of geeks? How do we get people to get their own website. This is true. A lot of indieweb work is under the assumption that people have their own website. The assumption is that it will be easier to have a website in the future. Google just announced it will be a domain reg and will likely do a good job. An assumption but something we are working towards.

All urls are SSL. Thats complicated: Answer: yes a level of complexity, but its getting easier to run ssl. ssl is cheaper and companies are willing to dish out cheaper ssl certs. startssl gives out FREE ssl certs. Woop! Its a well established standard and hope the tools become easier. http://indiewebcamp.com/generations covers some of these issues.



Template:csarven

Created by Tantek.com on June 23


Sarven Capadisli

Hovercars

Created by Loqi.me on June 26

  • Fri, June 26 loqi.me prompted by ben_thatmustbeme and dfn added by GWG



Hovercars are an as yet nonexistent form of transportation long used as an example of futuristic technology.

weechat

Created by Loqi.me on June 21

  • Sun, June 21 loqi.me prompted by GWG https://indiewebcamp.com/irc/2015-06-20/line/1434851314517 and dfn added by acegiak



weechat is an irc client that is often used as a central persistent connection that then relays to remote clients like glowingbear

polymer

Created by Loqi.me on June 21

  • Sun, June 21 loqi.me prompted by tantek https://indiewebcamp.com/irc/2015-06-20/line/1434848852666 and dfn added by KevinMarks



polymer is a web front end development toolkit from Google based on web components. The polymer starter kit at https://developers.google.com/web/tools/polymer-starter-kit/ ends up installing 33000+ files on your development system.

See Also

IndieID

Created by Ben.thatmustbe.me on June 25


IndieID is an opne source IndieAuth service and an alternative to indieauth.com found at indieid.com

Contents

Motivation

Many people rely solely on indieauth.com as their auth endpoint, and while it is open source, it is ruby on rails and a little more difficult to run your own instance. IndieID is written in PHP, uses no database, and tries to keep required libraries to a minimum in hopes that anyone can run their own IndieAuth server. ~ Ben Roberts

Suported Providers

Desired Support

  • Twitter Uses OAuth1 instead of OAuth2 so I have not gotten to it.

Specifically Not Supported

See Also

answer to the ultimate question of life, the universe, and everything

Created by Loqi.me on June 26




answer to the ultimate question of life, the universe, and everything is 42.

Telegram

Created by Kylewm.com on June 24

  • Wed, June 24 kylewm.com Created page with "{{stub}} <dfn>[https://telegram.org/ Telegram]</dfn> is a cross-platform encrypted messaging app. Telegram is a centralized service, with a closed source server and open source ..."



Telegram is a cross-platform encrypted messaging app. Telegram is a centralized service, with a closed source server and open source clients.

Changed Pages

2014-review

14 edits by tantek.com
  • Mon, June 22 tantek.com start ordering things in some sort of a reasonable narrative, expand the harder sections, work on closing sections that are more positive
  • Tue, June 23 tantek.com stub a 2014 Technologies section with Vouch, let's add more by analyzing 2014 IWC demo notes
  • Tue, June 23 tantek.com /* Technologies */ indie-config
  • Tue, June 23 tantek.com link to 2014-created
  • Tue, June 23 tantek.com /* Technologies */ add Services stub with Bridgy, and Applications
  • Tue, June 23 tantek.com /* Community Resources */ 1000+ pages created
  • Tue, June 23 tantek.com /* Services */ more Bridgy details
  • Tue, June 23 tantek.com micropub first implemented / interop in 2014
  • Tue, June 23 tantek.com 6 micropub server implementations, link to each sets as of 2014
  • Thu, June 25 tantek.com /* Community Resources */ list best documentation/resource pages created in 2014
  • Thu, June 25 tantek.com /* Technologies */ invitation
  • Thu, June 25 tantek.com /* Community Resources */ mobile, notification
  • Fri, June 26 tantek.com /* Technologies */ h-feed adoption by indieweb community
  • Fri, June 26 tantek.com /* Community Resources */ payment

2015/Brighton

8 edits by adactio.com, grantmorrison.net, ashleynye.co.uk

2015/Guest List

7 edits by paulmunday.net, anomalily.net, aaronparecki.com, giudici.us
  • Sun, June 21 paulmunday.net /* Participating */
  • Mon, June 22 anomalily.net /* Official Guest List */
  • Mon, June 22 aaronparecki.com sort by first name (was sorted by domain name instead)
  • Mon, June 22 aaronparecki.com add rsvp from tito registration
  • Wed, June 24 aaronparecki.com registration from tito
  • Wed, June 24 aaronparecki.com give people 24h to add themselves before I copy registrations from tito
  • Fri, June 26 giudici.us /* Remote Participants */

timeline

5 edits by tantek.com
  • Tue, June 23 tantek.com /* 2008 */ rel=in-reply-to in HTML proposed by csarven on microformats wiki
  • Tue, June 23 tantek.com /* 2013 */ event W3C Workshop on Social Standards
  • Tue, June 23 tantek.com /* 2009 */ first implementation to publish rel=in-reply-to
  • Tue, June 23 tantek.com /* 2009 */ '''
  • Tue, June 23 tantek.com 2014 vouch concept, term, spec, implementations

events/2015-07-15-homebrew-website-club

4 edits by tantek.com, kylewm.com

Micropub

4 edits by aaronparecki.com
  • Wed, June 24 aaronparecki.com /* Syntax */ update with latest JSON syntax for edits
  • Wed, June 24 aaronparecki.com /* Updating Objects */ updated syntax
  • Wed, June 24 aaronparecki.com move syndicating to brainstorming
  • Wed, June 24 aaronparecki.com /* Updating Objects */ add JSON examples

Events

4 edits by aaronparecki.com, tantek.com
  • Sun, June 21 aaronparecki.com add upcoming osbridge talk
  • Sun, June 21 aaronparecki.com add last year's osbridge talk
  • Sun, June 21 tantek.com update dfn, upcoming header to clarify scope / encourage more deliberate contribution
  • Sun, June 21 tantek.com /* Upcoming */ de-dupe, bold

founders

3 edits by tantek.com
  • Sun, June 21 tantek.com clarify movement, terminology, camp
  • Sun, June 21 tantek.com call out years, add specific dates inline instead of having to click through to find them
  • Sun, June 21 tantek.com add History of IndieWebCamps with template listing them all

Main Page

3 edits by adactio.com, aaronparecki.com, tantek.com

Getting Started on WordPress

2 edits by david.shanske.com
  • Thu, June 25 david.shanske.com /* Optional Plugins */
  • Thu, June 25 david.shanske.com /* Syndicate your content to other sites */

Big Boring System

2 edits by dym.cx, tantek.com
  • Tue, June 23 dym.cx + == Site death ==
  • Wed, June 24 tantek.com update dates, since late 2013, update dfn to what is currently active

Teacup

2 edits by aaronparecki.com

PHP

2 edits by dym.cx

internationalization

2 edits by tommorris.org
  • Tue, June 23 tommorris.org fixing link to Basic Bilingual as Steph's site seems to be broken (a database error - [[database-antipattern]]?)
  • Tue, June 23 tommorris.org /* Solutions */ adding pointer to Django and GNU Gettext

multiple-reply

2 edits by tantek.com
  • Wed, June 24 tantek.com /* Ben Werdmuller */ another interesting multi-reply example, possibly to get around lack of salmention
  • Wed, June 24 tantek.com /* Tantek */ s/rarely/once in a while, add recent multireply in response to 3 other indie replies/posts in order to have it show up as a comment on all 3

bookmark

2 edits by dym.cx

relmeauth

2 edits by ben.thatmustbe.me
  • Thu, June 25 ben.thatmustbe.me stub out a 401 troubleshooting
  • Thu, June 25 ben.thatmustbe.me /* Twitter returning 401 error */

invitation

2 edits by tantek.com
  • Thu, June 25 tantek.com /* IndieWeb Examples */ subheads for examples
  • Thu, June 25 tantek.com /* IndieWeb Implementations */ subhead bridgy

events/2015-07-01-homebrew-website-club

2 edits by tantek.com, kylewm.com

wikifying

1 edits by tantek.com
  • Mon, June 22 tantek.com add focus section with what's good for indiewebcamp user pages and examples of what's not, clarify some other scope, per csarven edit https://indiewebcamp.com/wiki/index.php?diff=20083&oldid=19998&rcid=20074

videos about the indieweb

1 edits by aaronparecki.com
  • Mon, June 22 aaronparecki.com add my osbridge video from last year

User:Csarven.ca

1 edits by csarven.ca
  • Mon, June 22 csarven.ca Initial itches off the top of my head

notification

1 edits by tantek.com
  • Mon, June 22 tantek.com rename sections to Why, Why not, How to, group Push Notifications, add indieweb examples with aaronpk, brainstorms, then projects

Twitter

1 edits by tantek.com
  • Mon, June 22 tantek.com /* POSSE Replies to Twitter */ add subheads for originals with/without POSSE tweets, add new method of @-mentioning the indieweb author to scope a POSSE tweet reply with examples

Pinboard

1 edits by dym.cx

page-name-discovery

1 edits by tantek.com

WordPress

1 edits by notizblog.org
  • Mon, June 22 notizblog.org /* Security and Spam Protection */

Known

1 edits by www.edpatonwilliams.co.uk
  • Fri, June 26 www.edpatonwilliams.co.uk /* Setup Known on nginx */

history

1 edits by tantek.com
  • Sun, June 21 tantek.com fix dfn, see also explicitly timeline / founders for other things

HTTPS

1 edits by marcus-povey.co.uk

Micropub-brainstorming

1 edits by aaronparecki.com
  • Wed, June 24 aaronparecki.com move syndicating to brainstorming, update notes on other brainstorming sections

User:Dym.cx

1 edits by dym.cx

salmentions

1 edits by rhiaro.co.uk

User:Www.madmode.com

1 edits by tantek.com

Ruby

1 edits by dym.cx

events/2015-07-29-homebrew-website-club

1 edits by tantek.com
  • Thu, June 25 tantek.com SF location confirmed @MozSF, RSVP for SF

favorite

1 edits by kartikprabhu.com
  • Thu, June 25 kartikprabhu.com /* Twitter */ add favourite display screenshots

ind.ie

1 edits by kylewm.com
  • Tue, June 23 kylewm.com /* Criticism */ replace broken link with archive.org

Go

1 edits by dym.cx
  • Wed, June 24 dym.cx /* See Also */ only link to the page with other languages is sufficient

Transitional Steps

1 edits by tantek.com
  • Thu, June 25 tantek.com cleanup this page to link to other pages with more well thought out options, see also

permalink

1 edits by kartikprabhu.com
  • Wed, June 24 kartikprabhu.com added changing permalinks section