This Week's Sponsor:

Notify

Monitor Websites & RSS Feeds. Private. Simple. No Servers Required.


Posts tagged with "automation"

Poster 2.0

Tom Witkin’s Poster is my favorite WordPress blog editor for iOS. Poster comes with a clean interface, support for Markdown (the app can convert plain text Markdown to HTML before publishing), and full WordPress integration. The app’s excellent support for WordPress features like custom fields, drafts, slugs, and images means I don’t have to write on the iPad and later “adjust everything” on a Mac before publishing. Poster is, in fact, a core aspect of my iOS automation workflow.

Poster 2.0 is out today, and it’s another fantastic update that reassures me Tom is committed to making this app the best WordPress editor for iOS. The interface has been further refined, and it’s now easier on the eye with an even deeper focus on content rather than UI chrome. I don’t use these for MacStories, but Poster now supports WordPress custom post types and excerpts, alongside the “sticky” functionality that we use every once in a while to pin a post to the top of the site.

What I like about Poster 2.0 are the “minor” additions that make for a much better workflow. Custom fields can now be given a local label so that a friendlier name will be displayed in Poster instead of the actual name (e.g. “URLCustom_linked” becomes “Linked post”); the Markdown preview and HTML conversion now handles en and em dashes (something that annoyed me in the previous version of the app); if you edit a published post (as we usually do when we catch typos or make corrections), you can now save the edited draft locally before publishing. I also appreciate how the “Copy to Clipboard” action now only received a post’s URL (Poster 2.0 builds on the solid foundation of Poster 1.0 for post sharing), and the app is noticeably faster at syncing multiple posts at once.

There are two more changes I want to mention. You can now insert images at any point in the editor by tapping & holding and selecting the “Insert Image” option from the popup menu; I tend to do all my image insertion beforehand, but this is a welcome addition for those times when I may forget about an image. And last, Poster now supports Greg Pierce’s x-callback-url to return to a specific URL after completion. Poster already had support for a URL scheme that allowed post creation from other apps, but now you’ll also be able to create a post and return to another app.

Here’s a bookmarklet I made to grab a browser’s selection and use it as text in Poster, get a webpage’s title and use it as post title, open Poster, and return to the browser. This kind of URL callback enables a streamlined workflow for, say, discovering links in Safari, quickly posting them to WordPress, and going back to Safari again.

javascript:window.location='posterapp:///create?text='+encodeURIComponent(window.getSelection())+'&title='+encodeURIComponent(document.title)+'&callback_url='+encodeURIComponent(location.href);

I also made a quick video showing the process in action. Unfortunately, getting the browser’s selection only works on the iPad.

Poster is a great app, and while not revolutionary, the 2.0 update refines several aspects of the previous version and adds more powerful functionality for WordPress users and iOS automation geeks. I highly recommend it.


“Open In” and Mobile Safari

“Open In” and Mobile Safari

Continuing the discussion about the “Open In” menu for iOS, David Chartier proposes “Open In” for Safari URLs:

Finally, Document Sharing in Mobile Safari would further promote an app-centric workflow on iOS. Bookmarklets are often designed to open another web service in a new browser tab, and let’s face it, working on the web is a crummy experience. But even if they’re wired to open an app, bookmarklets are still a colossal pain to install which cuts off most attempts at the knees. This largely confines Mobile Safari and its content to an island, making iOS’s URL-to-app workflow needlessly tedious for anyone brave enough to try it.

In its current form, Mobile Safari only supports “Open In” for documents displayed in the browser, such as PDFs that Safari can render. The (new in iOS 6) share sheet doesn’t come with options to send a URL around, but only to copy it to the system clipboard.

Bookmarklets were never meant to take off among consumers, because they require a minimal amount of knowledge (or steps) that average users don’t want to deal with. However, developers had to resort to using bookmarklets because it was the only way to provide something that worked to pass a URL from Safari to a third-party app/web service. Some developers have gone out of their way to provide an “Install Bookmarklet” experience that wouldn’t scare off the majority of users.

