Marty McGuire

Posts Tagged indieweb

2020
Sat Oct 3

Unsubscribing from YouTube's recommender

First, some backstory. But feel free to skip to the good stuff!

With topics ranging from media and social critiques, to making and tech topics that I care about, to death itself, regular content from creators that post on YouTube have been a part of my daily life for the last several years.

This is enabled by three main features:

  • Subscriptions, to let me check in for new videos from creators I want to follow.
  • The Watch Later playlist, to let me save videos I wanted to include in my regular watching.
  • A YouTube app connected to my TV to let me play through my Watch Later list.

Over time, I feel that YouTube has been consistently chipping away at this experience for the sake of engagement.

In 2016, when I found the advertisements to be too invasive, I became a paid "YouTube Red" (now YouTube Premium) subscriber. With ads gone, and with so many content creators posting weekly or more, it was easy to let watching videos through YouTube become a regular habit. Turning off and clearing my YouTube viewing history helped mitigate some of the most creepy aspects of the suggestion system, at the cost of being able to track what I'd seen.

This replaced a lot of idle TV watching time. For several years!

"Progress" marches on, however, and the next thing to go was the experience of accessing the Watch Later playlist. I first noticed this after updating to a 4th generation Apple TV. From the (suggestion-cluttered) main screen of the YouTube app, you must make a series of precise swipes and taps down a narrow side menu to "Library", then to "Watch Later", then to the video that you'd like to start. Not long after, I noticed that the YouTube iOS app and the website itself had similarly moved Watch Later behind a "Library" option that was given the smallest of screen real-estate, overwhelmed by various lists of suggestions of "Recommended for You", "Channels You Might Like", and more.

Most recently, I noticed that YouTube has been changing the definition of a "subscription", where the iOS app will show a timeline of text posts and ephemeral "Moments" in between the actual video content that I am trying to see. Or they'll (experimentally?) try to chunk the subscription display by days or weeks.

All the while, this extra emphasis on recommended videos wore me down. I found myself clicking through to watch stuff that I had not planned to watch when sitting down. Sometimes this would be a fun waste of time. Sometimes I'd get dragged into sensationalized news doom-and-gloom. Regardless, I felt I was being manipulated into giving my time to these suggestions.

And hey, it's #Blocktober, so let's see if we can escape the algorithm a bit more.

A Plan

What I would like to achieve is what I described at the top of my post:

  • I want a way to check for new videos from creators I follow (no notifications, please).
  • I want a way to add those to a list for later viewing.
  • I want to view items from that list on my TV.
I have some tools that can help with each part of that plan.

RSS is (still) not dead

Feeds are already part of my daily life, thanks to an indie social reader setup. I run Aperture, a Microsub server that manages organizing source feeds in various formats, checking them periodically for new content, and processing them into items grouped by channel. I can browse and interact with those items and channels via Microsub clients, like Monocle which runs in the browser and on my mobile devices with an app called Indigenous.

Did you know that YouTube provides an RSS feed for every channel? It's true! In fact, if you visit your Subscription manager page, you'll find a link that the bottom to download a file containing the feed URLs for all of your subscriptions in a format called OPML.

Screenshot a an interface listing channel subscriptions. At the bottom is an entry named "Export to RSS readers" with a button labeled "Export subscriptions". The button is highlighted with hand-drawn pink annotations of an arrow and a circle.

My YouTube subscriptions download had more than 80 feeds (yikes!) so I didn't want to load these into Aperture by hand. Thankfully, there's a command-line tool called ek that could import all of them for me. I had a small issue between ek's expectations and YouTube's subscription file format, but was able to work around it pretty easily. Update 2020-10-04: the issue has already been fixed!

A list of feed URLs in Aperture
A list of videos in Monocle, showing channel name and video title.

With Aperture taking care of checking these feeds, I can now look at a somewhat minimal listing of new videos from my subscribed channels whenever I want. For any new video I can see the channel it came from, the title of the video, and when it was posted. Importantly, I can click on it to open the video in the YouTube app to watch it right away or save it for later.

This feels like a lot of work to avoid the mildly-annoying experience of opening the YouTube app and browsing the subscriptions page.

We must go further.

Save me (for later)

In addition to fetching and parsing feeds, Aperture also has a bit of a secret feature: each channel has an API, and you can generate a secret token which lets you push content into that channel, via an open protocol called Micropub.

So in theory, I could browse through the list of new videos in my YouTube Subscriptions channel, and β€” somehow β€” use Micropub to save one of these posts in a different channel, maybe named Watch Later.

This is where we introduce a super handy service called Indiepaper. It's a bit of web plumbing which essentially takes in a URL, gets all the nice metadata it can figure out (what's the title of this page? who's the author? etc.), and creates a Micropub post about it, wherever you want.

