👈🏼 🕸💍 👉🏼
Skip to main content

PGP: C756 2813 F881 06E2 6F1F 547B 003F 530D 3859 B702

Learn more about me. Email me at

cleverdevil

cleverdevil

cleverdevil

cleverdevil

cleverdevil

micro.blog/cleverdevil

www.npmjs.com/~cleverdevil

cleverca.st

 

Automate configuration of mp-destination and token

At present, Indiepaper for macOS requires that the user manually configure their target micropub endpoint and a bearer token. This is nice and explicit, but it isn't a particularly good user experience. It would be better if configuration was automated.

Currently, I am thinking that I should add auto-configuration via a URL handler for the macOS app. Something like this:

`indiepaper:configure?micropubTargetURL=https://aperture.p3k.io/micropub&bearerToken=ASDF`

Then, when clicked, the link would launch Indiepaper for macOS, store the configuration, and let the user know that they're all set.

 

Indiepaper for macOS

1 min read

Indiepaper LogoIndieWeb Summit 2018 took place a few weeks ago in Portland, OR, and my project on day two was to create a service called Indiepaper, which is a "read it later" service for the IndieWeb. Indiepaper makes use of Mercury by Postlight Labs under the hood to extract article content and then publish it to a Micropub destination for later reading. Indiepaper is open source and is deployed on AWS Lambda using the Zappa framework. The Indiepaper website includes a tool to create a Bookmarklet for your web browser, and a Workflow for iOS that adds system-wide support for sending links to Indiepaper.

In order to make Indiepaper even easier to use, I created Indiepaper for macOS, which adds system-wide sharing support for Indiepaper to macOS. Here is a quick video demo of Indiepaper for macOS in action. Indiepaper for macOS is also open source, so feel free to poke around in the source code, and submit pull requests if you have improvements!

 

The simplest option would just be to let people manually configure Indiepaper by having them enter their Bearer token and Micropub Endpoint from Aperture.

I think @aaronpk is considering making it possible to IndieAuth directly with a Microsub channel in Aperture, which would provide a better experience eventually. In the meantime a manual configuration option would still be useful.

 

Add native support for Indiepaper

1 min read

Regarding Together

Now that I've launched Indiepaper, I'd love to see Together add native support for sending articles to Indiepaper with the click of a button. This would require a few configuration settings, including the configuration of a bearer token and a target micropub destination.

 

Testing post from Icro via Micropub.

 

Freeing Myself from Facebook

5 min read

Ever since my discovery of the IndieWeb movement, I've wanted to free myself from Facebook (and Instagram) and their brand of surveillance capitalism. I want to own my own data, and be in control of how it is shared, and I don't want it to be used for advertising.

I've had this incarnation of a personal website for a few years, and have mostly been following the POSSE publishing model, publishing most forms of content on my website, and then automatically (or manually) syndicating that content to silos like Facebook and Twitter. But, much of my content still remains trapped inside of Facebook and Instagram.

Until now.

As of March 4, 2018, I've pulled the vast majority of my Facebook content into my website, and all of my Instagram photos into my website, paving the way for me to delete myself from Facebook (and potentially Instagram) by the end of 2018. What follows is a high-level overview of how I made the move.

Facebook

Exporting Data from Facebook

While Facebook does offer an export feature, its extremely limited, only includes very low resolution versions of your photos, and is generally very difficult to process programmatically. After some research, I discovered the excellent fb-export project on GitHub. Once installed, this tool will dump a huge amount (though, not quite all) of your Facebook data into machine-readable JSON files.

Since my website is compatible with the Micropub publishing standard, I then needed to convert this Facebook-native JSON data into microformats2 formatted JSON. Enter granary, an amazing swiss-army knife of IndieWeb by Ryan Barrett. Using granary, I whipped up a quick script that transforms the exported data into native microformats2 formatted JSON:

https://gist.github.com/cleverdevil/f33530706d6e8dacd13a8bd8e8c15dba

Publishing Liberated Data