Overall, “Open In” for links doesn’t sound like a bad idea. Imagine being able to quickly send a YouTube video to Facebook or a link to the Twitter app with an Apple-sanctioned menu and not some JavaScript hack. There are aspects I don’t know how I’d solve right now (How do supported apps appear in the iOS 6 share sheet? Are they available in a dedicated page, or can users re-arrange them? Could Siri be told to perform such actions?), but, generally speaking, providing better web-to-apps communication would be a good start.

Two years ago, Marco Arment offered some ideas on a possible “Send To” panel for Safari. This is absolutely still relevant today, because it hasn’t gotten better.

Obviously, that would be far from my envisioned iOS automation for power users. I’ve been trying the beta release of Alfred 2 lately, and I like how the developers created a workflow visualization that is both powerful and intuitive in the way it connects visually triggers to actions and outputs. Ideally, I’d love to see Apple considering an “Automator for iOS” – the kind of feature that most users don’t care about but that would likely make a subset of them reconsider iPads as “real work” machines. Apple could even go as far as making that kind of user automation look “cool” with the right interface decisions and a powerful inter-app communication layer that is not limited to Apple apps (read: with an API).

I hope this kind of stuff is in the cards for iOS 7.

Permalink

Quick Unit Conversions With Measures and Launch Center Pro

Quick Unit Conversions With Measures and Launch Center Pro

Measures by Michael Neuwert is one of the iPhone apps I’ve been following here on MacStories since I started the site in 2009. I’ve later reviewed (and became a fan) of the iPad version of the app, Measures HD. The latest update to Measures for iPhone, version 2.3, adds more units, iPhone 5 support, and a URL scheme. As you know, automation and URL schemes for iOS apps is something I’ve been focusing on lately, so I was curious to try out the Measures implementation.

A basic Measures URL looks like this: x-measures://convert?from=USD&to=EUR&value=100 – but it’s also possible to simply launch a specific category without starting a conversion by using something like: x-measures://convert?category=Mass. The convert action may also contain a category parameter to avoid ambiguities, and it’s possible to search as well using: x-measures://search?q=Watt.

Being based in Italy but working (remotely) in a US environment, I do a lot of conversions on a daily basis. Primarily currency (EUR to USD and vice versa) and temperature conversions to understand what my colleagues are talking about when they say “it’s cold over here”.

It was very easy to set up a Launch Center Pro action (Measures isn’t listed in the officially supported apps in App Cubby’s launcher yet) to start a Dollar to Euro conversion in Measures using input from Launch Center Pro. Using the first example URL I showed above, replace the numeric value parameter with [prompt-num] in Launch Center Pro. This will ensure that a URL-encoded numeric string will be sent from Launch Center Pro’s number pad to Measures, directly displaying the conversion. In this way, I can keep Measures inside a folder, and create shortcuts for my most-used unit conversions that I’ll launch with a single tap from Launch Center Pro. Thanks to URL schemes, the conversion process will take two seconds and I’ll be shown the final result without having to tap or select anything else.

Currently, there’s no official documentation for Measures’ URL scheme and I’m not sure Michael is using the x-callback-url protocol (though it certainly looks like it). If you’re looking for a quick unit converter you can launch from Launch Center Pro (I was looking for a way to send a browser selection as well, but alas), check out Measures 2.3.

Permalink

PDF Expert 4.4 With PDF Converter Integration

PDF Expert 4.4 With PDF Converter Integration

PDF Expert by Readdle is my preferred PDF reader app for iPad. It comes with a polished UI, various annotation tools, and, more importantly, Dropbox sync. The latest update to PDF Expert for iPad, version 4.4, features integration with Readdle’s other PDF app, PDF Converter. As Readdle describes it:

