Tag: Micropub
TO: app developers considering #Mastodon and other #ActivityPub related apps and interfaces
Perhaps spend a day or two to add Micropub support to the platform first, then your app could potentially be used to publish to ANY website/platform that supports the W3C spec. #OpenWeb #IndieWeb #FTW
If you really want native ActivityPub mirroring of your site on Mastodon, you might try @pfefferle’s ActivityPub plugin (along with his NodeInfo and Webfinger plugins). I still need to tinker with my own set up for better formatting, but you could follow my WordPress site @chrisaldrich@boffosocko.com
A while back I did set up a system that uses IFTTT to target my micropub endpoint for syndicating some content from silos that don’t have good/easy APIs or methods into my website. Generally I do this as private posts so I have the data and selectively post it as necessary. These days I primarily do this with my Hypothes.is annotations to my site, though only a tiny fraction of the 12,000+ is publicly available: https://boffosocko.com/kind/annotation/. Currently only about 1/3 of my 45,000+ posts are publicly viewable on my site.
Eventually someone might build Micropub as a Service so you can sign up and give it social silo accounts to have the service PESOS copies of your content to your website.
In general most micropub clients authenticate using an IndieAuth mechanism which micro.blog also supports and this allows apps (Newsblur in this case) to send formatted data (an article’s title, URL, and a person’s reply, for example) to be published on third party websites. Developers interested in the pieces might inquire in the IndieWeb chat about the quickest and easiest method for implementing or to see some other examples and find open sourced clients/servers that already do most of the heavy lifting: https://chat.indieweb.org/dev. It would be great to see Newsblur added to the growing list of clients that can publish to independent third party websites.
Unless and until Newsblur were to support this, I notice that it does have IFTTT support, so one might be able to carefully write some recipes that allows some functionality to dovetail with any website that has a micropub endpoint. I’ve documented some similar work I did using IFTTT to get the Inoreader feed reader to post reads, bookmarks, and replies to others’ sites to my WordPress website using micropub. I would abandon Inoreader for a reader with good Micropub support.
h/t to Jeremy Cherfas’
for bringing this to my attention.Handwriting my Website with a Digital Amanuensis
A Capital User Interface Idea
A few weeks ago I saw Ben Stokes’ post about PaperWebsite.com and my immediate reaction was, “I have to be able to do that!” I’ve long enjoyed writing by hand over typing as the tactile feel of of pen or pencil and paper is such an enjoyable one. I particularly enjoy using a nice fountain pen on high quality paper.
Obviously there was a route to doing a workflow like this as Ben had shown. I just needed to figure out a method with a low enough barrier that I could personally implement for doing this with my own WordPress website.
A Quick Solution
Not being a serious coder, I immediately began looking for ways I could leverage some of the IndieWeb building blocks my site supports. Micropub seemed like a no-brainer for the posting portion since I’ve got an endpoint using the Micropub WordPress plugin. Certainly not wanting to manually re-type everything once I was finished writing, I needed a way of converting my handwriting to text and then automating a way to plug that into my micropub client.
A short burst of searching revealed that Google Docs could do Optical Character Recognition (OCR) on photos. I pulled out my IFTTT app and found a recipe for taking a photo and saving it to Google Drive. Then I set up another recipe to watch a particular folder in Google Drive and take whatever text appears in new documents and send it to my website using a webhook that uses my Micropub endpoint. The whole thing only took a half hour from idea to a working prototype. In the end it took a tap to open IFTTT on my phone and another tap to take the photo. Then I had to manually open the document to trigger the OCR. Finally, I had to manually open and edit the post before posting.
I had set the micropub client to post as a draft as a default just in case the OCR wasn’t perfect. This was fortunate as the Google photo OCR was so solid that the letters “Dia” of the microscopic text from the word “Diamond” partially visible on my pen cap that was in the photo got pulled into the post.
In the few times I’ve used this workflow so far, I’ve mostly done straight text and syndicated posts to Twitter, Mastodon, and Micro.blog. Perhaps in the future I might set things up to add HTML links, but they’re fairly easy to add at the editing stage.
Since I started my experimentation, a few others in the IndieWeb community have noticed the paperwebsite.com site. Greg McVerry popped up and linked to it as well. He mentioned that he had a digital notebook with OCR capability. This reminded me that I’ve got both a Livescribe Echo pen and a Rocketbook notebook with a Pilot Frixion pen that has an app for uploading digitized images of notebook pages. I hadn’t done OER with Livescribe in ages, so I pulled out the Rocketbook, which is cleverly erasable and thus reusable not to mention being fairly inexpensive. A bit of quick set up allowed me to take a photo of a page which automatically uploads to Google Drive and does its own OCR process. This already dovetails with my prior process, so the whole thing is much smoother. As a result, I’m composing this post in my Rocketbook notebook and will automatically upload and post it to my site as a draft. I’ll probably add some links, a photo or two, and then publish it in a bit.
Rocketbook Interface
The Rocketbook notebook has some solid pages with an odd shiny texture and feel, presumably part of the technology that makes it easy to wipe them clean for reuse. The bottom of each page has seven different faint icon images which are meant to allow the app to determine where to send the digital copy of the notes. One can send them via email or to a variety of storage or sharing services. I could imagine having different recipes set up to allow one to publish their notes to different websites based on the icon X-ed out. Given the micropub possibilities, one could also use the icons as a means of differentiating post kinds (for example, indicating that a particular post is a note, an article, or a bookmark). Another alternate idea would be to use the icons as a means of selecting which services to syndicate your content to (for example, the diamond could mean syndicate this post to Micro.blog, the bell could mean Mastodon, and the clover syndicates the post to Twitter).
The overall process is quite elegant and pleasant. The OCR for Rocketbook is reasonably good aside from a few spelling errors which are easy enough to click and fix. I’ll admit that I far prefer using a fountain pen on some Tomoe River paper to using the Rocketbook paper and the Frixion pen, but really, who wouldn’t?
Handwritten notes for your digital zettelkasten or personal wiki
Since I’ve already got most of the infrastructure, I’ve gone the extra mile and set things up so that I can take notes on index cards zettelkasten-style and use a similar set up to post them to my Obsidian vault using similar IFTTT recipes.
Try it yourself
For those who want to set this up themselves, I’ve documented the IFTTT/micropub portion before. I’ll post the specific code I’m using below for these who may want it. The nice part is that as long as you have a micropub server for your website platform (there are many CMSs that have native or plugin support) the WordPress portion isn’t a deal breaker for others.
I’m sure, now that there are multiple proofs of concept, some enterprising developer will build a custom micropub client to do all of this work automatically or with a few options built into a clever interface.
I could see pen and paper manufacturers (Moleskin, Leuchtturm, Rocketbook, etc.) creating apps for doing this too. I’d love to see and hear about others trying this out for themselves. Hopefully it can be done with almost no code or some easy cut and paste from my example. Ask if you need help, and I’ll see what I can do to help.
IFTTT Webhook settings
This following will be roughly standard for WordPress endpoints using the plugin, but they can obviously be modified for your platform of choice.
- URL:
https://example.com/wp-json/micropub/1.0/endpoint
- Method:
POST
- Content type:
application/x-www-form-urlencoded
- Body:
access_token=PasswordHere&content=<<<{{Body}}>>>&h=entry&category[]=Social%20Stream&post-status=published&visibility=private
Historical examples
While doing some of this I did come across some older examples of handwriting to websites. Aside from handwriting typography which I think is usually ugly, I saw some interesting examples from Jeff Bridges[1] [2], gRegor Morrill, and scrolled through some great examples of handwritten and typed Tweets by Alton Brown. In his case, he was simply taking photos of his writing, but it worked! I’ll admit he had some fun and was definitely creative about it. Hopefully Twitter always exists to save the copies for him.
— Alton Brown (@altonbrown) November 20, 2012
— Alton Brown (@altonbrown) December 22, 2012
— Alton Brown (@altonbrown) December 10, 2012
— Alton Brown (@altonbrown) October 10, 2012
Conclusion
In short, I’ve now got another great way to post to my website. I love the great old school tactile user interface of pen and paper. Now I’m glad to have a reason to be able to do more of it in an ever-digitized culture.
Until I start working on cuneiform solutions…
Write On! 🖋
Editor’s note: This post was originally handwritten on Dec 16, 2021 at 20:15.
IndieWeb as a Service (IaaS) Idea: PESOS from all the Silos with Feeds using Micropub
Imagine a Micropub client that could accept any form of feed (RSS/Atom/JSON/h-entry/etc.) as an input and publish the content to your personal website.
Then any silo service (Soundcloud, Goodreads, Flickr, etc.) with such feeds could be used to syndicate all of one’s content to their own personal website with reasonable fidelity.
I’d love to see services like IFTTT, Integromat, Zapier, etc. provide this sort of service. Using the individual APIs they’ve already got, they could provide higher fidelity of content mapping (eg. tags which many feed types don’t support) to people with their own websites.
Social media services that have widgets that people can embed into their websites should pivot to this sort of model for publishing their users’ data. They could still serve as discovery clearinghouses/hubs and serve ads. This would help make them less dependent on the major corporate social platforms like Facebook, Twitter, and Instagram for ancillary distribution and engagement.
#BridgeAllTheThings #OwnYourData #SetItAndForgetIt
I'll go over a lightweight implementation for sending Webmentions using F# and test it using the webmention.rocks website. Source code for this post can be found at the fsadvent-2021-webmentions GitHub repository.
Pen and paper publishing to your website? PaperWebsite is on to something.
Handwriting to Website #FTW
While browsing today I ran across an awesome concept called PaperWebsite.com. It allows you to write on paper, take a photo, and then upload it to a website. Your handwritten words published to your website. A tactile writer’s dream.
My immediate thought—I need to have this now!
Articles written by hand in my journal to my website? Short notes that I write on index cards published as microblog updates. How cool would that be? I was also talking to someone this morning about voice-to-text as a note taking concept. What about that too?
Of course, as you may know, I’ve already got a website. Do I need another one like this for $10/month? Probably not.
Value Proposition
But this has got me wondering “what the value proposition is for Paper Website as a company?” What are they really selling? Domain names? Hosting? Notebooks? They certainly seem to be selling all of the above, but the core product they’re really selling is an easy-to-use interface for transferring paper ideas to digital publishing. And this is exactly what I want!
The problem now is to buy this sub-service without all the other moving pieces like a domain name, hosting, etc., which I don’t need. Taking just the core service and abstracting it to the wider universe of websites could be a major technical hurdle (and nightmare).
IndieWeb and Micropub
Perhaps I could try find an OCR solution and wire it all together myself? I’d rather see the original developer run away with the idea though. So instead I’ll quietly suggest that they could take their current infrastructure and add a small piece.
Since PaperWebsite’s already got the front end up and running, why not add on Micropub support to the back end? Maybe Ben Stokes could take the OCR output and create a new Micropub client that could authenticate to any website with Micropub support? I have to imagine that he could probably program it in a couple of days (borrowing from any of the pre-existing open source clients or libraries out there) and suddenly it’s a product that could work with WordPress, Drupal, WithKnown, Craft, Jekyll, Kirby, Hugo, Blot, and a variety of other platforms that support the W3C spec recommendation or have plugins for it.
The service could publish in “draft” form and allow editing after-the-fact. There’s also infrastructure for cross-syndicating to other social services with Micropub clents, so note cards to my website and automatically syndicated to Twitter, Mastodon, or micro.blog? Yes, please.
And maybe it could be done as a service for a dollar a month or a few dollars a year?
I made a short mention of the idea in the IndieWeb chat, and it’s already a-buzz with implementation ideas… If you’re around Ben, I’m sure folks there would lend a hand if you’re interested.
The website, commonplace book, note taking, stationery, and fountain pen nerd in me is really excited about where this could go from a user interface perspective.
How Moleskine, Leuchtturm, LiveScribe or the other stationery giants haven’t done this already is beyond me. I could also see serious writing apps like iA Writer or Ulysses doing something like this too.
Social Media, Fast and Slow
It’s reminiscent of the system 1 (fast) and system2 (slow) ideas behind Kahneman and Tversky’s work in behavioral economics. (See Thinking, Fast and Slow)
It’s also interesting in light of this tweet which came up recently:
I very much miss the back and forth with blog posts responding to blog posts, a slow moving argument where we had time to think.
— Rachel Andrew (@rachelandrew) August 22, 2017
Because the Tweet was shared out of context several years later, someone (accidentally?) replied to it as if it were contemporaneous. When called out for not watching the date of the post, their reply was “you do slow web your way…”#
This gets one thinking. Perhaps it would help more people’s contextual thinking if more sites specifically labeled their posts as fast and slow (or gave a 1-10 rating)? Sometimes the length of a response is an indicator of the thought put into it, thought not always as there’s also the oft-quoted aphorism: “If I Had More Time, I Would Have Written a Shorter Letter”.
The ease of use of the UI on Twitter seems to broadly make it a platform for “fast” posting which can too often cause ruffled feathers, sour feelings, anger, and poor communication.
What if there were posting UIs (or micropub clients) that would hold onto your responses for a few hours, days, or even a week and then remind you about them after that time had past to see if they were still worth posting? This is a feature based on Abraham Lincoln’s idea of a “hot letter” or angry letter, which he advised people to write often, but never send.
Where is the social media service for hot posts that save all your vituperation, but don’t show them to anyone? Or which maybe posts them anonymously?
The opposite of some of this are the partially baked or even fully thought out posts that one hears about anecdotally, but which the authors say they felt weren’t finish and thus didn’t publish them. Wouldn’t it be better to hit publish on these than those nasty quick replies? How can we create better UI to solve for this?
I saw a sitcom a few years ago where a girl admonished her friend (an oblivious boy) for liking really old Instagram posts of a girl he was interested in. She said that deep-liking old photos was an obvious and overt sign of flirting.
If this is the case then there’s obviously a social standard of sorts for this, so why not hold your tongue in the meanwhile, and come up with something more thought out to send your digital love to someone instead of providing a (knee-)jerk reaction?
Of course now I can’t help but think of the annotations I’ve been making in my copy of Lucretius’ On the Nature of Things. Do you suppose that Lucretius knows I’m in love?
There is a WordPress plugin called Micropub (which needs to be used in conjunction with the IndieAuth plugin for authentication to their CMS account) that will allow students to log into various writing/posting applications.
These are usually slimmed down interfaces that don’t provide the panoply of editing options that the Gutenberg interface or Classic editor metabox interfaces do. Quill is a good example of this and has a Medium.com like interface. iA Writer is a solid markdown editor that has this functionality as well (though I think it only works on iOS presently).
Students can write and then post from these, but still have the option to revisit within the built in editors to add any additional bells and whistles they might like if they’re so inclined.
This system is a bit like SPLOTs, but has a broader surface area and flexibility. I’ll also mention that many of the Micropub clients are open source, so if one were inclined they could build their own custom posting interface specific to their exact needs. Even further, other CMSes like Known, Drupal, etc. either support this web specification out of the box or with plugins, so if you built a custom interface it could work just as well with other platforms that aren’t just WordPress. This means that in a class where different students have chosen a variety of ways to set up their Domains, they can be exposed to a broader variety of editing tools or if the teacher chooses, they could be given a single editing interface that is exactly the same for everyone despite using different platforms.
For those who’d like to delve further, I did a WordPress-focused crash course session on the idea a while back: Micropub and WordPress: Custom Posting Applications at WordCamp Santa Clarita 2019 (slides).