👈🏼 🕸💍 👉🏼
Skip to main content

Learn more about me. Email me at

cleverdevil

cleverdevil

cleverdevil

cleverdevil

cleverdevil

cleverdevil

www.npmjs.com/~cleverdevil

cleverca.st

trakt.tv/users/cleverdevil

mastodon.social/@cleverdevil

 

Take Back Your Web by Tantek Çelik – Fantastic Talk!

Fantastic talk by Tantek Çelik about owning your identity on the web, and fighting back against the centralization of identity into harmful social networks like Facebook. Includes an inspiring introduction that sets context, and then an overview of the and related technologies like microformats2, webmention, micropub, microsub, and more. Must watch!

 

iPad Pro Impressions

8 min read

iPad Pro

This past weekend, I took the plunge and purchased myself an iPad Pro, including an Apple Pencil and Smart Keyboard Folio. Amazon had the iPad Pro on sale for 16% off of list price, which is an uncommonly large discount that I couldn’t pass up. I also had saved up quite a bit of Amazon rewards credit, so my out of pocket cost was quite low. I’ve had my eye on an iPad Pro for quite some time, and now that I have one, its time to share my impressions.

Which iPad Pro?

I chose to purchase the smaller 11" iPad Pro in Space Gray with 256GB of storage. Why? Well, the 12.9" iPad Pro was very tempting, but my primary use case for this device is to be a highly portable alternative to my MacBook Pro. What do I plan to use it for? Ideally:

  • Productivity
    • Email
    • Documents
    • Task Management
    • Note-taking, as an alternative to my trusty paper notebooks
  • Development
    • SSH’ing into my various Linux environments
    • Local development, preferably using Python
  • Writing / Blogging
    • Publishing to my website
  • Media
    • Streaming from my Plex server
    • Hulu, Netflix, Amazon Prime Video, etc.
  • Reading

Given my constraints and desire to have something more portable than my MacBook Pro, I opted for the smaller size iPad Pro and Apple’s very slim keyboard case, with the Apple Pencil to help me replace my paper notebooks. I chose the 256 GB storage option because the base model only offers 64 GB, which is just not enough for my needs.

The Good: Hardware

So, what’s the good news? Well, there’s a lot to like. First off, the hardware itself is simply stunning. Its light, thin, fast, and beautiful. The screen is bright and crisp, and the bezel-less design is reminiscent of Dieter Rams' greatest hits. The last hardware design that I loved this much was the iPhone 5s.

The accessories are similarly well designed. The Smart Keyboard Folio attaches to the iPad Pro with ease thanks to an array of powerful magnets, and the Smart Connector means that I never have to worry about charging or pairing the keyboard. It just works. The Apple Pencil is similarly impressive, with an ingenious magnetic attachment to the side of the iPad Pro, and wireless charging that is effortless.

The Good: Software

iOS has come a long way in the past few years, adding rudimentary file management in the Files app, early multi-tasking capabilities, and iPad-specific features that enhance the overall experience. That said, there’s a long, long way to go from an OS-level to truly make the iPad Pro a professional tool. I’ll touch on that more later.

Now, there are some truly amazing apps that I have been enjoying to help me with my target use cases. They’re not all perfect, but I am encouraged by the vibrant and growing ecosystem of truly professional apps for iPad. These give me a great deal of hope for the future of the Mac as these apps begin to show up via Marzipan. Below is a list of apps I am using or experimenting with so far:

  • Productivity
    • Email – Apple Mail. I am a heavy email user, and try out email clients often. For now, I am sticking with the built-in option, which is adequate.
    • Documents – Pages, Numbers, Keynote, and Drafts for personal projects. For work, we use GSuite, so I have installed Google’s Drive, Slides, Sheets, and Docs apps.
    • Task-Management – I use Things on my Mac and iPhone, and now I am using it on my iPad Pro.
    • Note-taking – This is an area where I am spending a lot of time experimenting. I have very much enjoyed note-taking in Drafts with my Smart Keyboard Folio attached, but am also trying out note-taking apps that are more Apple Pencil driven, including Notability and Nebo.
  • Development
    • SSHPanic’s Prompt and the emerging iSH, which adds an emulated Linux environment to iOS.
    • Local Development – The aforementioned iSH has been a revelation, enabling me to do local development in a very similar way to how I would on macOS, with vim, Python 3.7, git, virtualenv, and other common terminal-based tools. I’m also experimenting with Pythonista and have my eye on a few other editors to play with (Textastic, Buffer, etc.).
  • Writing / Blogging
    • Blogging – Drafts with a custom Micropub action for publishing to my website.
    • Microblogging – Directly on my website, through Indigenous, or via the Micro.blog app.
  • Media
    • StreamingPlex, Hulu, Netflix, Amazon Prime Video, etc.
    • Local VideoInfuse, VLC, and Plex. To get video into Infuse and VLC, I tend to use youtube-dl inside of iSH.
  • Reading
    • Books – Apple’s Books app works great for ePub content.
    • News – Apple’s News app is decent, but mostly I use Safari with my favorite news sites, or more likely I use my feed reader.
    • ComicsChunky Reader is pretty solid, though I wish this entire category was more like Plex, with rich metadata indexing and organization on the server, with clients for reading.
    • Web – Safari.
    • Feeds – I have installed Together as a Progressive Web App on my home screen and it works well.