The real ✨magic✨ of Indiepaper comes in the form of utilities that making adding an item as few clicks as possible.

For your desktop web browser, Indiepaper can take your channel's Micropub URL and key and generate a bookmarklet which will send the current page you're looking at straight to your Watch Later channel. Add it to your browser's bookmark toolbar, load a YouTube video, click "Watch Later", and you're done!

For an iOS device, Indiepaper also provides a Shortcut that works the same way. Share a YouTube video URL (from the YouTube app, or straight from your reader) to the Shortcut and it adds the item to the channel right away.

For example, I can load up this YouTube video by Aaron Parecki about making a DIY Streaming Bridge with a Raspberry Pi for the ATEM Mini and OBS in my browser and click the "Watch Later" bookmark in my bookmarks toolbar. After a brief delay, I'll see a notification that it "Saved!", and can check my Watch Later channel (marked with the television emoji πŸ“Ί) to see that it's there now.

Screenshot of a Watch Later channel in Monocle with the saved video.

At this point I can:

  • Browse new videos from my subscriptions in my feed reader.
  • Save videos on demand to a separate watch later channel in my feed reader

However, something is missing. I still want to be able to watch these, distraction-free, on my TV.

The Last (and Longest) Mile

This is where things get ugly, folks. It is also where I admit that this project is not finished.

As far as I'm aware there are no apps for any "smart" TV or media appliance that can browse a Microsub channel. Much less one that can identify a video URL and send it off to the appropriate app for playback.

However, there are some existing ways to save media on your home network and play it back on your TV, such as Plex or Kodi.

So, here are some highlights:

  • Assuming you've got a Plex server with a library called "myTube". Your TV (maybe through an appliance) can run a Plex app that lets you browse and play that local media distraction-free.
  • An automated task on that server could act as a Microsub client, periodically looking in your Watch Later channel for new entries.
  • For each new entry, the automated task could fetch the video with a tool like youtube-dl and save it to the myTube folder, where Plex will find it.

Little details:

  • To prevent repeated downloads, the automated task should either delete or mark new entries as "read" once they've been downloaded.
  • Plex doesn't have an easy way to delete media from the TV interface. Perhaps the automated task can check with Plex to see if a video has been watched and, if so, remove it from myTube. Or maybe save it to a "watched" list somewhere!

If this feels like a lot of work just to avoid some engagement temptation, that's because it is! It may sound simple to say that someone should build a competitor to YouTube that focuses on creators and viewers. One that doesn't seem to spend all its time pushing ads and pulling on you for engagement and all the other things that go into funding a corporate surveillance-driven behemoth.

But no matter how easy it feels to browse a slickly animated user interface that pushes carefully coached eye-grabbing thumbnails of videos with carefully coached compelling titles, there is a lot about video - even watching video - that is not easy!

It's good to stay mindful of what these services make easy for you, what they make hard, and what they make impossible. Trying to take charge of your own consumption is barely a first step.

What aspects of social media are you shutting down for yourself in #Blocktober?

Wed Jul 15

What we talk about when we're talking about "Webmentions"

I have a great fondness for IndieWeb building blocks, and Webmention is a wonderful meta-building-block that connects so many individual websites together.

Obligatory "what is Webmention?": it's a specification that describes a way to "tell" a website that some document out on the web links to one of the pages on that site.

Sound simple? It is! Perhaps even suspiciously simple. Webmention enables whole new kinds of interactions between sites (there are some great examples in this A List Apart piece). Unfortunately, almost all of the coordination to support these interactions happens outside of the "Webmention" spec itself.

So when I see blog post titles like these I am not sure exactly what to expect:

There are many more like this! I just grabbed a handful off the last few pages of news.indieweb.org.

These examples and many more are referring to the most talked-about use of Webmention: enabling site-to-site comments and responses, like a souped-up independent alternative to terrible embeds like Disqus.

This may sound like a simple feature! We might expect it to look like this:

  • You see a post on the web that you like. Let's call that "their post".
  • On your own site, you make a post that links to theirs with some comment like "Nice post!". We'll call that "your post".
  • Assuming that you both "have Webmention support", you might check their post a little later and see a nice summary of your post as a comment below their content.

However, for a webmention to "succeed", a lot of coordination needs to happen.

On your side:

  • You publish "your post" which links to "their post". So far, so good. This is the web! You probably publish links on your site all the time.
  • When your post is live, you can try to send a webmention. How do you do that? It depends.

From here, it's pretty much out of your hands. On their side:

  • Their post must advertise the URL of a service that will accept webmentions for that post.
  • Their service must check that your post is a real post on the web, and that it contains a link to their post. Then it ... stores it somewhere? Maybe it goes into a moderation queue?

So then they have the webmention, but to actually display it, their site must:

  • Pull your post out of wherever their webmentions are stored.
  • Somehow understand what your post "is".
  • Render that into their post. If they want to.

