Sun, July 26 ben.thatmustbe.me /* Syndicate by Content Brainstorming section added */ aaronpk, please review, too tired to work through everything right now
Sun, July 26 ben.thatmustbe.me /* Getting Token / Initial set-up */ trying to clean up explanation
The goal of this page is to come up with a syndication protocol, so people can syndicate their post to various destinations that support this syndication protocol.
To illustrate these options, we will use the example of Alice creating a post and syndicating it to a news aggregator, news.indiewebcamp.com.
Syndicate by Reference
Summary: This method, like a webmention, contains the minimal number of parameters for the request, and the syndication destination is expected to fetch the contents of the post being syndicated from the source.
Alice is using a Micropub client to create a post while indicating it should be syndicated. The micropub request looks like the following:
POST /micropub HTTP/1.1
Authorization: Bearer xxxxxxxxx
h=entry
&content=this post is relevant to #indiewebcamp
&mp-syndicate-to=http://news.indiewebcamp.com/
Alice's server handles the Micropub request and creates an h-entry post on her website. In the entry, the server adds a "u-syndication" property linking to the indienews home page.
<div class="h-entry">
<p class="e-content">this post is relevant to #indiewebcamp</p>
<a href="http://alice.example.com" class="u-author h-card">Alice</a>
<a href="http://alice.example.com/post/100" class="u-url">
<time class="dt-published" datetime="2015-07-25T06:00:00-0700">July 25</time>
</a>
<a href="http://news.indiewebcamp.com/" class="u-syndication"></a>
</div>
When Alice publishes this post, before sending normal webmentions, her server first sends the syndication request.
To discover the endpoint indienews expects to receive syndication requests, Alice's server first does the discovery by fetching the news.indiewebcamp.com URL and looking for rel=webmention (TODO: does this need to be a different endpoint from the webmention endpoint?).
Alice's server then sends the syndication request, which looks similar a normal webmention.
POST /endpoint HTTP/1.1
Host: news.indiewebcamp.com
source=http://alice.example.com/post/100
&target=http://news.indiewebcamp.com/
[&callback=http://alice.example.com/syndication-callback
&secret=1234123412341234]
By default, the syndication target will publish the syndicated post synchronously and return HTTP "OK". The response body may be the syndicated post URL as plain text, or a more complex object.
HTTP/1.1 200 OK
http://news.indiewebcamp.com/post/823235
The syndication target may also choose to publish the syndicated post asynchronously. The syndication request may include an optional callback URL that will receive the final URL of the syndicated copy, as well as a secret the server generated that will be used to verify this callback request. (Including the callback param does not require asynchronous operation.)
When a syndication target operates asynchronously, the response is the HTTP "Accepted" response:
HTTP/1.1 202 Accepted
The syndication endpoint goes and fetches Alice's source URL, and verifies that it contains a link to http://news.indiewebcamp.com, and verifies the link is marked up with either rel=syndication or is a u-syndication property of the h-entry.
It then parses the page for microformats and finds the h-entry there. Using the contents found in the h-entry, it creates the syndicated copy using that data.
If the syndication request contains a callback URL, the syndication endpoint needs to tell Alice's server the URL of the syndicated copy.
The syndication endpoint sends a POST request to the callback URL specified in the request.
POST /syndication-callback
Host: alice.example.com
url=http://alice.example.com/post/100
&syndication=http://news.indiewebcamp.com/post/823235
&secret=1234123412341234
(TODO: It isn't strictly necessary to include the URL in this, since Alice's endpoint could look it up based on the secret that was generated.)
Alice's callback endpoint updates the original post and adds the syndication URL, so that the post now includes the URL of the syndicated copy:
<a href="http://news.indiewebcamp.com/post/823235" class="u-syndication">view on news.indiewebcamp.com</a>
Summary
The author needs to support:
Publishing an h-entry
Sending the syndication request, either:
Sending webmentions
Storing a secret and creating a callback URL that can update the post
The syndication endpoint needs to support:
Parsing microformats and looking for an h-entry
Sending a POST request to the callback URL if present
Syndicate by Content
Summary: This method, like micropub, contains all of the data of the post being syndicated. The syndication destination only needs to verify the intent to syndicate in some way.
Alice is using a Micropub client to create a post while indicating it should be syndicated. The micropub request looks like the following:
POST /micropub HTTP/1.1
Authorization: Bearer xxxxxxxxx
h=entry
&content=this post is relevant to #indiewebcamp
&mp-syndicate-to=http://news.indiewebcamp.com/
Alice's server handles the Micropub request and creates an h-entry post on her website.
<div class="h-entry">
<p class="e-content">this post is relevant to #indiewebcamp</p>
<a href="http://alice.example.com" class="u-author h-card">Alice</a>
<a href="http://alice.example.com/post/100" class="u-url">
<time class="dt-published" datetime="2015-07-25T06:00:00-0700">July 25</time>
</a>
</div>
Alice's server then begins the syndication request. To discover the endpoint indienews expects to receive syndication requests, Alice's server first does the discovery by fetching the news.indiewebcamp.com URL and looking for rel=webmention (TODO: does this need to be a different endpoint from the webmention endpoint?).
TODO: some kind of authorization here to obtain a bearer token
Alice's server then sends the syndication request.
POST /endpoint HTTP/1.1
Host: news.indiewebcamp.com
Authorization: Bearer xxxxxxxxx
url=http://alice.example.com/post/100
&h=entry
&content=this post is relevant to #indiewebcamp
&author=http://alice.example.com
&published=2015-07-25T06:00:00-0700
The response contains the location of the syndicated copy that was created.
HTTP/1.1 201 Created
Location: http://news.indiewebcamp.com/post/823235
TODO: does this need to happen asynchronously in order to verify the post exists on alice.example.com/post/100? If so, use the callback mechanism described above.
Summary
The author needs to support:
Publishing an h-entry
TODO: obtaining a bearer token
Sending the post contents in the syndication request
The syndication endpoint needs to support:
Verifying a bearer token
...
Brainstorming
Getting Token / Initial set-up
Ben Roberts 19:44, 25 July 2015 (PDT) How I have been planing with mpTweet (still need to get the last bits of this working) is to have the syndication site send the token via the micropub endpoint. So flow would be:
User enters URL at mpTweet site
User allows mpTweet access to their twitter account (twitter authorize the app)
User is redirected to their authorization endpoint, go give mpTweet "register-syndication" access to their site
mpTweet sends a token, URL, and label to the user's micropub endpoint, essentially registering the syndicate-to data
For posting
User's micropub client will present mpTweet as a syntidate-to option, the user selects it
User submits the post to their micropub endpoint
The user's micropub endpoint creates the post on the user's own site
The micropub endpoint then looks up the stored mpTweet token and sends almost all the same data to mpTweet (removing syndicate-to, adding u-url) or some subset of them.
mpTweet posts to twitter with the u-url backlink and responds with the link to the tweet
Aaron Parecki uses a PHP Static Maps library to display static maps on his event posts as well as on walk/run/bike/drive posts when shown in the list view.
Jeena Paradies uses the the OSM static map service to display static maps under pictures with geo data to show where they were taken. He also caches every picture to go easy on the free service.
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
local comments are comments that are made directly (locally) on a post in the UI of the site serving the post, instead of posting a reply post on an indieweb site and sending a webmention.
IndieWeb Examples
Known (optionally) supports local comments using almost the same mechanism as comments received by webmentions. A local comment is given its own permalink URL, where it is the top-level item on the page, on the receiving site.
SaveMyMix is a quick and easy tool for exporting your playlist data from Spotify (more services coming soon). It encodes playlist data in CSVs and zips the files for download. All of this is done client side in the browser. This helps you maintain data independence and reduces reliance on 3rd party services.
Sun, July 26 aaronparecki.com Created page with "{{stub}} '''<dfn>Ngrok</dfn>''' is a utility for making local servers available on a public address https://ngrok.com/. Ngrok is useful for testing development websites with pu..."
Sun, July 26 aaronparecki.com add section on how to test micropub clients
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
Ngrok is a utility for making local servers available on a public address https://ngrok.com/.
Ngrok is useful for testing development websites with public Micropub clients such as Quill, as well as receiving PuSH notifications from live servers.
How to test a local Micropub server
If you are running your website on localhost:8000, you can use ngrok to give it a public address. First download ngrok, then in a terminal, run
ngrok http 8000
ngrok will launch and tell you the forwarding address it generated for you.
Now you can sign in to a Micropub client like Quill with your ngrok address. Enter your ngrok forwarding address in the sign-in form.
Note that since you probably don't want to point your Twitter or Github profiles to your ngrok address, you will not be able to use those for signing in on indieauth.com. Good alternative options are using Persona, since it only requires adding your email address to your local website, and Google+, since you can add multiple rel=me profiles. If you do use Google+ you will need to ensure you add your website under "Other Profiles" and make that section of your profile public.
Once you sign in, Quill will use your ngrok address when you post from it.
Ngrok also launches its own web server you can use to inspect the http requests and can even replay them, which is very useful for testing micropub servers.
If you make a post from Quill, you'll see it in the ngrok web interface, which is a great way to inspect exactly what the Micropub client sends and what your server responds with!
Sun, July 26 aaronparecki.com Created page with "{{stub}} '''<dfn>localtunnel.me</dfn>''' allows you to share a local server on a public address. http://localtunnel.me/ == See Also == * [[ngrok]]"
This article is a stub. You can help the IndieWebCamp wiki by expanding it.
localtunnel.me allows you to share a local server on a public address.http://localtunnel.me/
2014-12-18 19:00 local time: Web En Vert at Saint-Étienne, France. Web En Vert is a local meetup gathering people making the web around Saint-Étienne. For the next session, Loïc Mathaud will give an introduction talk to the IndieWeb. http://webenvert.fr
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-12-17-homebrew-website-club
2014-12-14 14:00 local time: OpenChateau-Millemont at Millemont, Yvelines, France. OpenChateau is a crowdmaking gathering opened to all builders. Barcamp sessions are currently planned. Thierry and xtof will give an introduction talk to the IndieWeb. http://openchateau.org
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-12-03-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-11-19-homebrew-website-club
2014-11-16: IndieWebCampOnline on Google Hangouts. Our first ever attempt at an online only IndieWebCamp. Join us on Google Hangouts or watch the live stream as we try out a new format and a digital venue for an IndieWebCamp. http://indiewebcamp.com/2014/Online
- local time:Homebrew Website Club Meetup at Virtual this week - on IRC. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-11-05-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-10-22-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-10-08-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-09-24-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-09-10-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-08-27-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-08-13-homebrew-website-club
- local time:Homebrew Website Club Meetup at San Francisco, Portland, Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-07-30-homebrew-website-club
: Décentralisation du Net chez Mozilla Paris. Nombreux sont les projets qui visent à permettre d'avancer, chacun à leur niveau, en direction de la décentralisation d'Internet. L'objectif de ce meet-up est de se rencontrer, de voir comment peuvent s'articuler ces différents projets entre eux, et de bidouiller ensemble pour les faire progresser en vue à terme d'avoir un ensemble de solutions qui permettront à chaque utilisateur d'Internet d'avoir un contrôle sur ses données tout en limitant la surveillance généralisée.. http://www.meetup.com/Paris-Meetup-pour-la-decentralisation-dInternet/events/193618842/. Etherpad notes: https://etherpad.mozilla.org/decentralization-day-1
- local time:Homebrew Website Club Meetup at San Francisco, (Need Portland location!), Chicago. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-07-16-homebrew-website-club
- local time:Homebrew Website Club Meeting at San Francisco, Esri R&D Center (Portland), Chicago. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-07-02-homebrew-website-club
- local time:Homebrew Website Club Meeting at San Francisco, Esri R&D Center (Portland), Chicago, and Minneapolis. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-06-18-homebrew-website-club
Jeremy Keith held a session on IndieMark - helping people improve their own, and gathering feedback to improve it!
2014-05-12 18:30..08 20:00: Indie Box Meetup at Hacker Dojo, Mountain View. If you want to talk Indie Box, come by! We’re probably have a couple demos, and discuss how you run your own box at home. Or write apps for Indie Box that you and others can use.. http://www.meetup.com/indiebox/events/178945702/
- local time:Homebrew Website Club Meeting at Mozilla San Francisco. 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 like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project... http://indiewebcamp.com/events/2014-05-07-homebrew-website-club
2014-05-06 08:00..08 16:00: Internet Identity Workshop XVIII at the Computer History Museum, Mountain View. Do you care about privacy in Age of Surveillance? (You should.) Do you want to do something about it? Are you already doing something about it? IIW is where you get to meet and work alongside others tackling the same problem.. http://www.internetidentityworkshop.com/
-: Homebrew Website Club Meeting at Go Free Range, London. 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, whatever... http://indiewebcamp.com/events/2014-03-19-homebrew-website-club
When you post to sites like Twitter and Facebook, who owns your data? Do you have full control? Does your profile serve your needs, or theirs?
IndieWeb publishers post content to their own sites first, and are creating an independent social web that will change the way people post online. Learn about the people and technologies at the forefront of this movement, and how you can build a personal website that you truly own.
:
• - – 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.
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...
new!Portland 17:30-19:30 Hack Night - Tonight's meetup is a hack night! Come join a group of people building our own websites!
:
• - – 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.
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...
new!Portland 17:30-19:30 Hack Night - Tonight's meetup is a hack night! Come join a group of people building our own websites!
:
• - – 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.
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...
new!Portland 17:30-19:30 Hack Night - Tonight's meetup is a hack night! Come join a group of people building our own websites!
Sun, July 26 csarven.ca Added W3C Note on Cool URIs for the Semantic Web
Sun, July 26 csarven.ca Mentioned ISO 8601 date pattern
Sun, July 26 csarven.ca Mentioned RDF 6570 URI Template
Sun, July 26 csarven.ca Study on Persistent URIs with identification of best practices and recommendations on the topic for the Member States and the European Commission
Sun, July 26 tantek.com move URL template to brainstorming (not a common practice), and add warning of why to avoid "literal" ISO8601 date format without path separators in a URL
Sun, July 26 tantek.com separate semweb-specific article, explicitly call out importance of permalinks and Cool URIs don't change article
Thu, July 30 tantek.com move July to past, add August HWC events, link to 2015/planning for more, trim planning set to those with likely/probably local organizers
Thu, July 30 tantek.com move 2014 events to its own page, since we're halfway+ through 2015, month spacers for 2015
Thu, July 30 tantek.com /* Add events to your calendar */ fix frag link
Thu, July 30 tantek.com move Past years closer to bottom where it may be more discoverable for the context of this page
Thu, July 30 tantek.com /* See Also */ possible events was a 2014 only thing that never went anywhere. link to 2015 page instead, fully expecting to change that to 2016 when the time comes
Wed, July 29 kylewm.com /* Verifying an Access Token */ this step is required for generic token endpoint services, not required for tightly coupled token/micropub implementations
Mon, July 27 tantek.com move savemymix for exporting to /Spotify page, since neither are actually indieweb friendly per this page dfn. Undo revision 21133 by [[Special:Contributions/Hpincket.com|Hpincket.com]] ([[User talk:Hpincket.com|talk]])
Fri, July 31 tantek.com /* Tumblr */ Tumblr reblog persistence with real world example with multiple levels of reblogging, including a deleted original
Fri, July 31 kevinmarks.com /* Tumblr reblog persistence */
Thu, July 30 tantek.com /* Level 2 */ note h-card on homepage minimum is name, url, photo - more info would be great, ok to use separate /about page too