Two Map Photos Workflows on iOS

A few weeks ago I thought I’d be clever (too clever it turns out) and try to integrate Dr. Drang’s map-photos.py Pythonista Script with Workflow so I could map photo locations directly from Photos.app. I was hoping to use Workflow to create an action extension that could grab a photo, put it to the clipboard and then run map-photos.py to display the location of the photo on a map without having to launch the script through Launch Center Pro or, slower still, opening up Pythonista, navigating to the script, and then tapping run. Unfortunately that project turned out to be a miserable failure because clipboard.get_image() in Pythonista doesn’t allow you to get the metadata of the image on the clipboard. Out of sheer laziness I left the useless workflow on my phone, taunting me every time I opened the app.

With the advent of general stability in Workflow 1.11, I decided to spend some time thinking about how I could better use the app. Tonight, for some reason, inspiration struck when I saw the Map Photos workflow looking me in the eyes. So I decided to take on the challenge.

The initial workflow idea was to create an action extension that could select multiple photos and display them all as separate pins on the map. While I think this is possible, I didn’t want to get derailed with that. I just wanted a reliable way to serially display multiple images on a map on iOS. The easiest way I could figure out how to do this was by using an X-Callback-URL. The problem is that there isn’t a reliable way to return to the source app when using an X-Callback-URL from an action extension on iOS. Also, Apple Maps doesn’t support the callback function of the X-Callback spec, obviously.

So I looked online and it turns out that Google Maps on iOS does support the X-Callback-URL spec, making the choice a no-brainer. So I built two different workflows:

  • one that would be able to run as an action extension to map photos directly from Photos.app as well as other apps, and
  • one that could take a series of images, display them in Google Maps, then return to Workflow to load up the location of the next image and send that one to Google Maps.

The what I like better about the Dr.’s method is that it actually grabs the Latitude and Longitude from the image file, whereas my workflows grab the address. I typically prefer Lat/Long because, especially in rural or newly developed areas, using the address can be highly inaccurate. This is another reason why I’m using Google Maps on iOS for this project. Three years into Apple Maps I still trust Google’s data more.


  1. probably because now I know that the steps of my workflows won’t just randomly be erased when running the workflow 
Advertisements

A URL Scheme for Logos Bible Software for iOS

As a quick follow-up to my previous post, it turns out that Logos for iPhone/iPad does have a URL scheme. No, not the type I was looking for with X-Callback support, but still, a URL scheme nonetheless. I thought I’d quick publish how I’m using it in case any other geeks are looking for a way to open Logos directly to a bible or book.

We have chosen Psalms as a passage of scripture for our two girls. As a part of my nightly routine with my daughters, I will read the Psalm with them. I could be a normal dad and pull out a physical bible[1] or I could pull out my phone, which I invariably have with me everywhere I go. That means that if we’re somewhere and we just need to read something to keep her engaged, I have easy access to it.

I had been using the built in “favorites” feature to Logos for iOS but that was way too many steps. I was trying to think of ways to get to get to the Psalm. Should I put the text into a markdown file and launch that file from Launch Center Pro? Should I use LCP to launch directly to a website like Biblia.com that will have the passage? Neither of these options were great in my mind. Then after a few weeks, I remembered that Logos had URL links long before I got into this whole iOS automation thing.

I went to the Logos forums and realized that someone had already done a great job with LCP & Logos. So here’s what I did.

  1. Went to the passage I wanted in Logos for Mac and selected Copy Location as URL.
  2. Send Logos URL to my iPhone via Command-C
  3. Open Launch Center Pro
  4. Create a new action using the url on the clipboard as the URL.
  5. Name the action.
  6. Boom! Open directly to the passage (or section if it’s a book)

Getting a URL from Logos Bible Software for Mac

 


  1. I should note that my daughter and I do read out of The Big Picture Story Bible by David Helm almost every night.  ↩

Using Editorial on iOS to Build The Ultimate Sermon Notes Tool