When I see folks posting "I added Webmentions to my site" I want to believe that they have some version of all of the bullet points above.

Unfortunately, there are lots of incompletes.

A list, without references, of partial Webmention support I have seen

The Junk Drawer

Folks in this category are collecting webmentions, probably by signing up for a receiving service like webmention.io. Their posts advertise webmention.io as the place to send mentions, webmention.io dutifully checks and stores them, and ... that's it.

This kind of "Webmention support" is often announced alongside a sentence like "Next up I'll figure out how to display them!" For me, this conjures up images of the warehouse at the end of Raiders of the Lost Ark, or a house filled to the ceiling with stacks of moldy newspapers.

There are, I recognize, lots of good reasons not to display webmentions, beyond some of the technical speedbumps and pitfalls I talk about below. For example there are a lot of unanswered questions and not-yet-built tools and services for dealing with moderation and abuse.

"Why didn't my reply show up on your site?"

Static sites are back and I love it. But if there's one thing that static sites do extremely poorly it is responding dynamically to outside events. Some static sites (including my own!) will save webmentions as they come in, but won't display them until the next time a post is added or modified on the site.

"Why does my reply look weird on your site?"

From services to command line tools to fancy build hooks on your fancy hosting service, there are many ways to automate sending webmentions. But unless the receiving end can understand the content of your post, it might not show up as you intended (or at all) on the receiving end. Current best practices would have you add some extra markup to your post so that the receiver can know that your post is a reply, or a like, or an RSVP, or something else. This is a hard coordination problem between your site and theirs! In fact, there is a whole community and standards process for figuring out how to do these things!

Making sure your posts have the "correct" markup to look like you want can be difficult even for developers writing their own HTML. Tools like indiewebify.me, Monocle's preview, and microformats.io can help if you are getting your hands dirty. It's much harder for folks that just redesigned their site with a new WordPress theme.

Bridgy Over Troubled Waters

Bridgy is an absolutely incredible suite of services provided by Ryan, also for free, for the community.

With the power of Bridgy Backfeed you can use Webmention to feed replies, likes, and reposts from your Twitter tweets to their corresponding post on your own site! This works despite the fact that twitter.com does not link to your website because Bridgy generates little "bridge" pages for which to send webmentions. And it's just a little bit of tweaking to have your Webmention display code handle the quirks.

With the power of Bridgy Publish you can use Webmention to automatically copy posts from your website directly to social media silos like Twitter! You do this by hiding a link to Bridgy in your post, which sends a Webmention to Bridgy, and then Bridgy parses your post to understand it and figure out which bits to tweet. And then Bridgy responds with info about your new tweet. And it's just a little bit of tweaking to have your Webmention sender handle those quirks and update your post with that link.

With the power of Bridgy Fed you can use Webmention to automatically copy posts from your website directly into The Fediverse where yadda yadda yadda. And it's just a bit of tweaking to have your Webmention yadda yadda yadda yadda. 😩 I've tired myself out.

These are all fantastic things that are built on top of Webmention but that I often feel are conflated with Webmention.

"Just let JavaScript do it!"

This one is a bit... unfair on my part. In fact, I think this setup is the best you can get for the least effort, and I encourage folks to go for it. It looks like this:

  • Register with webmention.io to receive, verify, and store your webmentions.
  • Put webmention.js in the template for your posts.

I love webmention.io and use it myself. It is an amazing community resource run by Aaron at no charge! Kevin's mention.tech is another great tool, as is VoxPelli's webmention.herokuapp.com. By configuring one of them to accept webmentions on your behalf, you save yourself a lot of self-hosting trouble. Each of these services provides APIs that let you pull out the mentions for pages across your site.

Similarly, webmention.js is a really great tool developed by fluffy (at no charge!) that hides a lot of complexity and forethought about how to display webmentions with a single JavaScript include.

All that said, I have some issues with this particular combo long-term because all the fetching and display of webmentions happens in the browser of the person viewing your post.

If 1,000 people visit your post, that's 1,000 requests to webmention.io, putting load on a service being run by one individual for free.

This setup also means that the webmentions for a post aren't included in the original HTML. So, if your site sends a webmention and wants to check back automatically to see if it's shown up, but their site only displays webmentions via JavaScript, then your site will never see it. Likewise, it becomes much harder to keep track of reply chains, for example.

Why are you being such a downer about this?

Despite, apparently, being a bit salty today, I really do get excited about Webmention, how it's being used in so many ways to connect independent sites, and new ways it can be used in the future.

I'm worried, a bit, that "Webmention" is starting to lose its meaning in conversation. It's starting to feel like a shorthand that hides important details.

Maybe Webmention can be thought of as less of a "building block" and more like a glue. You can do so many things with glue, like combining a bunch of planks into a table, or building a parade float sculpture with papier-mΓ’chΓ©, or doctoring the photo in a passport!

