66°F

Aaron Parecki

  • Articles
  • Notes
  • Photos
  • Darius Kazemi https://friend.camp/@darius

    For people working on ActivityPub implementations I just wrapped up a nice chat with the folks of https://homebrewserver.club in Amsterdam (@manetta @rra and others). It was all via document editing and you can read the whole thing starting at line 188 in this document

    https://pad.vvvvvvaria.org/ap

    It's a bit disorganized and I think they are going to digest it into a blog post or similar but for now this may be helpful to people who are puzzling their way through ActivityPub implementation!

    Dallas, Texas • 38°F
    Tue, Nov 13, 2018 8:29pm +00:00 (liked on Tue, Nov 13, 2018 6:54pm -06:00)
  • https://micro.blog/boris/1022541
    Aaron Parecki
    I started working on a little proxy tool to do exactly that. It's just an API right now, but it lets you delegate all the activitypub stuff to an external service while still using your domain name as the identity. https://github.com/aaronpk/Nautilus
    Portland, Oregon, USA • 49°F
    1 reply
    Sat, Nov 10, 2018 2:20pm -08:00
  • decentralized-social-networks (tinysubversions.com)
    Sat, Oct 6, 2018 7:24am -07:00 #activitypub #socialnetwork
  • Plaidophile: ActivityPub hot take (beesbuzz.biz)
    Fri, Sep 28, 2018 12:31pm -04:00 #activitypub
  • Aaron Parecki
    Just made two bots for @xoxo! They are only followable from Mastodon/etc right now.

    ShuttleBot will post a stream of updates about where the two shuttles are during the festival: ShuttleBot@shuttle.xoxofest.com

    XOXO_toots will boost toots from attendees that mention "xoxo", just like https://twitter.com/xoxofest_tweets does on Twitter!

    This has been quite an experiment in diving into ActivityPub the last couple days.
    Portland, Oregon, USA • 71°F
    18 likes 7 reposts 2 replies
    Sat, Sep 1, 2018 6:56pm -07:00 #xoxo #xoxofest #bots
  • Darius Kazemi https://friend.camp/@darius

    It's weird that the Mastodon server and the web-based ActivityPub reader that it comes standard with are the same code base and the same project with the same name. It makes it hard to communicate certain concepts like how in theory you could have an account on Mastodon dot social and follow literally only pleroma users

    Portland, Oregon • 58°F
    Thu, Aug 30, 2018 6:04am +00:00 (liked on Thu, Aug 30, 2018 6:37am -07:00)
  • kaniini https://pleroma.site/users/kaniini
    People always talk about webs of trust and so on, but actually, that's not what really matters.

    What you want to prove is that the same person who controls these:

    https://kaniini.dereferenced.org/
    https://github.com/kaniini

    Also controls:

    https://pleroma.site/users/kaniini

    This proves it's the same person and the UI can reward them with a checkmark.

    IndieWeb has the basis of a good solution for this since 2008, called rel=me.

    You can read about it at http://microformats.org/wiki/rel-me and then come back to this thread, probably not a half bad idea really.

    Here is the gist of how this would work. In various software, you would set a list of links to things that are also you.

    So, on pleroma.site, you would link to:

    https://kaniini.dereferenced.org/
    https://github.com/kaniini

    And so on, forming a cyclic graph of rel=me links.

    Whether or not an identity node is valid can be determined by following the cyclic graph and seeing if the graph is complete. If it is, then you get the checkmark. If it's not, then you don't.

    This, incidentally, is similar in nature to the the concept behind my ActivityPub alsoKnownAs proposal, but there it is just checking AP objects for completeness instead of webpages.

    Note that no cryptography or anything else is involved in this, it's just following links around on things known to be controlled.
    Portland, Oregon • 69°F
    Sat, Aug 25, 2018 10:37pm +00:00 (liked on Sat, Aug 25, 2018 3:52pm -07:00)
  • Jacky Alciné https://playvicious.social/@jalcine

    I want ActivityPub (and the likes) to evolve to a point where I can have something like @aaronpk has on his personal site as https://aaronparecki.com/aaronpk

    Cambridge, Massachusetts • 67°F
    Sun, Aug 19, 2018 2:49am +00:00 (liked on Sun, Aug 19, 2018 7:17am -04:00)
  • kaniini https://pleroma.site/users/kaniini
    oh. by the way, i should mention the other fediverse thingy i'm cooking up, that isn't pleroma.

    i don't have a name for it yet, but it's basically a self-hosted blogging platform with tumblr features. it will support both activitypub and indieweb for federation, though.

    i intend to use this to replace my current website.
    Cambridge, Massachusetts • 90°F
    Wed, Aug 15, 2018 7:26pm +00:00 (liked on Wed, Aug 15, 2018 4:30pm -04:00)
  • kaniini https://pleroma.site/users/kaniini
    Mastodon is compatible with litepub by the fact that litepub is a subset of the specific variant of activitypub that Mastodon chose to use.

    But I think litepub has better security attributes, because of the strong requirement for using pointers (capability IRIs) to content not controlled by the local instance.

    Mastodon security posture is that LDS is good enough because Delete messages can be redistributed along the DAG (the acyclic graph of peers of peers all the way down known as the fediverse) to ensure object integrity. but, the reality is pushing state around is harmful. instead, litepub's requirement for capability IRIs solves the problem cleanly.

    there are some edgecases involving tracking what instances have received an object, but it's not impossible to solve those.

    I strongly believe based on real world experience that simpler protocols are more robust. LDS method is more complex than the methods proposed in litepub...
    Portland, Oregon • 70°F
    Mon, Aug 13, 2018 3:37am +00:00 (liked on Sun, Aug 12, 2018 8:39pm -07:00)
  • Known http://withknown.com
    It's time to make the switch to a #decentralized social web. #indieweb #activitypub
    Portland, Oregon • 94°F
    Thu, Aug 9, 2018 11:57pm +00:00 (liked on Thu, Aug 9, 2018 5:07pm -07:00) #decentralized #indieweb #activitypub
  • Darius Kazemi https://social.tinysubversions.com/@darius   •   Aug 9

    @aaronpk oh awesome. Can you share the code with me? I am writing my own extremely stripped down server that is meant for bots *only*, so it lets you create new accounts, make/delete posts, and it accepts follow requests, and that's basically it! (also allows the creation of new accounts via API because bots) Anyway, another dirt-simple reference implementation would be a huge help since there are not good "here is what ActivityPub messages should look like" resources I can find

    Aaron Parecki
    My site's source code isn't public, but I might be able to throw the files up just as samples.

    I started off by reading this post https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/ as well as the followup, https://blog.joinmastodon.org/2018/07/how-to-make-friends-and-verify-requests/

    But ultimately those only got me so far, I had to eventually hop in the IRC channel and ask Mastodon and other developers about some of the details. Even the ActivityPub spec doesn't tell you enough to make it work right now. I wish it was simpler!
    Portland, Oregon • 66°F
    1 reply
    Thu, Aug 9, 2018 9:04am -07:00
  • Darius Kazemi https://social.tinysubversions.com/@darius   •   Jul 31

    One fun thing I just learned is that ActivityPub has almost no implementations, certainly no barebones modules I can tell except maybe https://github.com/Arkanosis/microstatus ? except I can't even tell if that is a module or a full-fledged server or both or what

    I am a professional software developer and this shit is so byzantine, no wonder the indie web is having such a rough time

    Aaron Parecki
    Don't forget that ActivityPub isn't even all of indieweb! It gets even more confusing once you throw the other half of the specs into the mix (webmention, micropub, indieauth, etc).

    But that's what happens when this stuff is all built up by a bunch of unrelated people on their own time, rather than being a well-crafted developer experience made by a single company with a bunch of VC funding.

    It will get better, it just takes a lot of work to make this stuff work, much less make good docs for it on top!
    Portland, Oregon, USA • 87°F
    2 likes
    Tue, Jul 31, 2018 3:30pm -07:00
  • Aaron Parecki

    XRay, the library that I use to parse URLs to show comments, now supports parsing direct Microformats JSON, ActivityStreams 2.0, as well as finding a rel=alternate link and parsing data from that instead!

    This means I now get great results when parsing Mastodon or other ActivityPub links, and this is also the first step in what I hope will result in fixing the Microformats situation for WordPress, since a WordPress plugin will be able to generate Microformats JSON and advertise that in a rel=alternate link.

    Next up is updating Aperture to take advantage of these new features!

    Portland, Oregon, USA • 90°F
    12 likes 6 reposts 2 replies
    Mon, Jul 30, 2018 7:32pm -07:00 #activitypub #xray #microformats #p3k #indieweb
  • riking https://github.com/riking   •   Jun 7

    #310 Standardize discovery using link rel on user-visible URLs

    Aaron Parecki

    Just wanted to chime in here again to say that my implementation now also includes a rel=alternate link to the ActivityStreams JSON representation of the page.

    e.g.

    https://aaronparecki.com/2018/07/12/10/indieauth
    
    <link rel="alternate" type="application/activity+json" 
          href="https://aaronparecki.com/2018/07/12/10/indieauth.as2" />
    

    That brings this up to at least 3 implementations that support it, making it a good candidate to incorporate into the spec.

    Portland, Oregon, USA • 86°F
    Mon, Jul 30, 2018 2:35pm -07:00
  • Jamey Sharp https://toot.cat/@jamey   •   Jul 13

    masto meta Show more Ugh, I don't understand the rules for when a public post shows up in the local timeline. Replies don't, except sometimes they do if I'm replying to myself, but just mentioning someone isn't a reply I guess?

    Aaron Parecki
    I was just having a conversation with a few ActivityPub developers about this exact thing. It is very confusing! I'm pretty sure my site is also doing things wrong but oh well.
    Portland, Oregon • 86°F
    1 like 1 reply
    Fri, Jul 13, 2018 2:52pm -07:00
  • ˗ˏˋ wakest ˎˊ˗ https://mastodon.social/@wakest

    Reposting @aaronpk's interface they implemented for #ActivityPub mentions in #p3k (https://indieweb.org/p3k) for better visibility and inspiration. Bridging the #indieweb and #fediverse is so exciting. Lets hope this trend continues infinity!

    Portland, Oregon • 67°F
    Fri, Jul 13, 2018 3:44pm +00:00 (liked on Fri, Jul 13, 2018 8:45am -07:00)
  • Christopher Lemmer Webber https://octodon.social/@cwebber   •   Jul 13

    activitypub for static site generators Show more @craigmaloney Aha, so this is an interesting topic! In fact we did plan for this possibility in ActivityPub! Here's how to do it: - Add an actor like: {"@id": "https://foo.example/blog/actor.jsonld", "inbox": "https://statichelper.example/foo-example/inbox", "outbox": "https://foo.example/blog/feed.jsonld"} - comments and favorite counts can be "loaded" dynamically onto blog pages with javascript, kind of like Disqus.

    Aaron Parecki
    I tried doing something similar, but at least Mastodon expects to be able to do content negotiation on both author profile URLs as well as post permalinks, so that kind of prevents it from being able to effectively work with static sites.

    I got to the point of being able to deliver posts to my followers without actually writing any JSON files at all, but then things kind of looked half broken to people in Mastodon.

    There's an open issue on GitHub about a potential solution that would make this work better for static sites, feel free to chime in! https://github.com/w3c/activitypub/issues/310
    Portland, Oregon, USA • 67°F
    7 likes 4 reposts 3 replies
    Fri, Jul 13, 2018 8:44am -07:00
  • nightpool https://github.com/nightpool   •   Jul 11

    It probably wouldn't be super hard to write a nginx module to enable content negotiation, if there was an interest in it

    On Wed, Jul 11, 2018 at 7:11 PM Aaron Parecki notifications@github.com wrote:

    This would allow a static site to serve ActivityPub objects as well as human-readable HTML. Currently it's not possible to do this, since static sites can't do content negotiation of course.

    — You are receiving this because you commented.

    Reply to this email directly, view it on GitHub https://github.com/w3c/activitypub/issues/310#issuecomment-404338732, or mute the thread https://github.com/notifications/unsubscribe-auth/AAORV8zh504acM1VU-qjYTFjpKw1xwpDks5uFoYjgaJpZM4UdtrM .

    Aaron Parecki
    People who want to host static sites typically are not the same people who are going to custom-compile their nginx in order to install a content negotiation module.

    The two very popular use cases that don't work when content negotiation is required are:

    1) hosting a site on GitHub Pages, Netlify, Amazon S3, etc

    2) using a caching CDN like CloudFlare

    It would be really sad to completely exclude these very popular services from participating in the ActivityPub network.

    Even Mastodon supports alternate URLs for their ActivityPub representations of pages, e.g. https://mastodon.social/@Gargron vs https://mastodon.social/@Gargron.json so it seems like it wouldn't be a huge stretch to have it advertise those URLs on the HTML pages.
    Portland, Oregon, USA • 88°F
    Wed, Jul 11, 2018 5:07pm -07:00
  • https://github.com/w3c/activitypub

    Specify public key format

    Currently, Mastodon and Pleroma are publishing public keys on profiles in different formats. I discovered this when I tried to load a Pleroma public key using PHP's built-in openssl, and it failed.
    continue reading...
    Wed, Jul 11, 2018 4:15pm -07:00
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