This is one of those posts I have wanted to write but kept forgetting to. I was reminded again while chatting with Marty, and when I asked him what podcasts he recommended, he went and wrote a whole post. So it's time I finally wrote mine. I'll try to break mine down into categories, too. Well-known You've probably heard of...
Below are notes from the "broadcast" portion of the meetup.
jonathanprozzi.net - Since last time, did some cosmetic updates to site. Also did a lot of traveling. Catching up now on finishing a series of posts he started at last HWC (May 10th). Now one-and-a-half posts behind his schedule. Wants to stick with consistency of writing something once per week.
amyhurst.com - Working on a website for work (something that is usually on her "some day" list). Gathering student questions from emails into an FAQ on a Wordpress site.
martymcgui.re - Added JSON Feed to blog.adafruit.com because it was easy and why not? Also talked about webmention notifications in his home Matrix chat server via Hubot. Is interested in more textual/conversational interfaces for things in his life and fewer apps and pages to remember to look at.
metamage.com (jjuran.org) - All sites now HTTPS. A couple are HTTP/HTTPS for classic MacOS clients, others are HTTPS-only. Used PNG/GIF and CSS to make a screenshot of an emulator animate when moused-over (bottom of https://www.v68k.org/advanced-mac-substitute/). Some fun browser issues w/ image handling (dithering?) in Safari. His site uses a homebrew Perl static site generator, shared CSS across all his sites. Planning to rework it in the V language.
Chatted about Micropub becoming a W3C Recommendation, including going through Aaron Parecki's announcement post, which is a very clear walk through of the development process. Talked about micro.blog as an up-and-coming social platform that supports Micropub out of the box. Talked about the power of social nudges (like "how's that project going?") for making progress on projects. Two of us (jjuran and martymcgui.re) will be at IndieWeb Summit in Portland later this June and are looking forward to it!
We hope that you'll join us for the next HWC Baltimore on June 28th at the Digital Harbor Foundation Tech Center!
I'm excited to announce that Micropub is now a W3C Recommendation! It's been a long road, but we made it! This is the final stage in the W3C spec lifecycle, and means that the spec has gone through several stages of review, and all parts of the spec have been implemented by at least two people. Incubation and Selfdogfooding Micropub...
Inspired by Marty’s post about receiving alerts from his website in his matrix chat, I got inspired to do the same for my site, only with Slack. I’ve been working on building Slack automation at my job this week, and I have a Slack group for my family (it’s barely ever used). So it was perfect timing to read Marty’s...
One reason lots of people don’t want to think long term these days is because technology keeps accelerating so rapidly, we assume the world will become unrecognizable in a few years and then move on to unimaginable. Long-term thinking must be either impossible or irrelevant.
Jonathan Prozzi and I have challenged one another to make a post about improving our websites once a week. This is me getting back on the train!
In a previous site update I wrote about setting up a system to notify me whenever my site received webmentions. Essentially, this meant that I could now get notifications on my phone and desktop whenever somebody interacted with my site, such as: replying to one of my posts on their own site, retweeting or favoriting one of my posts, or even RSVPs to my Facebook events.
One thing I didn't super like about this system is that it used the Pushbullet service which, while great, is not under my control.
I've been running a Matrix chat server at home for a while now. I primarily use it to chat with people in my household in IRC channels. I use a really nice client for Matrix called Riot, which runs in the browser, but is also available on Android and iOS, and is capable of sending notifications about chat events, which I have found really handy.
Recently, I've added a chatbot to my Matrix server named Hubot, thanks to the Hubot-Matrix adapter. Hubot is super neat because it is fairly easy to script up new behaviors, and it has nice built-in support for the web - both for making web requests, but Hubot also runs a server for accepting web requests. Once I realized this, it occurred to me that I could replace my previous notification system that uses Pushbullet with one that goes through Hubot.
First, a note on security. Exposing a chatbot's HTTP listener interface to the great wide internet comes at some risk! I made sure to the following:
I run Hubot behind a firewall, so no plain HTTP traffic can come directly across the internet.
Using another home server, I set up nginx to act as a secure HTTPS proxy, using a certificate from Let's Encrypt to encrypt all traffic that goes over the internet.
I decided that any behaviors I write for Hubot that use the HTTP listener will use some kind of secret token to ensure that the request is valid. I don't want spammers blowing up my chatrooms!
I decided that the bot should:
Allow a user to request webmention.io notifications for a given site into any room.
Generate and store a "callback secret" to work with webmention.io's Web Hook system and tell the user the URL and callback secret to configure over on the Webmention.io Dashboard.
Accept HTTP requests from webmention.io at something like <HUBOT_HOST>/hubot/wmio/notify
Verify that the request contains the callback secret
Generate a nice text summary of the notification based on its contents
Send the notification to the room that the user was in when they made the follow request.
Once installed, you can start a conversation with your hubot and ask it to follow a site:
you> hubot wmio follow mycoolsite.biz
hubot> @you OK! Use this as your Web Hook: <HUBOT_URL>/hubot/wmio/notify
And use this as your callback secret: 1a2b3c4d5e6f7890000
The string "mycoolsite.biz" can actually be anything and should be something easy to remember in case you want to unfollow notifications later. Hubot doesn't check incoming mentions against it at the moment.
You can enter the URL and callback secret in the Webmention.io dashboard, and future webmentions will be sent to your Hubot and output into the room of your choice.
I don't know how useful hubot-webmentionio-notify will be for other folks at the moment, but I am excited be getting these notifications via services that I control. I look forward to building more fun things with Hubot!
IndieAuth is a method for using your own domain name to sign in to other sites and tools. It’s one of the key parts of Micropub, the (newly) W3C recommended standard for posting to your site. IndieAuth.com is the original and one of the very few public implementations of an IndieAuth server that you can use, but recently I’ve been...
The Social Web Working Group has published a W3C Recommendation of Micropub. Micropub is a client-to-server protocol used to create, update and delete social networking content. Web and native apps can use Micropub to post notes, photos, events, and many others to servers that support the protocol. Users can choose to create content in a variety of client posting interfaces,...
FUNDED: a whole mess of iPhones for the National Immigration Law Center. Thanks to everyone who gave so generously! https://nilc.z2systems.com/np/clients/nilc/campaign.jsp?campaign=91&fundraiser=43703&
Baltimore Youth Solve Transportation Problems with Digital Fabrication
Last week, DHF hosted our 6th FabSLAM Showcase as the culminating event for this cycle of the annual digital fabrication challenge. This year, during FabSLAM, Baltimore-area youth were prompted to identify a problem they might encounter using any form of transportation and then use digital fabrication methods, like 3D printing or laser cutting, to create a solution. On May 4th,...
“MP3 is supported by everything, everywhere, and is now patent-free. There has never been another audio format as widely supported as MP3, it’s good enough for almost anything, and now, over twenty years since it took the world by storm, it’s finally free.”
So I'm trying a new wiring. This seems to work well. I post initially on my withknown site (leoville.net) - the feed is picked up by micro.blog (leo.social) and on the sidebar of my wordpress site (leolaporte.com). Known also has buttons for cross-posting to twitter, facebook, linkedin, and any arbitrary webhook compatible site. Yay indieweb!
Below are notes from the "broadcast" portion of the meetup.
jonathanprozzi.net - not been making his weekly posts in challenges with Marty. Inspired by a nearby bookstore closing, realized he had done lots of learning in bookstores over the last ~15 years. New idea for a series of posts cataloging all the things learned in a specific place over the years. Wants to journal the things he is learning on a weekly(ish) basis to build an archive.
brianey.com - been writing up lots of ideas for his blog but not finishing them. Based on that unfinished work, started writing about some new topics on creativity. For example, writing about starting things vs. achieving them. Looking forward to writing those including cute graphics of badgers, (em)barkers, etc. and being inspired by those posts to take on other unfinished posts.
amyhurst.com - working on an FAQ page for all the questions she gets from students seeking to get into the grad programs that she manages. It should be a useful resource for students, but also for her to copy and paste into emails from students who don't or won't read it.
martymcgui.re - brought a bunch of posts from an old blog into his site, including old comments from disqus. Did updates to site plumbing so he can add syndication to his posts after the fact with micropub updates, allowing him to get webmentions and notifications of interactions on Twitter, FB, etc via brid.gy without pulling out a laptop.
We talked about the upcoming 2017 IndieWeb Summit June 24th-25th in Portland, Oregon and discussed the indie RSVPs on the site. From there we ended up on Aaron Parecki's site and chatted about the amount of information that is collected and shared, what things we'd like to be collecting for review about ourselves, what things we're comfortable publishing.
We hope that you'll join us for the next HWC Baltimore on May 31st at the Digital Harbor Foundation Tech Center!
Jonathan Prozzi and I have challenged one another to make a post about improving our websites once a week. This one should have gone up last week!
A few weeks ago I posted some thoughts about my IndieWeb setup called "Easier POSSE with Micropub Edits?" in which I wished for a tool that would let me take a given post from my site, syndicate it to silos like Twitter and Facebook (tweaking the content if I want), and updating the post on my site to show the links to those syndicated copies.
I failed to make at least one important thing clear in my original post – why do I care about syndication links? There are many reasons.
If I decide that a post should be syndicated to a silo, it's because I want it to reach the people who follow me there and, if that is true, I also want their interactions to come back to my site. So, in these ways, a post isn't "done" unless it is on my site, with syndicated copies on the silos I care about, and with syndication links for brid.gy to feed the interactions back.
When implementing a new feature, it always helps to have something to test against. So, I went looking for a Micropub client which supported queries and edits. The test suite for Micropub at micropub.rocks includes a lovely implementation report grid, showing which Micropub clients support what features of the spec.
Of the clients listed, two of them were web-based and Open Source. I had played with and liked Inkstone in the past, but its edit features are currently considered a work-in-progress. So, I tried out Micropublish.net, and it was exactly what I was looking for.
Micropublish has a feature to let you enter a URL for a post on your site to edit. It will use Micropub source content queries to get the source data for that post and let you edit the content and other properties of the post. It can then send a Micropub update to save the updated version of the post back to your site, if your server supports updates. It even has a great feature for developers - a "Preview" button will show you exactly what request will be sent to your server for the update.
Micropublish.net is a great tool for testing out Micropub query and update support, but my Micropub server is bespoke, hastily-written, hand-rolled Python. So, while it was easy enough to add query support, it took me a while to get my code structure cleaned up, write some tests, and actually implement updates.
A New Workflow
I am pleased to say that it works and, with the help of Micropublish.net, I now have a functioning workflow for publishing to my site and syndicating to silos like Twitter and Facebook, even from my phone, without having to open my laptop, edit YAML data, and push git repositories around. It looks like this.
Make a new post to my site with a micropub client like Quill.
Open the post for editing in micropublish.net (I use Url Forwarder for Android to make this super easy on my phone, a bookmarklet makes it easy on my laptop).
In a new tab, log in to Twitter and make a similar post, copy the URL to the new tweet into the Syndication field on my post.
Repeat the steps to make posts on Facebook, Mastodon, etc., copying their URLs into the Syndication field.
Finally, hit "Update" in micropublish.net to update my post with the syndication links.
This is still a very manual process, but it now makes it possible to finish a post in a way that I couldn't before. In the spirit of manual until it hurts, I will use this for a while and see what existing pain points remain, and what new ones appear, to help decide what comes next.
Thanks to Barry Frost for micropublish.net and to Tantek for the nudge to write an update!