You wouldn't call them all "glue".

Thu Jul 9

My notes from HWC West Coast 2020-07-08

Yesterday I joined in the West Coast Homebrew Website Club via Zoom. I was worried I'd be too tired to join - it was held 9-10:30pm my time - but after a nice dinner and wind-down from the day I was in a pretty good place.

Jacky shared some demos, reading, and brainstorming (go check 'em out). And, as captured in Tantek's notes, we also got into some good discussion about community onboarding prompted by Sarah.

A recurring theme as new folks join the IndieWeb community is that the wiki is an amazing resource but also a source of crippling information overload. In recent years we have discussed ways to (re-)organize content for folks geting their own site started. On his own, Jason has begun writing guided intros for developers on topics like Webmention. But as Sarah pointed out, IndieWeb is much more than just developer documentation or guides for folks setting up their own websites. IndieWeb is also an active community with frequent live events, 24/7 discussions, and a long-term memory of observations and ideas and projects and participants. So, perhaps it's worth thinking about onboarding from a perspective of introducing new folks to this community, what they can expect, and how to successfully engage.

For my part, I continued research into the cursed project that I've been noodling on for years and finally started during IndieWebCamp 2020 West. My goal is to give folks a free way to dip their toes into the IndieWeb without needing to understand the building blocks first, but with on-ramps to understanding, customizing, and improving any part of it. While I am learning a lot from projects like Postr, I think I will end up actually making my own version of building blocks like authorization, token, and micropub endpoints. By way of being careful, I would like to be able to test that each one works properly. So that's how I ended up volunteering to help build out the IndieAuth.rocks test suite. πŸ˜…

I really enjoy and appreciate these meetups and I look forward to joining the next one!

Mon May 25

A hole in browser Autofill support

If you've ever seen your browser automatically fill in your shipping address, or seen your iPhone offer to scan a credit card on an e-commerce site, you're seeing Autofill in action.

Autofill has been part of the WHATWG HTML Standard for some years now. This 2016 write-up by Jason Grigsby gives a pretty good sense of what can be done with it.

The spec describes ways that an HTML <input> element can use the "autocomplete" attribute to hint to the browser that it should offer to fill it with specific Autofill data, if the browser has it and if Autofill is enabled. There's a long list of values related to names, addresses, phone numbers, dates, and more. Additionally, since users might have more than one of a thing, these can be scoped with values like "home", "work", etc. It's possible to further group addresses by "shipping" and "billing", and even to group larger chunks of forms by named sections.

An example might look like:

<input name="home-street-address" autocomplete="shipping home street-address">

An IndieWeb use-case for Autofill

Web sign-in is a very IndieWeb concept where you sign into websites using your personal web address, rather than an email address or username.

The sign-in form for webmention.io asks you to sign in using a URL.

As with any repetitive tasks, typing my site's URL into these login forms gets annoying. My main browser (Firefox) is pretty smart. Autocomplete kicks in after I type a few characters from my URL and it will offer to fill in URLs that I've typed before. However, since most URLs start with "https://", autocomplete suggestions aren't very useful until I've typed out 9 or more characters (or if I start typing from somewhere in the middle).

Helpfully, "url" is one of the many attributes in the WHATWG Autofill spec! It's described like so:

Home page or other Web page corresponding to the company, person, address, or contact information in the other fields associated with this field

In theory, it should be possible for sites with Web Sign-in to improve this process with the help of the browser and Autofill. For example:

<input name="url" type="url" autocomplete="url">

Or more specifically, use your "home" (personal) URL:

<input name="url" type="url" autocomplete="home url">

It's my thinking that, with this in place, a browser should automatically suggest my URL without me typing anything at all!

A URL-shaped hole in Autofill

I tried this out by setting up url autocomplete suggestions on two different apps with Web Sign-in. (Specifically, my personal instance of Aperture, and the IndieWeb webring).

I then tried signing in and out several times to both sites, using the same URL each time. Browsers tested include Firefox, Chromium, and iOS Safari, all with Autofill enabled.

I am sad to report that none of the tested browsers attempted to automatically fill in the URL value. The extra autocomplete attribute didn't break the default autocompletion, but I still see it suggest every URL it knows about rather than learning one.

I have had trouble finding documentation on how specific browsers implement Autofill. One note in Jason's 2016 article suggests that browsers may need multiple "hints" before it will decide that a particular input is part of a group which should be auto-filled.

Another hint comes from Chromium's settings for managing Autofill data. This is what the form looks like for adding a new address:

Chromium address dialog with fields for name, street address, and more. There is no field for URL.

Notice a field that isn't there?

Wed May 20

IndieWeb NYC (aka Virtual HWC US East) Meetup 2020-05-20 Wrap-Up

IndieWeb NYC's meetup for May 2020 (also virtual Homebrew Website Club US East), met on Zoom from 6pm - 8pm EDT on May 20th.

Here are some notes from the meeting!

jmac.org β€” Moved to NYC and started attending local HWCs just before The Lockdown. Very interested in Webmention as a technology to connect websites to one another - but wants to improve the focus on how it can be used for real human interaction!

martymcgui.re β€” Long-time IndieWeb and NYC organizer. Been working on lots of random projects. Currently thinking about turning his pile of "read" posts, largely dumped from GoodReads, into more usable pages about what he's reading now, reading next, and read recently.

david.shanske.com β€” Long-time IndieWeb and NYC organizer. Been working on location features, aspirationally. Looking forward to a time when he can thrill audiences by reporting being in a location other than "Home".

Sandro β€” Has been building CMSes and more for years. Been working on some new stuff that works even offline!

Kevin β€” Worked w/ sandro at Limewire some years ago! Attended past HWC SF meetings in the Before Times. Has been calling into the West Coast virtual meetings, first time calling into East Coast. Wants his site (zootella.com) to publish to 3 places - webserver, local files, and Beaker Browser (just went 1.0!)

Mike β€” Did web development for years, then stopped, now back again! Learned about IndieWeb through Micro.blog community. Interested in making sure the software he develops is a "good IndieWeb citizen". Working on a kind of Meetup competitor.

jgregorymcverry.com β€” Long time IndieWeb and NYC organizer. Currently working on a website for a poetry radio show. Folks from all over the world can submit clips. It's wiki-based, but can also receive webmentions.

gRegorLove.com β€” In San Diego, but joining East Coast to see some new faces. Been out of IndieWeb-land for a bit but dipping toes back in.

kevinmarks.com β€” Long-time IndieWeb. Microformats co-founder with Tantek and has been blogging forever!

Colin (vonexplaino.com) β€” From the east coast... of Australia! Been working in the web forever, new to IndieWeb. Recently been working on a lightbox that works without JavaScript.

Other topics of discussion:

  • Kevin showed a demo of his site running locally on his hard drive, on his website, and inside Beaker Browser. (Here's the Beaker 1.0 beta announcement)
  • Talked a bit about how Beaker works. You make edits locally and then they are published from your own machine. Others on the Beaker network can share your site. Everything is signed with keys and content-addressable so you're the only one that can make changes to your published stuff.
  • Beaker left behind DAT in the 1.0 release, breaking old URLs. They promise to never do this again, though?
  • Kicks Condor did some good writing on Dat:// and how Beaker used it, as well as Duxtape, a tool that he built to share mixtapes over Dat.
  • Kevin Marks has done a presentation on Dat, as well! Went through it in the Zoom. Compares to Web Packaging, including issues with content-addressability like trying to apply copyright takedowns and censor content.
  • With so many tools, projects, protocols, and more available that solve different parts of the problems of self-publishing, how can we encourage more folks to pick them up and use them instead of silos?
  • Owning your own content and publishing compared to organic foods. It's more involved and expensive, and some folks see it as niche or unnecessary, but you get benefits for the effort!
  • Twitter rolled out a feature to control who can reply to specific tweets. Predictably, they were terribly smug about it.
  • Context collapse is a problem everywhere on the web, but it's such a deep problem on Twitter that maybe they can't claw it back. So, this feature is a maybe almost-good idea that won't actually help the folks who receive the most abuse.
  • There's a new microformats parser for JavaScript!Lots of interest in publishing it under an IndieWeb or Microformats umbrella to supersede the previous one (microformats-shiv?) which is some years out of date. Difficulty: need to track down who "owns" the Microformats account on NPM.
  • It passes a lot of the newly updated tests, includes support for mf2 and mf1, and more! Thanks to Jason Garber for kicking off some recent work there.
  • gRegor reviewed recent updates to php-mf2 that are very close to a new release!
  • jmac.org working on a command line tool called Whim (link?) to allow folks to receive and process webmentions. Hopes to have something for folks to play with in the next month. This was kicked off by a friend trolling him by sending webmentions and nudging him to support posting short notes to his own site.
  • kevinmarks.com is revisiting mention.tech to fix some issues with timing out on unresponsive pages.
Left-to-right, top-to-bottom: martymcgui.re, Kevin, david.shanske.com, kevinmarks.com, Colin, gRegorLove.com, Mike, kartikprabhu.com, jmac.org

Thanks to all who joined us! We will see you all again at our next IndieWeb NYC (aka vHWC US East) meetup online on June 17th! Keep an eye on indieweb.nyc or events.indieweb.org/tag/nyc for the exact date, time, and online location!

Sat May 2
↩ Replied to https://gregorlove.com/2020/04/represent-the-indieweb/
post from
Represent the #indieweb on your Animal Crossing island! To get your own, access the kiosk in the Able Sisters store and search for Design ID MO-5MDH-M0LJ-3MX1.
Marty's character in Animal Crossing wearing an IndieWebCamp t-shirt smiles while standing next to Blathers the owl. Biff the hippo complements Marty's IndieWebCamp t-shirt, crediting GRegor from RazzlDazzl.

Thanks to gRegor for the IndieWebCamp swag for Animal Crossing!

Fri Apr 17

IndieWeb NYC (aka Virtual HWC US East) Meetup 2020-04-15 Wrap-Up

IndieWeb NYC's meetup for April 2020 (also virtual Homebrew Website Club US East, met on Zoom from 6pm - 8pm EDT on April 15th. It was mostly NYC folks, with one joining briefly from Portland!

Here are some notes from the meeting!

jmac.org β€” writing about webmentions on fogknife.com. Learned a lot about them through sending a "strange" RSVP to an event at events.indieweb.org. The RSVP was a longer post, which also included an RSVP inside it. events.indieweb.org treated the post as both an RSVP and a blog post about the event. Jason enjoyed learning about moderating webmentions through that experience! He also accidentally reposted a bunch of links to IndieNews because his site moved from http to https, and those are "new links". Eek!

aaronpk.com β€” had some time between giving a workshop and speaking at allthetalks.online. can now post photos from his Nintendo Switch to his website by making a new Twitter account that is just for posts from his Switch, then setting up a cron task to pull and post new tweets to special tags on his site, like the #ACNH tag for posts from Animal Crossing New Horizons.

david.shanske.com β€” now a member of NOAA's Citizen Weather Observing Program (CWOP)! Making him an official weather source. Working on a large project of archiving IndieWeb event videos from YouTube to archive.org. Hopes to find interested in re-watching some older IndieWebCamp videos to reconstruct notes that were lost when Mozilla recently shut down their Etherpad instance.

martymcgui.re β€” Still posting one cat GIF per day during the COVID-19 shutdown in NYC. Recently started work on a "consolidated watch later" list using IndieWeb building blocks - mostly with microsub channels in Aperture as a queuing mechanism.

Other topics of discussion.

  • Home studios! aaronpk has a very nice setup with multiple cameras, switchers, and great lighting. Marty has some parts on order so he can use a DLSR as a webcam. GWG has a nice set up also!
  • Personal "this is how I IndieWeb" pages might be useful for helping on-board developers, since each is a personal setup and won't immediately be considered "expert advice". For example, Marty's page on the IndieWeb wiki. Starts at a very high level and adds more detail the further you read.
  • More open tests for Webmentions (beyond the strictly-plumbing webmention.rocks)
  • Sourcing home supplies in this time of lockdown. GWG recommends bidets.
Left-to-right: david.shanske.com, jmac.org, martymcgui.re

Thanks to all who joined us! We will see you all again at our next IndieWeb NYC (aka vHWC US East) meetup online on May 20th! Keep an eye on indieweb.nyc or events.indieweb.org/tag/nyc for the exact date, time, and online location!

Thu Mar 19

IndieWeb NYC (aka Virtual HWC US East) Meetup 2020-03-18 Wrap-Up

IndieWeb NYC's meetup for March 2020, which was also Virtual Homebrew Website Club US East, met on Zoom from 6pm - 8pm EDT. Folks joined us from New York, Connecticut, San Diego, San Francisco, Los Angeles, Toronto, London, and Berlin!

Here are some notes from the meeting!

gRegorLove.com β€” gRegor is calling in from San Diego! Was at the recent IWC Austin. Currently working on updating site the header across his site to make it more responsive and now to be more consistent across his pages. He's also been playing w/ typography and vertical rhythm. More notes on that below!

martymcgui.re β€” Marty has not worked much on IndieWeb projects recently. Currently doing an Eternal Caturday project, posting one animated cat GIF per day while staying home and "social distancing".

svenknebel.de β€” Sven joins from Germany (where he is up late). Slowly getting back into IndieWeb projects via text files he wrote sometime around 2018. Looking over items labelled "really need to be done at some point".

cheuk.dev β€” Cheuk joins from London (and is also up late). Co-organized the IndieWebCamp London online event last weekend and learned a lot. Working on adding more IndieWeb building blocks to her site.

tiaramiller.com β€” Tiara is working on un-breaking how she updates her website. Also working with a Long Island Women in Tech group, helping make a sign-up page to automate invites to their community Slack. Her jobs is still making her go to work in person rather than work from home!

dmitri.shuralyov.com β€” Dmitri is currently joining from Canada! Worked on his website last weekend. Wants his iteration speed to be faster than industry change, but that wasn't true for the issue tracker that he runs on his site. It has a public API that he doesn't want to break for other people. Now forking that feature to his own site so he can make changes.

david.shanske.com β€” David remote participated in IWC London and has a lot of new projects! Currently working on making the links on the top of his site match those at the bottom.

tantek.com β€” Tantek is staying in under a shelter-in-place order in SF! His work is very virtual already, but he is now seeing almost no humans. Most recent site update was adding a recent photos grid to the sidebar on his site's front page during IWC Austin. Still posting (positive) photos every day!

mfgriffin.com β€” Matt maybe broke his indieauth/relmeauth setup for the IndieWeb wiki? Looking to fix that so he can go through his TODO list there. Wants to pick something to finish during this meetup!

jmac.org β€” Also fogknife.com. Jason is in NYC now and helping organize IndieWeb events. Learned of IndieWeb ~2 years ago, specifically interested in webmention. So much so that he wrote a Perl module for it! Builds his own CMS Plerd and wants to add webmention to it this summer in a way that other folks might be able to use. So far he has something like a clone of webmention.io that works as a command line utility.

jgregorymcverry.com β€” Greg had a productive IWC London. Added CSS subgrid (now supported in Firefox) to the article cards on his site. Also added fluffy's webmention.js to his article pages so his site now displays webmentions! He thought it would be harder. Spending his time now making lots of videos and posting them as he tries to make tutorials for teachers who must now teach online. Recently added bittorrent links to his videos because they're eating up a lot of bandwidth on his shared host.

boffosocko.com β€” Chris joins us from LA! Been working on a TiddlyWiki for his own site. He is interested in using it as a Commonplace Book, taking notes on all sorts of things, and wants to add proper microformats2 and webmention support so his wiki can interact with those of others!

Drew β€” Joins us from Connecticut (and often attends HWCs organized by jgregorymcverry.com). Drew is a preschool teacher and is working on his district's website. Also working on mcweeneyaquaticconsulting.com and demoed some of the layout features he's been working on.

Other topics of discussion:

  • Vertical rhythm and typography! gRegor has been learning about it for his site and found several interesting resources:
  • A philosophical question: what are our websites? Replacements for ourselves?
    • Ben WerdmΓΌller used to have a voice-controllable bot on his website that answered questions about him. It seems to be gone now?
    • Would a historian be able to understand "who you were" by your website alone?
  • Storing webmentions! Jason is working on a new project that "would work for no one else but works for me". It was inspired by some brainstorming by Tantek and others on the IndieWeb wiki.
  • How do all the IndieWeb bridges work for IRC, Slack, Matrix, etc? IRC is Freenode, the web and Slack bridges are community projects maintained by Aaron Parecki, Matrix.org runs a Freenode bridge for Matrix users, the Discord bridge is maintained by another community member.
  • EXIF metadata - there are a lot of incompatible versions of it with a lot of special-case handling!
  • Is Kicks Condor okay? We are pretty sure the answer is yes. We definitely want him to continue work on Fraidycat!
  • Demos!
    • Jason showed the storage folders and format (UUID folder names with "webmentions.json" files). Previously these were serialized Perl objects!
    • Dmitri showed his latest issue tracker.
    • Marty showed his Eternal Caturday feed, and demoed a test page for David showing location info on a post extracted from a photograph's EXIF metadata.
A screenshot of the Zoom video conferencing app with 11 smiling faces.
Left-to-right, top-to-bottom: cheuk.dev, martymcgui.re, tiaramiller.com, dmitri.shuralyov.com, david.shanske.com, tantek.com, jgregorymcverry.com, svenknebel.de, mfgriffin.com, gRegorLove.com, jmac.org

Thanks to all who joined us out! We will see you all again at our next IndieWeb NYC (aka vHWC US East) meetup online on April 15th! Keep an eye on indieweb.nyc or events.indieweb.org/tag/nyc for the exact date, time, and online location!

Thu Feb 20

IndieWeb NYC Meetup 2020-02-19 Wrap-Up

IndieWeb NYC's meetup for February 2020 met at Think Coffee on Mercer St on January 25th around 2pm.

Here are some notes from the meeting!

jmac.org β€” Is now in NYC for the foreseeable! Looking forward to more IndieWeb events in NYC. Put up a "Now" page in December, and ended up chatting with the person who recently started the trend of making Now pages. Has been dusting off his Perl modules like Web::Mention and Web::Microformats. Also has some publisher interest and a draft outline for an introductory book on Webmention!

dmitri.shuralyov.com β€” Has wrapped up his work on building IndieAuth into his site so that other folks can log in using their own domain as their identity. He's now getting back to making improvements to his Go projects issue tracker. The first step there is to pull his projects off the public version of his issue tracker into a new private one so he can iterate on it quickly without affecting other users. He's also been playing with various databases available to Go and is leaning towards not worrying about selecting one now. Instead: keep content in memory and don't let your server process die. πŸ˜‚

filippo.io β€” First time at an IndieWeb event! His day job is security for the Go language project. At the meetup tonight he added links to his site to enable RelMeAuth, which let him log into Dmitri's website using his own website as his identity!

aaronparecki.com β€” Spent lots of time getting his new open source events service Meetable in shape to be as easy as possible to install. He built configuration wizards to help walk through the setup process on shared hosting, and automated away even more of the work when you launch it on Heroku! Aaron also recently updated his /photos to include captions when you hover over them. This helps them show up correctly on micro.blog so he can be part of the February photo challenge. Aaron also showed off SIMTRACKER β€” a WiFi e-Ink badge he's been working on that pulls an automatically-generated image off his website to summarize his recent activity, including food, drink, sleep, time away from home, phone battery, and more. Oh, and he published a new book 😏.

martymcgui.re β€” Not a lot of work on his own site, but recently built a single-use "random job placement" website for a friend who is launching a book about an absurd journey through temporary work. Marty complained that the work he did on indieweb.nyc was largely made obsolete by Aaron's excellent Meetable project β€” folks can follow IndieWeb Events in NYC on events.indieweb.org/tag/nyc/. He has hopes to continue working on the project site, eventually getting live updates from Meetable. At the meeting Marty set up a copy of Meetable with Aaron's help, largely to test out the setup workflow, but maybe to post improv shows... Marty also wants to improve, document, and encourage folks to build on the Microsub-powered photo frame he built on an Adafruit PyPortal so long ago, particularly how he got the low-powered touchscreen device to work with IndieAuth through an IndieAuth Device Flow Proxy.

Other topics of discussion:

  • !!con (Bang Bang Con) is happening May 9th-10th in NYC. The call for proposals for 10 minute lightning talks is open! Proposing a talk means you're guaranteed a ticket to the event!
  • We may try new venues for IndieWeb NYC meetups, including Columbia University (near Broadway and 125th St) and the Ability Project at NYU (Brooklyn near MetroTech).
  • Filippo doesn't like JSON Web Tokens, publicly, because they are too easy to configure insecurely. Aaron warns that they are getting baked deep into a new draft of some OAuth spec. 😬
  • Some discussion was had about verifying two-way links between your homepage and your silo account for RelMeAuth. When making indielogin.com, Aaron decided to verify that the silo account links back after the user has logged in to their account β€” primarily because using the silo's API is so much more reliable than trying to scrape their silo profile information.
  • Is This Week in the IndieWeb Audio Edition coming back? Not right now, but Marty reminds everyone that he documented in detail how he summarized the newsletter content into a podcast script each week. Reading all the updates and making the summaries is the most time-consuming part of making the podcast. Perhaps some tooling and collaborators could make this process more incremental as new articles, events, and wiki content appear?
  • Aaron walked Marty through the process of setting up a new instance of Meetable on Heroku and it went pretty dang smoothly, though there was one server error speedbump. There's already a GitHub issue for it.
  • Maybe Aaron will work on making IndieLogin easy to self-host, soon??
  • Aaron recently experienced a weird bug with yellow streaking in low-light photos on his iPhone. Searching around indicated that other people had experienced the same thing ... and that it went away with the latest software update. Strange errors in HDR processing? It's weird that cameras are computers.
  • Everybody loves WireGuard as a magic-feeling VPN tunnel thing. Aaron recently got it working on his home network without running the WireGuard software on his router(s). He plans to write this up soon!
5 attendees smile at the camera, huddled around a small table with laptops on it in a busy coffee shop
Left-to-right: filippo.io, dmitri.shuralyov.com, jmac.org, martymcgui.re, aaronparecki.com

Thanks to all who came out! We will see you all again in March! Keep an eye on indieweb.nyc for the exact date, time, and location! You can subscribe to the calendar there to receive automatic updates!

Mon Feb 3

Thanks to Ruxton for making available the source to the IndieWeb Best Nine, here are my “Best 9 Photos of 2019”.

The app walks your personal website, looking for photo posts, then makes a collage of the best nine. “Best” is determined by most IndieWeb likes or replies.

I initially tried to use the online version, but ran into some issues, so I grabbed the source and started tweaking it to handle some quirks of my site.

  • My monthly archives contain next/prev links that can be used to crawl my whole archive, but I don’t consider e.g. /2019/01/ to be a “feed”, so it’s just a collection of h-entry items. I updated the microformats2 crawler to support pages that are a collection of h-entry without a containing h-feed.
  • Counted replies marked up as ‘comment’ rather than ‘reply’.
  • Changed the resulting image size to fit more with my site’s layout.
  • Filtered out comments from myself, as well as automated comments on my checkins from Swarm via OwnYourSwarm.
  • Added cropping to make non-square images square.
  • Added some debugging to spit out my posts and their interaction counts.

Here are the links to the individual top 9 photo posts!

You can find my modified version of indieweb-bestnine on GitHub!