Anyone who has already installed Readdle’s PDF Converter on the iPad can easily convert any files into PDFs from within PDF Expert. Once you send a document to convert in PDF (action button -> convert to PDF), it instantly converts to PDF and is saved back in PDF Expert for annotation. So far, users that have .doc, .pages, .ppt now can convert these file in PDFs and annotate them in PDF Expert.

I have tried the feature with .rtf files (which I often receive), and it works as advertised. Essentially, it works with a URL scheme that from PDF Expert can forward a document to PDF Converter (if installed); this is done through a “Convert to PDF” menu available in the upper toolbar of the document viewer. Once pressed, PDF Expert will send the document to PDF Converter, which will convert it and automatically send it back. I have asked Readdle whether this kind of integration was achieved using x-callback-url, but they told me they’re using their own implementation called RDIntegration.

I personally run my own remote PDF converter through Dropbox, but the option in PDF Expert works nicely and it’s entirely automated, so check it out if you’ve been looking for something like this on iOS and Readdle’s apps.

Permalink

Audiobus Inter-App Communication On iOS

Audiobus Inter-App Communication On iOS


I’ve been on a personal “quest” to find examples of iOS inter-app communication. I’ve set up workflows with Pythonista and the apps I use, and I’ve searched for apps that have implemented x-callback-url in meaningful ways. I believe Apple will eventually have to address the need of letting iOS apps better communicate with each other with something more powerful than an Open In... menu.

Today I was sent a link to Audiobus. The developers call it an “inter-app audio routing system” – a way to bring music apps together to avoid sending files back and forth between different apps. It is, essentially, a way to record on an iPhone an iPad using the capabilities of multiple apps at once: with a system based on inputs, outputs, and effects, Audiobus routes audio through specific apps and keeps playing audio from different apps in the background. The videos are really the best way to understand the whole concept behind this solution, as it doesn’t look like anything that has been done on iOS before.

I would love to know the technical details behind this. From what I can gather, Audiobus provides an SDK that developers can use to register their apps as input and output sources, or effects. Once registered, Audiobus creates a “workflow” for these apps and displays a “panel” at the side of an iPhone or iPad, showing the apps that are playing in a single session. I don’t think there’s a time limit on background audio, and it appears the side-panel is also capable of stopping audio from specific apps and switching back to them.

I am intrigued by the possibilities offered by a third-party SDK for better iOS inter-app communication: right now, Audiobus already works with apps like Rebirth for iPad, Loopy HD, SoundPrism Pro, and MultiTrack DAW, and more developers will join the program soon. I’m not sure how the panel concept would translate to tasks that don’t involve audio; however, imagine, say, being able to copy a URL from your browser into your text editor without switching back and forth between them. Or getting a file from the Dropbox app embedded into a Pages document without a tedious variety of multitasking gestures and Copy & Paste menus.

Check out Audiobus here.

Permalink

From Instapaper and Pythonista To Dropbox and Evernote As PDF

I’ve already expressed my preference for archiving webpages as PDFs rather than simple “bookmarks” on an online service. When I come across a webpage that I know I want to keep for future reference, I like to generate a clean-looking PDF file with selectable text that I can rely on for years to come.

Lately, I have become obsessed with turning longer articles I find on the Internet also into PDFs for long-term archival. For as much as I like Instapaper, I can’t be sure that the service will be around in the next decades, and I don’t want my archive of longform and quality content to be lost in the cloud. So I have come up with a way to combine Instapaper with the benefit of PDFs, Dropbox, and automation to generate documents off any link or webpage, from any device, within seconds.

Yesterday I put together an iOS and OS X workflow to generate PDFs remotely on my Mac, starting from a simple bookmarklet on iOS. On an iPhone or iPad, I can simply hit a button in Safari, and wait for Pythonista to turn a webpage (that’s already been passed through Instapaper’s text bookmarklet) into an .html file in my Dropbox, which is then converted to PDF and added to Evernote. It sounds complex, but in actual practice I can go from a Safari webpage on iOS to a PDF in the Evernote app in around 30 seconds. Hopefully you’ll find this quick solution useful; feel free to modify it and/or send suggestions. Read more


