53°F

Aaron Parecki

  • Articles
  • Notes
  • Photos

Articles

2017-02-03 Day 45: Better Display of Event Cities for the IndieWeb Newsletter #100DaysOfIndieWeb
2017-02-02 Day 44: Cleaner HTML from Quill's HTML Editor #100DaysOfIndieWeb
2017-02-01 Day 43: Timezone Support for IndieNews #100DaysOfIndieWeb
2017-01-31 Day 42: New Sleep Posts from FitBit #100DaysOfIndieWeb
2017-01-30 Day 41: Easier Posting to IndieNews #100DaysOfIndieWeb
2017-01-29 Day 40: Webmention Form for IndieNews #100DaysOfIndieWeb
2017-01-28 Day 39: Including a Featured Photo when Syndicating an Article #100DaysOfIndieWeb
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
← older
  • Day 45: Better Display of Event Cities for the IndieWeb Newsletter #100DaysOfIndieWeb

    First of all, if you aren't subscribed to the IndieWeb newsletter, you definitely should! (available via email, RSS and h-feed).
    continue reading...
    1 mention
    Fri, Feb 3, 2017 2:51pm -08:00 #100daysofindieweb #this-week
  • Day 44: Cleaner HTML from Quill's HTML Editor #100DaysOfIndieWeb

    After posting this many blog posts with Quill's HTML editor, I've been somewhat annoyed at some of the strange HTML artifacts it creates. Specifically it adds a few helper classes to the HTML for some of the visual editor parts, and some unnecessary classes are added to some of the images. Today I cleaned up the HTML that Quill sends so that it now only sends very plain and simple HTML. To do this, I send the output from the Javascript editor through the HTMLPurifier library, removing all class attributes and allowing only a specific subset of HTML tags.This ends up being only barely visible, but is a good change under the hood. The one visible change this will have for my blog posts is that now they won't sometimes have an extra empty line at the bottom. This was caused by me pressing "enter" after writing the last paragraph, creating an empty placeholder paragraph in the visual editor.
    continue reading...
    1 like 1 reply 2 mentions
    Thu, Feb 2, 2017 9:25pm -08:00 #100daysofindieweb #quill
  • Day 43: Timezone Support for IndieNews #100DaysOfIndieWeb

    Today I added support to IndieNews for storing and displaying the timezone of submitted posts. Previously, all the dates were stored and displayed as UTC, which can be misleading such as when a post is submitted after 5pm in Pacific time since the post then has the date of the following day in UTC.
    continue reading...
    2 mentions
    Wed, Feb 1, 2017 8:41am -08:00 #100daysofindieweb #indienews #timezone
  • Day 42: New Sleep Posts from FitBit #100DaysOfIndieWeb

    I should have known this one would take longer than I expected.My Jawbone UP finally died, so I replaced it with a FitBit. I've really enjoyed the Jawbones, but I'm not confident in the future of the company's wearables department. I decided to take the plunge and dive in to the FitBit ecosystem instead. I got a new FitBit Charge 2, which among other things includes a heart rate monitor which I'm excited about. But step one was rewriting my sleep import script to pull sleep data from FitBit instead of Jawbone.
    continue reading...
    2 mentions
    Tue, Jan 31, 2017 12:44pm -08:00 #100daysofindieweb #sleep #jawbone #fitbit
  • Day 41: Easier Posting to IndieNews #100DaysOfIndieWeb

    Following up on yesterday's update of adding a Webmention form on IndieNews' Webmention endpoint, today I finished building out the UI for submitting to IndieNews from a browser.Now the "Submit" link includes a form where you can paste in your post's URL, in case your website doesn't send Webmentions automatically.
    continue reading...
    2 mentions
    Mon, Jan 30, 2017 11:25am -08:00 #100daysofindieweb #indienews #webmention
  • Day 40: Webmention Form for IndieNews #100DaysOfIndieWeb

    I realized today that if you visited the Webmention endpoint for IndieNews in a browser, it showed a 404 page, since the Webmention endpoint was only registered for POST requests. Today I added a page that is served for a GET request.
    continue reading...
    1 reply 1 mention
    Sun, Jan 29, 2017 4:25pm -08:00 #100daysofindieweb #indienews
  • Day 39: Including a Featured Photo when Syndicating an Article #100DaysOfIndieWeb

    I've noticed a pattern in the blog posts that I write about these #100DaysOfIndieWeb updates, which is that I almost always include a photo in the article, most of the time embedded in the text. When I syndicate these articles to Twitter, I was previously only including the name of the post and the URL to the post, but I wanted to include the photo as well.Today I updated my syndication code to check for a "featured" photo when syndicating blog posts. It first checks for a "featured" property in the post's storage file. (So far I don't actually have any examples of storing it that way.) It then parses the post's HTML and checks if there is an image with the "u-featured" class. If so, it includes that image in the request to syndicate the post via silo.pub.Now my syndicated articles will include an image!
    continue reading...
    1 like 2 mentions
    Sat, Jan 28, 2017 6:51pm -08:00 #100daysofindieweb #p3k
  • 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
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