IndieWebCamp July 4-11, 2014

This is an automatically-generated summary of the IndieWebCamp wiki edits from July 4-11, 2014

Table of Contents

New Pages

Changed Pages

New Pages

nicknames-cache

Created by Tantek.com on July 10

  • Thu, July 10 tantek.com stub from discussion, analysis, current real world examples
  • Thu, July 10 tantek.com /* IndieWeb Examples */ link to specific kylewm post and POSSE copy demonstrating use of his nicknames-cache
  • Thu, July 10 tantek.com /* Easier Person References When Writing */ link to expanded POSSE to Twitter explanation



A nicknames cache is a way indieweb sites store information about people to improve the user experience of the site owner referring, mention, and/or linking to those people.

Contents

Use Cases

Easier Person References When Writing

When creating a post, being able to type merely a given-name, or @-handle, or even domain name that represents a person, and have your site automatically convert that reference:

  • on your post on your site: a mini-h-card hyperlinking the person's full name to their domain
    • or perhaps the person's given-name inside an abbr element which has the full name
  • in a POSSE copy
    • on Twitter: the corresponding @-name for that person (per Twitter#POSSE_to_Twitter step 4. translate indiewebsite people references)
    • on Facebook: the corresponding profile-link (person-tag) reference for that person

Better Person Icon Display

When displaying a reply-context or a comment or other interaction (likes, reposts) e.g. in a facepile, it's better to:

  • retrieve the icon of the referring person from a nickname cache

Rather than have to:

  • Retrieve the icon URL dynamically from an h-card on that person's site
    • disadvantage: slower, less responsive, more code
  • Retrieve the icon URL from your own storage of the reply / interaction
    • disadvantage: less reliable, icon URLs change
  • Retrieve the icon image itself from your own storage of the reply / interaction
    • disadvantage: storage space: requires copying and storing likely many duplicate copies of the same icons of people for every such reply / interaction
    • disadvantage: showing a dated/old icon of the person (one they may no longer want to publish)

IndieWeb Examples

Storage Model

Typically a flat list of items at least with:

  • person full name
  • shortname / given-name (what the author of a post would type to refer to the person)
  • domain name
  • @-name
  • icon URL

And potentially also:

See Also

bittorrent-sync

Created by Bret.io on July 8




Bittorrent Sync is a proprietary Dropbox replacement/alternative. It is different than most dropbox/box services in that it is distributed and central servers are optional, but are used to speed up peer discovery. Files are synchronized between devices directly or through a public relay server. Shared folders are connected using secret keys. There are a read only keys and read/write keys as well as one time only keys of both flavors for transmitting to someone over an insecure connection.

Because there are no central servers, uncommon connection strategies are required for reliable peer connections:

  • A bootstrapping server for finding peers (known as a tracker).
  • A relay server for peers that cannot make a direct connection.
  • Local peer discovery over the LAN
  • Peer Sharing.
  • DHT (distributed hash table) peer discovery for trackerless peer discovery.
  • NAT-PMP/UPnP For automatic port forwarding.
  • A trust system based on secret keys instead of passwords and accounts.
  • Uses bittorrent as the transfer mechanism so the more peers/devices you have, the faster speeds you can achieve.

All strategies come preconfigured and can be disabled individually or customized to use custom tracker or relay servers.

http://www.bittorrent.com/sync

2014/Berlin/Day-1

Created by Aaronparecki.com on July 5


IndieWebCamp 2014 Berlin

Saturday, June 28, 2014

Introductions



Overview & history of the Indie Web movement – Why an Indie Web?



approach, dogfooding



Current apps & projects



What you currently use / pain points

  • Brennan: Social Igniter posting to Twitter, App.net, Facebook, IRC, email
  • Jan: mostly Email, Github, IRC, ownCloud. Some Textsecure/SMS, Twitter, Meetup.com
  • Malte: mainly Email, IRC, Diaspora
  • Joe: Medium
  • Garret: mostly Github, IRC. Facebook with friends, some Foursquare
  • Diego: mostly Facebook and Twitter, email, Github
  • Joachim: problem that most networks are very quantitative than qualitative. Working on Jolocom
  • Christian: removed entries from every social network 2 years ago. Problem: getting judged by others on posts and superficial aspects. Their inability to present diversity in a character. Inability to - at least easily - push only relevant info to the relevant people (groups are not sufficient) Also working on Jolocom
  • Jon : all of them. federation and transclusion missing everywhere

Of the current "silos" what do you use?

  • Facebook DR, BN, GA, JL, JR
  • Twitter DR, JC, BN, GA, JL, JR
  • Github: JC, BN, GA, DR, JR
  • Tumblr
  • Instagram



What you would want (ideally)

What is your ideal publishing platform for a more open, decentralized, free, and IndieWeb in one sentence

  • bnvk: a way to collaboratively organize events & calendars using IW protocols
  • jancborchardt: a simple unified cross-platform messaging tool
  • almereyda: flow charts of POSSE and PESOS and Bridgy and Webmention
  • DR: Promote POSSE and give people tools to became owners of their own identity.
  • AS: a tool that properly reads my mind
  • Joachim: More qualitative networks. Everyone could have their own mini-platform. Try to prevent overflow of information
  • Christian: Less noise, not cluttering people’s attention. Something which is personally tailored



What can you do?



=== Ideas for platforms & tools**



Funding models



Contents

Passport

Created by Mowens.com on July 11

  • Fri, July 11 mowens.com Created page with "http://passportjs.org - An authentication library for Node.js Michael Owens is working on an IndieAuth authentication strategy for Passport to enable faster implementation of In..."
  • Fri, July 11 tantek.com stub, dfn, see also



Passport (capitalized) is an authentication library for Node.js.

Michael Owens is working on an IndieAuth authentication strategy for Passport to enable faster implementation of IndieAuth in Node.js: https://github.com/mko/passport-indieauth

See Also

User:Rascul.io/ssl

Created by Rascul.io on July 11


Here I will describe my SSL setup for https://rascul.io.

Contents

Basics

https://rascul.io runs on Nginx with a certificate from https://startssl.com. I have received high scores from SSL Labs which can be viewed at https://www.ssllabs.com/ssltest/analyze.html?d=rascul.io.

Configuration

Nginx Configuration

Below is my SSL/HTTPS related configuration found in the http block of nginx.conf for https://rascul.io. More information about them might be found at http://nginx.org/en/docs/http/ngx_http_ssl_module.html.

http {
    # Prefer server ciphers over client ciphers, which hopefully will make use of
    # the stronger ciphers I've selected over potentially weaker ciphers the
    # browser might specify.
    ssl_prefer_server_ciphers on;
    
    # This list of ciphers is the strongest available that I've been able to come
    # up with which support forward secrecy and are compatible with as many clients
    # as possible.
    ssl_ciphers EECDH+AES256+AESGCM:EECDH+AES256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:RC4-SHA;
    
    # SSLv3 is required in order to support Java6 with this configuration.
    # All other clients should be using TLS.
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1 SSLv3;
    
    # Share the session cache between all worker processes.
    ssl_session_cache shared:SSL:10m;
    
    # Sessions last for 10 minutes (default is five minutes).
    ssl_session_timeout 10m;
    
    # File containing DH Parameters, used for ECHDE ciphers. To create the file: 
    # openssl dhparam -outform pem -out dhparam4096.pem 4096
    ssl_dhparam /etc/ssl/dhparam4096.pem;
}

Host Specific Configuration

This is the host specific configuration, I keep it in the file /etc/nginx/sites-available/rascul.io and it is symlinked to /etc/nginx/sites-enables/rascul.io. Only the SSL/HTTPS related directives are included here.

server {
    # Apply these directives to HTTP on port 80. Basically all I'm doing here is
    # forcing the connection to HTTPS on port 443.
    listen 80;
    
    # rascul.io will never support a www subdomain.
    server_name rascul.io;
    
    # Use HSTS to specify rascul.io should be connected to via HTTPS only.
    add_header Strict-Transport-Security "max-age=31536000";
    
    # A 301 redirect for clients not supporting HSTS.
    return 301 https://$host$request_uri;   
}

server {
    # Support connections with SSL and SPDY.
    listen 443 ssl spdy;
    
    # Once again, rascul.io will never support a www subdomain.
    server_name rascul.io;
    
    # Use HSTS to specify rascul.io should be connected to via HTTPS only.
    add_header Strict-Transport-Security "max-age=31536000";
    
    # Enable SSL for this server.
    ssl on;
    
    # Certificate chain. The format is described in the nginx documentation:
    # http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
    ssl_certificate /etc/ssl/rascul.io/ssl-unified.crt;
    
    # Specify the private key for rascul.io. Remember to ensure permissions and 
    # ownership of the private key are restrictive.
    ssl_certificate_key /etc/ssl/rascul.io/ssl.key;
    
    # Enable stapling of OSCP responses by the server.
    ssl_stapling on;
    
    # Verify OSCP responses.
    ssl_stapling_verify on;
    
    # Trusted CA certificates used for OSCP. Once again, refer to nginx docs:
    # http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_trusted_certificate
    ssl_trusted_certificate /etc/ssl/rascul.io/trustchain.crt;
}

Template:section-stub/doc

Created by Aaronparecki.com on July 5

  • Sat, July 5 aaronparecki.com new doc for {{section-stub}} template

This template is used to indicate a section is incomplete and encourages people to expand it. It should be placed at the top of the page.

If a section seems thorough to you (and you consider yourself fairly knowledgeable on the subject and thus capable of reasonably determining as much), feel free to remove the {{section-stub}} template code.

Blank Template

Copy and paste:

{{section-stub}}

Parameters

This template has no parameters.

Examples

Including this template code:

{{section-stub}}

Will generate:

2014/indie-business

Created by Aaronparecki.com on July 5


Business & the Indie Web

4pm

Who's trying to make money at it?

  • IndieBox: HW +
  •  ? advertising revenues
  • Achangeiscoming: custom sites/consulting, hosted sites
  • homesteading.io: hosted sites, "homesteading box"
  • known: services (with some licensing/custom work)

Who's moving first, and why?

  • for those people, which aspects of the indieweb are the most valuable



Known's perspective

individuals who have some reuptational/financial connection to what they're publishing. journalists are an example (Known's low-hanging fruit).

