72°F

Aaron Parecki

  • Articles
  • Notes
  • Photos

Articles

2017-01-27 Day 38: New Sneaky Redirect Test for webmention.rocks #100DaysOfIndieWeb
2017-01-26 Day 37: Parsing h-recipe with XRay #100DaysOfIndieWeb
2017-01-25 Day 36: Parsing h-review with XRay #100DaysOfIndieWeb
2017-01-24 Day 35: Handling Redirects of Updated Blog Posts #100DaysOfIndieWeb
2017-01-23 Day 34: New test for webmention.rocks #100DaysOfIndieWeb
2017-01-22 Day 33: Posting Recipes on my Website #100DaysOfIndieWeb
2017-01-22 Week in Review #100DaysOfIndieWeb
2017-01-21 Day 32: Making IndieNews Realtime with WebSub #100DaysOfIndieWeb
2017-01-20 Day 31: IndieNews Updates! #100DaysOfIndieWeb
2017-01-19 Day 30: Documented the Bookmark Interface for Quill #100DaysOfIndieWeb
2017-01-18 Day 29: Better Media Support in p3k #100DaysOfIndieWeb
2017-01-17 Day 28: Updating Syndication Property in Quill #100DaysOfIndieWeb
2017-01-16 Day 27: Parsing meta http-equiv and returning status code in XRay #100DaysOfIndieWeb
2017-01-15 Day 26: Tag tokens and publish date for Quill #100DaysOfIndieWeb
2017-01-14 Week in Review #100DaysOfIndieWeb
2017-01-14 Day 25: Automatically Fetching Reply Contexts for p3k #100DaysOfIndieWeb
2017-01-13 Day 24: Displaying Reply Context in p3k #100DaysOfIndieWeb
2017-01-12 Day 23: Open Sourcing my Timezone Library #100DaysOfIndieWeb
2017-01-11 Day 22: XRay Ready for Deployment #100DaysOfIndieWeb
2017-01-10 Day 21: Twitter Support for XRay #100DaysOfIndieWeb
← older
  • Day 38: New Sneaky Redirect Test for webmention.rocks #100DaysOfIndieWeb

    This was a tricky one, spawned from when sebsel failed to discover the Webmention endpoint for one of Zegnat's posts. In that case, the Webmention endpoint was a relative URL and sebsel was sending a Webmention to a URL that was also an HTTP redirect.The new test, webmention.rocks #23, instructs you to send a Webmention to a URL that is a redirect, and that page advertises a relative URL endpoint. You'll need to make sure that the URL you pass to your relative URL resolver is the final URL after following the redirect, rather than the one you start with.So give it a shot! Test if your relative URL resolution code works properly!
    continue reading...
    2 mentions
    Fri, Jan 27, 2017 11:06am -08:00 #100daysofindieweb #webmentionrocks #webmention
  • Day 37: Parsing h-recipe with XRay #100DaysOfIndieWeb

    XRay now supports the h-recipe vocabulary!
    continue reading...
    2 mentions
    Thu, Jan 26, 2017 11:20am -08:00 #100daysofindieweb #recipe #xray
  • Day 36: Parsing h-review with XRay #100DaysOfIndieWeb

    Today I added the h-review vocabulary to XRay. This means you may now see objects of "type: review" show up when using XRay. 
    continue reading...
    1 like 2 mentions
    Wed, Jan 25, 2017 2:53pm -08:00 #100daysofindieweb #xray #mf2
  • Day 35: Handling Redirects of Updated Blog Posts #100DaysOfIndieWeb

    My blog post from 2012 titled "OAuth 2 Simplified" is my most popular article on my website by an order of magnitude. It is referenced by over 400 repositories on GitHub, and ranks very high in searches about OAuth. I still get tweets over four years later from people who discover it for the first time and are very appreciative of finding a succinct summary of the protocol. I wrote it in 2012, when OAuth 2.0 was still relatively new, and it was based on the best practices at the time. Today I was reviewing the post, and realized that there were quite a few places where the industry standards have changed either in the terminology or in the best practices. I decided that I wanted to publish a new version of the post updated for 2017 based on what has happened in the industry over the last few years. I didn't feel comfortable updating the post at its current URL, from 2012, since that seemed like it would be rewriting history. But at the same time, I don't want to make people landing on that post from a web search or link from a GitHub repository to have to click another time to see the latest version of the post.I decided on an interesting compromise. I took the existing post, rewrote parts of it, and published it at a new URL: https://aaronparecki.com/oauth-2-simplified/I then took the old post, copied it verbatim, and published it at a new URL dated the same date as the old post: https://aaronparecki.com/2012/07/29/7/oauth2-simplifiedThe final step was creating a redirect from the post's old URL https://aaronparecki.com/2012/07/29/2/oauth2-simplified (note the "2" vs the "7") to the new URL that has no date component. (This is the part that required a new bit of code for p3k, in order to handle redirects from posts that would have otherwise matched a post permalink.)My plan going forward is to always keep the version at https://aaronparecki.com/oauth-2-simplified/ up to date, and to keep snapshots of older versions at date-based permalinks at the time when I publish an updated version. I link to the previous versions of the post at the bottom of the primary post. (Manually for now, until I decide this is an important enough feature to automate). I think this strike the right balance between providing visitors with the most current information with the least amount of effort, while still preserving the history of the older versions.
    continue reading...
    2 mentions
    Tue, Jan 24, 2017 9:26pm -08:00 #100daysofindieweb
  • Day 34: New test for webmention.rocks #100DaysOfIndieWeb

    Thanks to @Zegnat and @sebsel for finding some new new edges case in Webmention discovery that deserve new tests!The new test, #22, advertises its Webmention endpoint with a URL that is relative to the page (e.g. <link rel="webmention" href="22/webmention">). The existing relative URL tests were absolute paths (e.g. <link rel="webmention" href="/test/22/webmention">).
    continue reading...
    2 mentions
    Mon, Jan 23, 2017 9:27am -08:00 #100daysofindieweb #webmentionrocks #webmention
  • Day 33: Posting Recipes on my Website #100DaysOfIndieWeb

    Over the last couple years I've occasionally posted a recipe on my website, but I'd always just done it as a plain text post, nothing fancy. Today I updated p3k to support a new post type, h-recipe. Now I can properly format and display recipes on my site!
    continue reading...
    3 mentions
    Sun, Jan 22, 2017 4:20pm -08:00 #100daysofindieweb #recipe #p3k
  • Week in Review #100DaysOfIndieWeb

    QuillDay 26: Added tag tokens and published date to QuillDay 28: Defaults to mp-syndicate-to instead of the old syndicate-to, and allows overriding for backwards compatibilityDay 30: Documentation for the bookmark interfaceXRayDay 27: XRay now returns the HTTP status code and parses the meta http-equiv tag for static filesp3kDay 29: Shows an audio player for audio posts, and a video player for audio posts with cover artIndieNewsDay 31: Shows the post text smaller and autolinked for posts without a name, and launched the Dutch translationDay 32: Enabled WebSub feeds, which led to finding and fixing a bug in the websub.rocks test suite
    continue reading...
    Sun, Jan 22, 2017 8:13am -08:00 #100daysofindieweb
  • Day 32: Making IndieNews Realtime with WebSub #100DaysOfIndieWeb

    You can now subscribe to realtime updates of IndieNews feeds via WebSub! (formerly known as PubSubHubbub)It was relatively straightforward to add the necessary tags and ping the WebSub hub to make this work. I used Switchboard as the hub. I added the <link> tags and HTTP headers to indicate the hub and self URLs. When a new post is submitted, I then ping the hub, which is just an HTTP POST request with the URL of the feed.I then went to test the publisher using websub.rocks. That part worked great, websub.rocks was able to subscribe to my feed, and I see it receiving the ping when a new post is added to IndieNews.
    continue reading...
    1 like 1 reply 3 mentions
    Sat, Jan 21, 2017 11:36am -08:00 #100daysofindieweb #websub #indienews #reader
  • Day 31: IndieNews Updates! #100DaysOfIndieWeb

    Today I started what is hopefully a series of updates to IndieNews. It's been a while since I've worked on it, probably because it's been mostly working fine which I guess is good.The main thing I did today was replace its own Microformats parsing with delegating that to XRay. This should provide better results when parsing pages, since I've been concentrating my work in consuming Microformats posts in that project.The visual update today is a change to how submitted stories are displayed. Previously, each story always showed the headline as a hyperlink to the post. For short titles, this worked fine. But sometimes someone would submit a plaintext note, or an article with a very long title. This looked pretty bad. Now, IndieNews will switch to rendering the post as a text note in a few cases. This means URLs in the note also get hyperlinked individually, which is a good improvement. 
    continue reading...
    1 like 3 mentions
    Fri, Jan 20, 2017 5:51pm -08:00 #100daysofindieweb #indienews
  • Day 30: Documented the Bookmark Interface for Quill #100DaysOfIndieWeb

    Straightforward update today. I added a documentation page for the bookmark interface of Quill!
    continue reading...
    3 mentions
    Thu, Jan 19, 2017 8:20pm -08:00 #100daysofindieweb #quill
  • Day 29: Better Media Support in p3k #100DaysOfIndieWeb

    Today I worked on better media support. This involved a couple of changes.Reposting audio and video posts that show the player for the reposted mediaSupport for audio + photo posts (shows as an audio player with poster image)Support for video + audio + photo posts (shows as the video player with a hidden audio link for mf2 consumers)Fallback for browsers that don't support <video> or <audio> that includes a link to download the filesHere's an example of a reposted podcast episode. It includes the episode name and an <audio> tag which plays the episode inline.
    continue reading...
    1 like 3 mentions
    Wed, Jan 18, 2017 12:06pm -08:00 #100daysofindieweb #p3k #podcast
  • Day 28: Updating Syndication Property in Quill #100DaysOfIndieWeb

    As the Micropub spec has evolved, there have been some minor changes to how Quill used to do things. Today I added a configuration option to allow you to change the name of the property used to indicate the syndication targets.
    continue reading...
    2 mentions
    Tue, Jan 17, 2017 10:02am -08:00 #100daysofindieweb #quill #micropub
  • Day 27: Parsing meta http-equiv and returning status code in XRay #100DaysOfIndieWeb

    Today I closed a long-standing request on XRay to return the HTTP status code from the retrieved page, as well as parsing the <meta http-equiv="Status" content="410 Gone"> tag in the HTML. I also now return the final URL that XRay retrieved the document from, after following any HTTP redirects that were sent.
    continue reading...
    2 mentions
    Mon, Jan 16, 2017 1:08pm -08:00 #100daysofindieweb #xray #indieweb
  • Day 26: Tag tokens and publish date for Quill #100DaysOfIndieWeb

    Last week, Barry Frost released Micropublish, a Micropub client written in Ruby. It's a very slick interface for posting a few kinds of posts. I noticed that his "category" field looked really nice, and discovered that he was using a Bootstrap plugin called "Token Field". Today I added this plugin to Quill, so now everywhere that you previously had to enter tags as comma-separated values, it's now using this "token field" UI.
    continue reading...
    1 like 1 reply 3 mentions
    Sun, Jan 15, 2017 11:22am -08:00 #quill #indieweb #100daysofindieweb
  • Week in Review #100DaysOfIndieWeb

    aaronparecki.comDay 18: I updated my reposts to show the full contents of the post I reposted rather than just the URL.Day 19: I updated my website to automatically fetch the contents of my reposted URLs when I make new reposts.Day 24: I updated my reply posts to be able to show the full contents of the post I'm replying to.Day 25: I updated my website to automatically fetch the contents of the posts I reply to.XRayDay 20: I added Instagram support to XRay, so now XRay returns data when given Instagram URLs.Day 21: I added Twitter support to XRay, although you need to pass your own OAuth keys to XRay in order for it to fetch tweets.Day 22: I updated a few things in XRay to make it easier to deploy to shared hosting, and simplified its dependencies.LibrariesDay 23: I published my timezone lookup tools as a standalone library, and updated XRay and Quill to use the library instead of the duplicated class.
    continue reading...
    Sat, Jan 14, 2017 10:48am -08:00 #100daysofindieweb #indieweb #xray #p3k
  • Day 25: Automatically Fetching Reply Contexts for p3k #100DaysOfIndieWeb

    Today I worked on automatically expanding the contents of my reply contexts whenever a new post is created. I also have a utility to fetch the reply context for older posts. I ran it for the first page of replies on my replies feed, and I'm super excited that they are looking pretty good now!
    continue reading...
    3 mentions
    Sat, Jan 14, 2017 10:36am -08:00 #100daysofindieweb #indieweb #p3k
  • Day 24: Displaying Reply Context in p3k #100DaysOfIndieWeb

    Following last week's work on displaying full repost content, I modified those templates to be used to display reply context in my reply posts.
    continue reading...
    3 mentions
    Fri, Jan 13, 2017 6:51pm -08:00 #100daysofindieweb #indieweb #p3k
  • Day 23: Open Sourcing my Timezone Library #100DaysOfIndieWeb

    Today I published my code for finding the timezone of a specific location as a standalone library.
    continue reading...
    3 mentions
    Thu, Jan 12, 2017 10:32am -08:00 #100daysofindieweb #indieweb #atlas #timezone #p3k
  • Day 22: XRay Ready for Deployment #100DaysOfIndieWeb

    Today I made a few changes to XRay to make it easier to deploy in more kinds of environments. I also removed a bunch of CSS/JS dependencies and simplified the UI a bit.
    continue reading...
    3 mentions
    Wed, Jan 11, 2017 10:19am -08:00 #xray #p3k #indieweb #100daysofindieweb #100daysofcode
  • Day 21: Twitter Support for XRay #100DaysOfIndieWeb

    Continuing yesterday's work, today I added support for parsing Twitter URLs to XRay.There were a couple tricks to make this work. I wanted to make sure that Tweets are always expanded to include the most data possible, and also wanted to avoid needing to make a bunch of HTTP requests. Scraping from the twitter.com website wasn't an option, since some of the data isn't available or would require additional HTTP calls to fetch. (For example I would have to fetch every t.co URL to expand them.) So I set to work using the Twitter API to fetch the tweets.
    continue reading...
    1 like 1 reply 3 mentions
    Tue, Jan 10, 2017 3:36pm -08:00 #100daysofindieweb #100daysofcode #indieweb #xray #twitter
older

Hi, I'm Aaron Parecki, Director of Identity Standards at Okta, and co-founder of IndieWebCamp. I maintain oauth.net, write and consult about OAuth, and participate in the OAuth Working Group at the IETF. I also help people learn about video production and livestreaming. (detailed bio)

I've been tracking my location since 2008 and I wrote 100 songs in 100 days. I've spoken at conferences around the world about owning your data, OAuth, quantified self, and explained why R is a vowel. Read more.

  • Director of Identity Standards at Okta
  • IndieWebCamp Founder
  • OAuth WG Editor
  • OpenID Board Member

  • 🎥 YouTube Tutorials and Reviews
  • 🏠 We're building a triplex!
  • ⭐️ Life Stack
  • ⚙️ Home Automation
  • All
  • Articles
  • Bookmarks
  • Notes
  • Photos
  • Replies
  • Reviews
  • Trips
  • Videos
  • Contact
© 1999-2025 by Aaron Parecki. Powered by p3k. This site supports Webmention.
Except where otherwise noted, text content on this site is licensed under a Creative Commons Attribution 3.0 License.
IndieWebCamp Microformats Webmention W3C HTML5 Creative Commons
WeChat ID
aaronpk_tv