One of the things I love about our new pastor at church is that he sends out an outline of his sermon on Fridays to all the small group leaders along with discussion questions. This is great because it’s allowed me to take much better notes on Sundays and to be focused on the content of what our pastor is saying, not just taking detailed notes.[1] My main workflow for doing this has been to take the email or PDF of the sermon outline, copy it into Drafts, take my notes there, and then send it to Evernote with a custom action that puts it in my “Jesus” notebook, tags it with “Sermon Notes”, and adds the date stamp to the note title in my preferred format.

A Few Issues with Drafts

Taking my sermon notes in Drafts has been fine, but I’ve found myself fairly limited by the way Drafts is setup to work. Drafts was designed for, well, drafts. Type a quick note, send it to Evernote. Type a quick text and send it out. You get the picture. Longer-form writing isn’t in the app’s purview, and that’s what sermon notes have become for me.

The main issue I was having was getting text from the Bible apps into Drafts. I wanted it done with a URL scheme, but there aren’t any Bible apps that I’ve been able to find using the X-Callback-URL scheme. So I was

  1. opening Drafts,
  2. then opening a Bible app,
  3. copying the text to the clipboard,
  4. switching back to Drafts,
  5. pasting the text as a new draft,
  6. sending the text to TextTool for cleanup using a Drafts action, and
  7. switching back to the sermon notes draft.

This workflow was eventually simplified somewhat by incorporating a Launch Center Pro action, but it was still way too cumbersome. So I was searching for a way to keep my mind more focused on the sermon than the technology for note-taking.

My Issues With The Bible Apps Available On iOS.

Before moving on to how I solved my problem, let’s just discuss the state of Bible apps on iOS. On my Macs I use Logos Bible Software for all my bible study needs. I have primarily used their great iOS app as well for my mobile study, daily devotions, and for reference during sermons. However, the Logos app has this odd formatting issue. If you copy text and paste it into another app, it includes all sorts of weird formatting, specifically related to footnotes.

In the screenshots below you can see the footnotes in Logos for iOS are in superscript. Well, when those get copied in plain text and pasted, they get converted to regular text, sometimes with zero-character spaces between them as shown in the second screenshot.

Logos for iOS
Logos for iOS
Text Pasted from Logos for iOS into Drafts
Text Pasted from Logos for iOS into Drafts

So I was looking around for other iOS Bible apps and came across the ESV Bible app for iOS. Ironically, it was my wife (not a techie), who I noticed using the app, so I gave it a try. When it was formatted into plain text, the results were much nicer (screenshots below), and thus I was able to clean them up in TextTool with a simple wrap function.

The ESV App for iOS
The ESV App for iOS
The Raw Paste from the ESV app
The Raw “Paste” from the ESV app
The Final Product of TextTools Wrap Function
The Final Product of TextTool’s Wrap Function

This was fine, but it was still way too cumbersome for quickly getting Bible verses into my sermon notes, especially when the pastor was on a roll. I needed a tool that could help me when the pastor just starts listing off verses that support his point.

How Editorial Helped Me With Sermon Notes

I’ll be honest, I loved Editorial when it came out for about a month. Then iOS 7 happened. The app looked dated quickly and since iOS 7 broke TextExpander support, I essentially stopped using the app. But with the recent 1.1 update, I started using Editorial again quite a bit. So much so, that I started using it for my weekly sermon notes. It came to mind one Sunday, that if I could find a Bible app that supported the X-Callback-URL I could have my ultimate powerhouse for sermon note taking. So I pinged a few random people that I knew were into tech and Jesus on Twitter.

I want to thank everyone who responded. Ben Whiting, Jordan Shirkman, Phillip Gruneich, and Eric Pramono, you guys were great. Eric has an interesting post on how he uses Launch Center Pro and Pythonista to share verses. But eventually I discovered that the app I was looking for didn’t exist. As I was thinking through the problem that Sunday, I remembered something. The ESV bible[2] had an online version and just maybe, they’d have an API for non-commercial use.

BINGO!

The ESV site even had some sample script in Python, which is great because I don’t know how to script or program, I’m just able to reverse-engineer code occasionally. So, I built two simple workflows to make Editorial harness the ESV Bible’s API, and help me stay focused on the sermons and not technology on Sundays.

The Workflows for Editorial