media organizations: groups of people who are producing content, some of which will be published. right now, they're mostly doing it via email. "enterprise indieweb" [since you're going across servers anyhow, the firewall doesn't add that much complexity]

complications: lots of customization is required to match their workflow; the orgs have in-house dev teams. if the journalists don't own the content themselves (that is, it's owned by the media company), how is this "indieweb"? in this case it's the corporation's benefit. today they're giving a lot of ownership (and interaction with audience) to Facebook or tumblr etc.

non-profits, citizen scientists, political parties: complex notions of what information is public, want to maintain ownership of data

known is finding it very challenging to sell in the pure public situation -- people see wordpress or hootsuite (depending on which aspect of the problem they're looking at) as having solved the problem well enough

Shane: we're all people who build individual websites. How do people who do their own websites make money? Something I've been noodling with, on my site there's a "products" session. it's not a separate post type (e.g. they're videos), they have a few additional bits -- licensable, sales price. how can all of us in this room make money from content that we'd otherwise post? (e.g., charging to reuse content -- creative commons non-commercial).

cashmusic is one model

patreon and gittip are another approach.

elgg: grew organically. did it for education originally, gradually expanded. the key was not to be prescriptive about what people used it for -- whatever they did, we'd support it. bootstrapped it. got a lot of money out of education (recurring revenue for support), web shops (paid for support, and also to be official partners)

squarespace is an example of a company that makes it ridiculously easy to get a site up. (although they're not indieweb-ish)

Diaspora: an example of tying in with news-related

microtransactions



Conclusion: those of us who are interested in making a business of this, stay in touch!

2014/micropub

Created by Aaronparecki.com on July 5


http://indiewebcamp.com/micropub

Micropub is for roughly using an interface that you didn't build to post to your site.

IndieAuth is used for auth access.

Minimal Example

POST /micropub HTTP/1.1
Host: example.com
Content-type: application/x-www-form-urlencoded
Authorization: Bearer XXXXXXX

h=entry
&content=Hello+World
curl https://example.com/micropub -d h=entry -d "content=Hello World" -H "Authorization: Bearer XXXXXXX"

Your website becomes an OAuth 2 provider in the process.

Reference implementation: https://quill.p3k.io

In the <head> of: http://aaronparecki.com Delegates auth endpoint to IndieAuth

<link rel="authorization_endpoint" href="https://indieauth.com/auth">

Delegates token endpoint:

<link rel="token_endpoint" href="https://tokens.oauth.net/token">
<link rel="micropub" href="https://aaronparecki.com/api/post">

Quill (Micropub posting app in this case) stores that auth token to post to aaronparecki.com each time.

Not going into details but they are here: http://indiewebcamp.com/auth-brainstorming

Why is it h=entry and not type=entry? Aaron says he didn't want to use something that might be a field in an entry. H is indicator of microformats stuff. "type" might conflict with a property of the object

You can use indieauth.com or build it yourself for the auth endpoint and token endpoint.

https://tokens.indieauth.com documentation on using the token endpoint

To use, put this in your head:

<link rel="token_endpoint" href="https://tokens.indieauth.com/token">

Logging into https://quill.p3k.io

iwc-2014-quill-signing-in.png

error from having no endpoints defined:

iwc-2014-quill-sign-in-error.png

Does it hurt to set head tag and headers? No, but it does make consumers do more work to check two places.

The header could be mangled or removed by intermediate servers in the pipe. It is also harder for a user to control what headers can used. IMO for IndieWeb <link> tag is better --Bear

Aaron agreed to change all the spec docs to only use <link> tags, not HTTP headers. Simpler. This also follows the same discovery pattern that other parts of indieweb use. -bear

iwc-2014-quill-signed-in.png

Aaron's Micropub endpoint source code:

Mostly in:



Shane has contacted the author of MarsEdit; supports blogging APIs, even weird tumblr API. About implementing micropub support for it. The description of MarsEdit was one of the first instances of XMP-RPC in the wild for posting content to a blog site

Shane and Jessica are building adapters between different APIs and micro pub api. Look at this neat chart

Aaron has an iOS app that speaks micropub https://github.com/aaronpk/PushupCounter-iOS as an h-entry that has an p-count property.

Need new scope for micro pub comments?

Tokens can be associated with ACL group/scope - the token just identifies who is making the change and it's up to the app to decide if that user+action is allowed --bear

2014/Berlin/Day-2

Created by Aaronparecki.com on July 5


IndieWebCamp Berlin

Sunday, June 29, 2014

14:00–20:00

Make your own site more indie:

Get IndieAuth running by adding rel="me" tags (Jan, Joachim, Anna, Garret, …)

IndieAuth rel="me"

https://gist.github.com/brennannovak/8348d8a37bdf80df4c1e

IndieMark 1 - Validate h-card

https://gist.github.com/brennannovak/c5e158cb4d9f0e54edda



Indie App Store (Brennan, Felix, Jan, Diego)



Raspberry Pi demo (Malte) Setting up ownCloud on it (Jan)

  • Adding IndieWeb aspects to Mailpile (Brennan)
  • Cryptoparty / Indie Web handbook, intro, documentation (Malte, …)
  • Demo of and work on Open Outcomes (Joe)

Template:section-stub

Created by Aaronparecki.com on July 5




This template is used to indicate a section is incomplete and encourages people to expand it. It should be placed at the top of the page.

If a section seems thorough to you (and you consider yourself fairly knowledgeable on the subject and thus capable of reasonably determining as much), feel free to remove the {{section-stub}} template code.

Blank Template

Copy and paste:

{{section-stub}}

Parameters

This template has no parameters.

Examples

Including this template code:

{{section-stub}}

Will generate:



User:Ashersilberman.com

Created by Ashersilberman.com on July 7

  • Mon, July 7 ashersilberman.com Created page with "Hey all, I'm <span style= "font-size: 16px; line-height: 1.625em;" class="h-card">[http://ashersilberman.com/ Asher Silberman]</span>"

Hey all, I'm Asher Silberman

linkback

Created by Cweiske.de on July 8

  • Tue, July 8 cweiske.de Created page with "{{stub}} Linkback is the generic term for [[trackback]], [[pingback]] and [[webmention]]."



Linkback is the generic term for trackback, pingback and webmention.

call

Created by Aaronparecki.com on July 10

  • Thu, July 10 aaronparecki.com copy-paste example call flow from irc logs



Outline to call a person (request a voice or video session) using their website:

  1. tantek writes a post on his site that says "hey aaronpk, do you have a minute to talk? https://talky.io/ttk"
  2. tantek's server sends a webmention to mine for that link
  3. my server notifies my phone via a push notification (possibly via mention-app)
  4. I see the message, click the talky URL, and we're in a video call

Additionally, this could happen with private posts so the talky URL is only visible to the two of us.

See Also

User:Blog.jasongreen.net

Created by Blog.jasongreen.net on July 9

  • Wed, July 9 blog.jasongreen.net Created page with "[http://blog.jasongreen.net blog.jasongreen.net] Short bio : [http://jasongreen.fed.wiki.org/view/welcome-visitors/view/jason-green jasongreen.fed.wiki.org]"

blog.jasongreen.net Short bio : jasongreen.fed.wiki.org

Changed Pages

photos

6 edits by tantek.com, kylewm.com
  • Tue, July 8 tantek.com /* IndieWeb Examples */ Jeremy Keith since 2014-07-05!
  • Tue, July 8 tantek.com /* IndieWeb Examples */ sort earliest first, and separate notes with embedded photos, note Jeremy POSSEing photo posts to Twitter
  • Wed, July 9 tantek.com /* Silos */ add Facebook subsection with details from kylewm from /irc
  • Wed, July 9 tantek.com /* Facebook */ missed some text
  • Wed, July 9 kylewm.com /* Facebook */ added preview screenshot
  • Wed, July 9 kylewm.com /* Facebook */ note that "See Original" does not work on photos

2014/UK/Guest List

5 edits by colepeters.com, kevinbeynon.com

Twitter

4 edits by tantek.com, kevinmarks.com
  • Mon, July 7 tantek.com /* Features */ reply-context up through start of thread
  • Wed, July 9 tantek.com /* Issues */ split into Criticism vs. Issues (brief explanation of each)
  • Wed, July 9 kevinmarks.com /* Criticism */ bad PESATAs to Facebook
  • Wed, July 9 tantek.com /* bad PESETAS to facebook */ more like spammy cross-posting, describe why per deliberate Twitter wording

micropub

4 edits by aaronparecki.com
  • Sat, July 5 aaronparecki.com update syndicate-to parameter to require username. this allows the micropub endpoint to be able to syndicate to multiple accounts on the same silo
  • Sat, July 5 aaronparecki.com add section on syndicating via micropub
  • Sat, July 5 aaronparecki.com /* Syndicating a Post */ add section on Discovering Supported Syndication Targets
  • Sat, July 5 aaronparecki.com /* Discovering Supported Syndication Targets */ add authorization header to GET example

reply-context

4 edits by tantek.com
  • Mon, July 7 tantek.com add levels based on http://indiewebcamp.com/irc/2014-06-26#t1403820472 (and prev/subsequent analysis), including reply-context thread!
  • Mon, July 7 tantek.com /* reply thread */ entire reply chain
  • Mon, July 7 tantek.com /* icon */ use example of benwerd since his own site's avatar/image URL has moved around
  • Thu, July 10 tantek.com /* icon */ make use of a nicknames-cache for indieweb post icons

Red Wind

3 edits by kylewm.com
  • Tue, July 8 kylewm.com /* Screenshots */ added screenshots showing off redesign
  • Tue, July 8 kylewm.com /* Filestore */ documented address book/contact list feature
  • Tue, July 8 kylewm.com added borders and captions to images

2014/Demos

3 edits by aaronparecki.com, kartikprabhu.com
  • Sat, July 5 aaronparecki.com add headers for New York
  • Sat, July 5 kartikprabhu.com /* New York Start Demos */
  • Sat, July 5 kartikprabhu.com /* New York Hack Day Demos */

Events

3 edits by tantek.com, christopheducamp.com, standblog.org blog
  • Wed, July 9 tantek.com add HWC 07-30
  • Thu, July 10 christopheducamp.com /* Upcoming */ hack day in Mozilla Paris on decentralization (via @nitot)
  • Thu, July 10 standblog.org blog /* Upcoming */

ronkyuu

3 edits by bear.im, cweiske.de

IndieMark

3 edits by brennannovak.com, tantek.com
  • Sat, July 5 brennannovak.com /* Level 2 posts */
  • Sat, July 5 brennannovak.com /* Level 2 posts */
  • Mon, July 7 tantek.com level 1 posts 0.2 = 0.1 per post to 0.2 for 2 at most (minimum required). location is not a separate post type, it's part of others)

reply-context-examples

2 edits by tantek.com
  • Tue, July 8 tantek.com move reply to a photo to a brainstorming section
  • Tue, July 8 tantek.com /* reply to a photo */ note is in reply to a silo post (IG), add a link to a reply to an indieweb photo post as well

h-card

2 edits by david.shanske.com, kartikprabhu.com

2014/SF

2 edits by aaronparecki.com

WordPress

2 edits by tantek.com, kylewm.com
  • Mon, July 7 tantek.com /* POSSE */ add id=POSS to make the first link work from https://twitter.com/kartik_prabhu/status/485197197542060032
  • Mon, July 7 kylewm.com /* People using WordPress */ added start - end dates for User:willnorris.com

IndieArchive

2 edits by kylewm.com
  • Tue, July 8 kylewm.com /* IndieWeb Examples */ clarify links
  • Tue, July 8 kylewm.com clarify links to i-a at the top

2014/SF/Schedule

2 edits by aaronparecki.com
  • Sat, July 5 aaronparecki.com /* Friday, March 7, 2014 */ add stub links to internal wiki pages to prep for moving content from etherpad
  • Sat, July 5 aaronparecki.com /* Friday, March 7, 2014 */

webmention

2 edits by kodfabrik.se, cweiske.de

stapibas

2 edits by cweiske.de

2014/Cambridge/Guest List

2 edits by johneckman.com

GitHub

2 edits by cweiske.de, jden.us

p3k

2 edits by aaronparecki.com
  • Mon, July 7 aaronparecki.com /* Features */ add local nickname section, probably more to add later
  • Thu, July 10 aaronparecki.com /* Local Nicknames */ see also

fragmention

2 edits by kevinmarks.com, kartikprabhu.com

subdomains

1 edits by tantek.com

Falcon

1 edits by tantek.com
  • Thu, July 10 tantek.com /* improve reply-context support */ icons specifically, break into smaller subtasks

email

1 edits by jonnybarnes.net
  • Mon, July 7 jonnybarnes.net /* Handling it Yourself */ mention mail in a box

Jekyll

1 edits by kylewm.com

markdown

1 edits by kevinmarks.com

store

1 edits by brennannovak.com

events/2014-07-16-homebrew-website-club

1 edits by werd.io

homepage

1 edits by aaronparecki.com
  • Sat, July 5 aaronparecki.com /* Webmention to homepage */

2014/SF/https

1 edits by aaronparecki.com

2014

1 edits by tommorris.org
  • Wed, July 9 tommorris.org /* East Photos */ adding caption from Chloe Weil

videos about the indieweb

1 edits by tantek.com
  • Tue, July 8 tantek.com add PDF14 Why We Need the #IndieWeb video & slides

PHP

1 edits by tantek.com
  • Tue, July 8 tantek.com Articles - start with Rachel's unfashionably-profitable pragmatic explanation of why PHP

Indie Box

1 edits by bear.im

Posts about the IndieWeb

1 edits by tantek.com
  • Tue, July 8 tantek.com Screw Digital Sharecropping. I’m Getting a Posse.

https

1 edits by rascul.io

notifications

1 edits by tantek.com

feed file

1 edits by tantek.com
  • Wed, July 9 tantek.com /* Criticism */ no access to archives / content since a datetime

events/2014-07-30-homebrew-website-club

1 edits by tantek.com
  • Wed, July 9 tantek.com /* Where */ SF is at Moz with writing hour

permalinks

1 edits by mowens.com