Home Automation With An iPad

Home Automation With An iPad

Here’s another interesting use case for my ongoing coverage of Pythonista. From the Pythonista Community Forums, user nlecaude shares a script and a demo video showing how he managed to control the lights in his house using Pythonista (thanks, Gabe).

The Pythonista app is pretty simple, it’s basically crossfading between different images to show the current state of the lights. I have one layer for each state (3 lights so 2^3) and I have invisible layers that I use as buttons to trigger the lamps and transition on and off. I’m quite fascinated by the possibilities of Pythonista.

If you watch the video below, it basically looks like magic. This guy is tapping on a photo of his room on an iPad to turn the actual lights on and off. In practice, he’s using a Python library to control a Philips Hue system that reacts to touch input from Pythonista.

For those unaware of Philips’ product, Hue is a personal wireless lightning system that can be remotely controlled and programmed to offer different lightning settings and color combinations for every occasion. Philips isn’t offering an SDK for developers yet, but the Python library manages to directly connect to the Hue wireless bridge and send input commands.

As nlecaude writes, this is just a script put together in 10 minutes with an unofficial library. The possibilities for home automation programmed from an iPad are seriously intriguing.

Permalink

Andreas Zeitler’s Keyboard Maestro Macros Repo

Andreas Zeitler’s Keyboard Maestro Macros Repo

A new collection of Keyboard Maestro macros by Andreas Zeitler:

Macros are meant to be imported “folder by folder”, rather than all at once. I’ve tried to make it more convenient for the user by putting all macros in a group labelled “Keyboard Maestro Macros Repo” before exporting. This way they are imported in a group of the same name, so that you can easier find them.

Note however: Some macros have very “commonly” used triggers like F1, ↑, or ↓. In these instances it is best to put the macros in a new group that is only available in one certain application, or a group that can be turned on and off by a separate shortcut. The window manipulation macros are an example of that. The triggers for moving a window by 1px in either direction is simply ↑, ↓, ←, and →. If not put in a new group you won’t be able to use these keys anymore.

Andreas is the creator of the Keyboard Maestro Markdown Library, which I use on a daily basis. In fact, I don’t think I could ever come back to using a Mac – or writing on my computer in general – without the Keyboard Maestro Markdown Library, which is now part of the repo available on GitHub.

I’m already a big fan of several macros Andreas included in this new collection. I particularly appreciate the ones related to Mail: there’s one to easily copy a message’s unique URL, and another one to print a message as PDF with a single keystroke.

Get them here.

Permalink

Quickly Email A Picture On iOS Using Pythonista

Quickly Email A Picture On iOS Using Pythonista

In my review of Pythonista yesterday, I didn’t include any scripts to send email messages. Email is, however, a huge part of my iOS workflow, as I often send screenshots back and forth with my teammates about upcoming site features or new apps I’m testing. Fortunately, Pythonista developer Ole Zorn shared today a script that uses smtplib to quickly send an image via email. His script is available on GitHub Gists here.

I have modified it slightly to import my login data using keychain and send an image that’s been previously copied to the clipboard. In this way, I can take a screenshot/photo, open the Photos app, copy it, and send it via email in seconds, at full-size. You can save the script as shortcut on your Home screen and have one-tap access to it, or, even better, you can copy images from Safari without saving them first to the Camera Roll (though, in my tests, this hasn’t always worked reliably). My modification also uses console.input_alert to let you enter a different email address and Subject every time, and it plays a sound effect when an email is sent. Right now, the ImageMail script works with Gmail, but it could be easily modified to work for other email services.

In a future version of Pythonista, I think it’d be neat to have a dedicated Address Book module to return contact fields such as email addresses or Twitter usernames; Ole suggests Reminders and Calendar integration might be handy as well. I think Pythonista has a very bright future, so we’ll see. In the meantime, you can download my modified version of the ImageMail script here.

Pythonista is available at $4.99 on the App Store.

Permalink