At this point, I had a directory full of data ready to publish. Sort of. Unfortunately, not all of the data is easily translatable, or even desirable, to publish to my website. As a result, I created another script that let me, on a case by case basis, publish a piece of content, choose to skip it entirely, or save it to deal with later.

https://gist.github.com/cleverdevil/c857695bb2de1e46686d720cad9d124c

After running this script, I had a significant amount of my data copied from Facebook to my website. Huzzah!

Dealing with Photo Albums

Facebook has a "photo albums" feature, and I definitely wanted to get those memories onto my website. Again, I wrote a script that processes the exported data, and selectively allows me to upload all of the photos in an album to my website via Micropub, and then drops microformats2 JSON out that I could publish later.

https://gist.github.com/cleverdevil/d9c08ddc6eb2da0d060a5f6fe87ddf64

Once I finished processing and uploading all of the photos for the albums I wished to copy over, I ran a simple utility script I keep around to publish all of the albums as new posts to my website.

Here are some of the results:

Notice, one of these comes all the way back from 2009!

Almost There

There are still quite a few photos and other types of posts that I haven't yet been able to figure out how to migrate. Notably, Facebook has strange special albums such as "iOS Uploads," "Mobile Uploads," and "iPhoto Uploads" that represent how the photos were uploaded, not so much a group of related photos. Unfortunately, the data contained in the export produced by fb-export isn't quite adequate to deal with these yet.

Still, I am quite pleased with my progress so far. Time to move on to Instagram!

Instagram

Instagram has been slowly deteriorating as a service for years, so much so that I decided to completely stop publishing to Instagram earlier this year. It turns out, dealing with Instagram is a lot easier than Facebook when it comes to liberating your data.

Downloading My Data