As I mentioned above, I don’t know how to code, I simple reverse engineered some workflows and the sample code from the ESV API. There’s a lot of work that could be done on these scripts, but for now, they do what I need them to do. If you’re handy with either Editorial or Python and want to give me some suggestions, I’m all ears.


  1. My brain doesn’t do well with doing two things at once. If I’m taking good notes, I’m not generally actively engaged in thinking about the content.  ↩
  2. my translation of choice  ↩

Mr. Reader and Markdown Links

Tonight we were out at MyBurger with some folks from small group. I was talking to a friend who is in law school. We were discussing how technology can help his future law practice, and he asked me if I knew of an app that you could create your own wiki to track what is currently known about a case or a particular issue. He said he wanted to use his Feedly RSS feeds to save a section of an article, jot a few notes, and then save it somewhere for later recall. I told him I had an idea using Mr. Reader, Drafts, and Evernote.

Well I got home and finally purchased Mr. Reader to see what it can do. It’s actually really cool. My favorite feature is that it uses curly brackets to accept any text or data from the post and then automatically encodes it for you. That’s such a help for URL scheme beginners like me. I quickly ran into a problem, though. When I’d try to make the title of an article a markdown link while sending to Drafts, I would end up with an error. Because Mr. Reader uses square brackets like [TITLE] to pull metadata out of the post, it was getting totally confused when it'd see a normal markdown link formatted [[TITLE]]([URL]). I searched and searched around on Macstories.net, macdrifter.com, and did a few google searches to figure out what to do but my searches didn't yield and helpful results.

Finally I thought of the old-school method: check the developers site. Sure enough, the developer had already addressed that issue on the site. The solution is really quite simple, and you can find more on the developer's site.

Tip: Markdown formatted links for Day One, Byword, etc.

It's a little bit tricky to create markdown links, because they also use the square brackets [ and ].

Markdown link format: link text

The markdown brackets must be entered URL encoded as %5B for the '_[_' and %5D for the '_]_'. And they must be used outside my curly brackets {…}

Instead of

dayone://post?entry={blablabla “[TITLE]”}

you must use

dayone://post?entry={blablabla }%5B{“[TITLE]”}%5D{([URL])}

How to Turn Off the Noise Canceling Microphone on iOS 7

One of the tiny but obnoxious things for me about the iPhone has been the noise-canceling microphone. As a recovering audiophile and overall picky person, I’ve always dreaded answering a call on my iPhone while in the car. I can remember the first time I talked on my phone while driving where I was. I felt so nauseous that I thought I was coming down with food poisoning. However, when I wrapped up the phone call and took the phone away from my ear, I immediately felt better. Then I realize why I felt so terrible: the iPhone was using phase-cancelation.

I’ve always hated “active noise-canceling” headphones for this same reason. They make my head spin, my ears feel like they need to pop, and have thin sound. I know people who don’t seem to be bothered by the phase-cancellation but I have always avoided them for that reason. If you’re unfamiliar with this concept, just do a simple search.

The noise-canceling mic has led me to use my Bluetooth headset almost exclusively with my iPhone. But tonight, as I was turning the Parallax effect back on, I noticed a little gem in the settings: “Phone Noise Cancelation”.

Save yourself some embarrassment

Here’s how to avoid getting nauseous if you have to use your iPhone in a loud area:

  1. Open the Settings app
  2. Go to General\Accessibility\Phone Noise Cancelation
  3. Turn the switch so the green indicator goes off, as indicated in the image below.

¡Voilà! Now you can enjoy your iPhone again.

the iOS 7 Clock Spins!

There has long been complaints amongst the tech community that Apple doesn’t use widgets or active icons (save calendar) in iOS. The Verge even wrote a post about how Apple’s weather icon has been stuck at sunny and 73 since the inception of the iPhone.

I was looking at my iPhone this past weekend and noticed that the time on the clock matched the actual time.

”Huh, that’s  cool. What a neat coincidence,” I thought.

Then I looked a little closer at the icon. It turns out it was actually synchronized to the correct time.

I’m obviously not the first person to discover this, but I have been hoping that this means Apple is working on bringing some more ambient information to the home screen. Updates to the weather icon are really the primary thing I care about. I’m sure someone who’s a bigger dreamer than I am could think up some other cool things to do on the home screen without making it a hideous mess.

iOS 7 Animated Clock