While none of the above apps are perfect, I have been quite impressed with them as a whole.

The Bad: Hardware

While the iPad Pro and its accessories are truly impressive hardware, they’re not free of issues. Because the bezels are so small on the iPad Pro, it can be a little uncomfortable to hold in portrait layout while reading. In the lap, the whole Smart Keyboard Folio and iPad Pro setup is a bit top-heavy, making it slightly unstable. Other than these minor nits, overall I think the hardware is top-notch.

The Bad: Software

While the app ecosystem is amazing, and iOS has made great strides, there are still some fundamental missing pieces that prevent me from viewing iOS as a true alternative to macOS:

  • Keyboard – While the Smart Keyboard Folio is generally great to type on, in spite of its small size and low key travel, it is greatly hampered by software limitations in iOS. There is no ability to re-map keys in iOS, so I am stuck with a system-wide Caps Lock key, and no ESC key. Some apps, such as iSH, allow you to map Caps Lock to ESC, but this should really be handled system-wide. In addition, the Smart Keyboard Folio has a “globe” button in the bottom left corner which is infuriating. Pressing it pops up the Emoji keyboard on screen, and its right next to the control key, which I use heavily.
  • Fonts – iOS comes with a small set of fonts, and there is no standard, built-in way to install additional fonts. I have been able to use an app called AnyFont to install fonts, including my preferred programming font, Dank Mono, but because the system itself doesn’t have support for font management, most apps don’t surface font customization. Kudos to Drafts, though, for allowing users to pick from any font available to the system, including ones installed through AnyFont.
  • File Management – Apple added the Files app to iOS, and its a good start, but has so far to go to truly make it a pro-level file management tool. In addition, there isn’t any ability to plug in external storage to my iPad Pro, in spite of the fact that it has a USB-C port.
  • Multi-Tasking – iOS has a very rudimentary multi-tasking system, which allows you to place multiple apps onto the screen at the same time, in floating panels, and in split views. It works, but is fiddly to use, with delicate gestures required to bring up the dock, drag apps over each other, and position them. In addition, there is no way to have multiple “windows” of an app used in different multi-tasking sessions. I think Apple is definitely innovating here, looking for new ways to approach multi-tasking than traditional window management. In many ways, iOS multi-tasking reminds me of tiling window managers, just… not as good. I’m hoping for good news on this front at WWDC.
  • Web Browsing – Safari is an awesome browser. But, on the iPad, too often websites give you the mobile version of their site, rather than serving up the “full size” website. In addition, there isn’t any sort of download manager, or support for extensions other than content blockers.
  • iSH – I have heaped praise on iSH above, and it really is pretty incredible. Its also an open source project, and is rapidly improving… but its not there yet. Things I’d love to see added to iSH that would greatly improve my experience: custom font selection, better performance, compatibility with additional software, tabbed sessions, and a choice of a different base operating system than Alpine Linux.

Conclusions

Overall, I am thrilled with my iPad Pro, and really excited to see where Apple is headed with iOS for “pro” users. There is so much to like, and massive potential for improvement. While I don’t see the iPad Pro displacing my laptop anytime soon, I think it will become an important part of my workflow.

 

@rosemaryorchard enjoying the latest episode of Automators with @siracusa! I was thinking that you should do an episode on Hammerspoon - http://www.hammerspoon.org - which I utterly adore. I’ve even created a Micropub integration for Hammerspoon - https://github.com/cleverdevil/Micropub.spoon

 

Listened to Episode 9: Microblog Musings

On this episode of clevercast, Jonathan explains his love for Micro.blog in the wake of the controversial WordPress 5.0 release, and then shares why openness matters. ditchbook – Free yourself from Facebook. futurepub – Scheduled posts, powered by Micropub. micromemories – Create an “On This Day” page for your Micro.blog website. Indiepaper – A read later service built for the open web. microgram – Create a “Photo Grid” page for your Micro.blog website.

By clevercast

 

For those of you that have been asking, for iOS is on the way, thanks to @EddieHinkle. Soon, you’ll be able to save content for later using natively on iOS. We are just waiting on Apple!

 

I have shared my Micropub action for @DraftsApp to the actions directory – https://actions.getdrafts.com/a/1QC

 

Finally made a functioning Micropub action for @DraftsApp. Needs some tweaking, but I should be able to share soon.

 

I’m interested in building a @draftsapp action to publish notes via Micropub. I’m finding their documentation inscrutable. Anyone have pointers? Source for a similar action (perhaps publishing to Tumblr or WordPress) would be super helpful.

 

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!

 

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.

 

Listened to Episode 5: More than Public

In this episode, I consider the possibilities for personal websites in the wake of the recent “Day One” outage and privacy snafu. Can personal websites be more than just places for public sharing? Can open standards like Micropub help push app developers to create awesome experiences?

By clevercast

 

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.