After some research, I found instaLooter on GitHub, which allowed me to quickly export every single photo in its original resolution, along with nearly every bit of data I needed... except the photo captions. I ran instaLooter, and embedded the unique identifier in the filenames (which instaLooter refers to as the "code').

Getting Metadata and Publishing

I wrote a script that used granary to lookup the photo metadata and publish to my website via Micropub:

https://gist.github.com/cleverdevil/5bb767fd152de9b4c246d01086e91399

Note, I used the non-JSON form of Micropub in this case, because Known's Micropub implementation doesn't properly handle JSON for photos yet.

Conclusions

It turns out, that with a little knowhow, and a lot of persistence, you can liberate much of your data from Facebook and Instagram. I feel well on target to my goal of leaving Facebook (and maybe Instagram) entirely.

 

Editing a post in Known can have destructive side effects on content

1 min read

There is a bug in Known which causes HTML posts published via Micropub to be changed (usually in bad ways) when "editing" the post, even when you don't actually make any changes to the post. I discovered this issue when publishing via Sunlit 2.0, which supports Micropub.

I published two stories:

Because Sunlit doesn't yet support syndication via Micropub, I clicked "edit" on one of the posts, and toggled on syndication to Twitter and Facebook, and then clicked "save." The result was that the post's content was changed (in a destructive way, resulting in visual regressions), even though I hadn't actually edited the content, or even clicked into the content editor.

Seems like this is a bug.

 

Replied to a post on github.com :

While I think a Gallery object would be nice, eventually, I am not convinced that its necessarily the best way to go here. Its my understanding that pretty much all Entities support attachments, so doing it in the near-term in a more cross-cutting way would enable any type of post created via Micropub that contains multiple attachments to elegantly display the images.

 

Great progress is being made on Together - https://github.com/cleverdevil/together - an open source "reader" for the open web, with support for IndieWeb standards like Micropub and Microsub. Check out this quick demo – http://share.cleverdevil.io/JNrG4pVNfY.mp4

 

This is great! I'd love to see @evergreen_mac support the broader via Micropub and Microsub! We're doing that in Together – https://github.com/cleverdevil/together – but would love a native macOS alternative. Excited for @evergreen_mac!

https://twitter.com/evergreen_mac/status/947562202730344448

 

One thing I loved about the early days of Twitter was the UX innovation from third-party clients like Twitterific and Tweetie. I’d love to see that happen for Micro.blog, and RSS, JSON Feed, Micropub, Webmention, and other IndieWeb concepts make it entirely possible.

 

Congrats to @danielpunkass on the launch of the new MarsEdit! Support for Micro.blog is awesome. My request? Support for Micropub! I’d love to use MarsEdit to write status updates, bookmarks, likes, reposts, photos, and more on my website 😀

 

I think I’d use the Micro.blog iOS app for status updates exclusively if it supported Micropub syndicate-to. @manton has done a great job making an attractive and functional app! Looking forward to continued evolution.

 

Great job fixing Micropub support in the iOS app, @manton!

 

Enjoying the new macOS client for Micro.blog. Good job, @manton! Excellent start. My biggest request across the board is the ability to provide `syndicate-to` targets for my website, which supports Micropub.

 

My grill is now updating its own site via , posting to Twitter and Micro.blog.

 

IndieWeb Summit 2017 Recap

3 min read

On June 24-25, I attended my first ever IndieWeb Summit in Portland, Oregon. IWS is:

...an annual gathering for independent web creators of all kinds, from graphic artists, to designers, UX engineers, coders, hackers, to share ideas, actively work on creating for their own personal websites, and build upon each others creations.

IWS 2017 was graciously hosted by Mozilla in their very cool Portland office, which provided fantastic video conferencing gear enabling people from around the world to join in. Day one kicked off with keynotes providing an overview of the IndieWeb, the state of the IndieWeb, and real-world examples of IndieWeb sites. Following the keynotes, attendees had an opportunity to introduce themselves and show a demo of their own personal websites. In my introduction, I showed off my On This Day implementation, along with a live demo of my website automatically logging when I watch media on my Plex server.

The group then adjourns for lunch, followed by a Barcamp-style scheduling session, where individuals can propose topics of conversation, where we quickly filled four tracks with amazing hour-long sessions for the day. Topics included WordPress, specialized Micropub clientspersonal website designs, voice and the IndieWeb, and a session that I proposed on creating a timeline for the open web. Every session was fun, engaging, and thought-provoking. In the evening, I joined a group of attendees for dinner and drinks, and then headed over to Ground Kontrol for some classic arcade games before calling it a night.

Day two gave attendees some time for hands-on assistance with their personal websites. I joined David Shanske and Ryan Barrett in leading a session to help people interesting in IndieWeb-ifying their WordPress websites. The afternoon was all about personal hack time and projects before we wrapped the day up with demos. I contributed a Micropub Media endpoint implementation to Known and then started working on a new Indie-reader called "together" with Grant Richmond and a few others. To wrap up, there was an afterparty at Voicebox Karaoke sponsored by DreamHost, which was an absolute blast.

I have attended many conferences over the years, and IndieWeb Summit 2017 was one of my all time favorites. Kudos to organizers Tantek Çelik and Aaron Parecki for doing an incredible job putting the event together. Everything was top notch!

Probably the best news of all is that nearly every moment of the event was recorded and posted online, along with detailed notes of each session. I've been catching up on sessions that I missed over the last few days, and my appreciation for the event is only growing.

Can't wait for next year!

 

 

Preview of Sunlit 2.0

Very excited to see Manton continuing to create and promote user-friendly applications and services that can help push the adoption of IndieWeb technologies like Micropub.

 

Success! Just added Micropub Media Endpoint support for @WithKnown! 🎉

 

Feed reader revolution: it’s time to embrace open & disrupt social media

Great post by Chris Aldrich that echos my own feelings about the potential for an integrated content creation, consumption, and interaction experience for the open web. I've already got a good start on it, since I have a website that supports Webmention and Micropub, and I've created a plugin for Nextcloud News, my feed reader of choice, that enables interactions.

My goal is to completely exit Facebook by the end of 2017 and Twitter shortly thereafter.