After some searching, we discovered that iTunes for Windows doesn’t support TLS 1.1+.

We had disabled TLS 1.0 (and lower) on our servers as an easy way of complying with the upcoming PCI requirements, and then received reports of listeners unable to download podcast audio in iTunes. After a bunch of investigation (involving staring at Wireshark), we finally realized that iTunes was failing the TLS negotiation with the server. Reenabling TLS 1.0 (except for the pledge forms) fixed the issue.

Presumably, Apple will need to support newer TLS by June 30, 2018 to continue to support credit cards in iTunes.

Lately, we are beginning to think about Javascript MV* frameworks. While we are not yet comfortable using these frameworks for public facing sites, we do think they make a lot of sense behind a login where the user is creating and updating content.

Our Audio Backpack application allows users to create their own classical music playlists. We built it in Ember.

I spent some time recently reviewing a few frameworks and came up with these bullet points in trying to decide which one to bet on internally long term. This is what I found:


– digest for 2 way binding can be inefficient as it uses dirty checking in a loop – computationally expensive
– Uses Plain old Javascript objects (POTS)
– More of an open ended tool set than a framework
– Directives let you bind behavior to DOM elements
– A few more edge case bugs
– Can filter expressions easily (ie an html table filter results for results that have a coomon value in a filed like show me all the results with city is St. Paul – not sql filters the markup)
– Custom services
– We have someone coming in new to our team with Angular experience
– Angular 2.0 coming out may not be backwards compatible


– A more opinionated framework that almost make you do things “the right way”
– Very Rails-like lots of similar concepts
– 2 way binding more efficient because you have to call accessors – getter and setter methods explicitly
– CRUD field generation based on models a la Rails allows for rapid development
– Powerful router that works just like the Rails router
– Better documentation
– Computed properties very powerful ie a circle object that has a user entered radius field can have a diameter filed that is calculated automatically
– is only just getting to stable APIs

– even less than a framework than Angular. A tool set where you do most of the work but is more light weight

– Really just concerned with the V in MVC but is very efficient with its use of a virtual DOM to shadow the Real DOM. Can be used as the V in Backbone.

At this point I am still leaning toward Ember for a few reasons. First we do a fair amount of Rails already and Ember is conceptually very similar to Rails. Additionally, an opinionated framework can be really helpful in a team setting where some of the team is new to the framework as it almost enforces good practice.

As we consider the future of our native mobile applications, it is worth considering what features we want to add and support as the capabilities of devices grow. Recently, the Apple Watch has extended the utility of the iPhone. I have had the opportunity to use an Apple Watch for some time and have tried a number of different news and audio listening apps. These are some rough notes on how various applications work and what they provide.


This is one of the more polished and apps on the watch and it is a great companion/extension of the iOS app. Almost all the functionality of the iOS app is here, except the ability to sign in (you have to do that on your phone). If I have any gripe of this app, it’s that finding the menu with a force touch is not terribly intuitive, but that is more a condemnation of the Watch’s UX pattern than the NPR app.

npr_start npr_local npr_national_newscast npr_story npr_story_swipe npr_force npr_search npr_suggested

BBC News

This app has several basic groupings of news that you can choose from: Top Stories, My News, and Most Read. The interface is a simple watch-like tree, using the default watch typefaces. Each story detail consists of a small image and short summary. A force touch brings up a menu that lets you jump to an extended version of each of these sections, even if you’re already in one. Strangely, it does not let you add a story to “My News”.

bbc_list bbc_story_1 bbc_force


Flipboard feels like a natural and smaller-weight extension of the iOS app. It doesn’t feature the compelling visual transitions, but it does retain most of the important functionality, in an albeit stripped down manner. You only have a selection of the most important 10 or so stories to choose from, not the depth that you can explore on your phone.

flipboard_signin flipboard_story flipboard_continue flipboard_force flip_zine

New York Times

Upon launching, this app gives you a very simple walk-through of what it does. Perhaps because I am a new Apple Watch user, I did not find this as tedious as similar experiences on the phone. Like most watch apps, this one is basic and focused; there is a limited selection of important stories and your only force-touch option is to save them for later. The app tells you when you’ve seen everything that there is to see. Unlike the other apps, the NYT app is more richly styled with their signature typefaces.

nyt_launch nyt_swipe nyt_story_details nyt_save nyt_all_caught_up


Overcast is the popular alternative podcast player and its designer, Marco Arment, has written extensively about the iterations of the watch app. You should go read his piece rather than mine, but it’s a gem of an app. As you might expect, controls are up front and easy to use, and the power-user features of voice boost and smart speed are hidden behind a force touch menu. Since Apple doesn’t have a watch version of their own Podcast app, this app is useful for prolific podcast listeners.

overcast_playing overcast_details overcast_next overcast_touch overcast_speed

Tune in Radio

Like Flipboard, you cannot start your experience in this app, but have to set up stations and an account in the iOS app. Once you’ve set up stations, the watch app gives a basic view of your stations and what’s playing. The artwork is inconsistent, but that might be a problem of metadata from providers (like us!). Also, the app does work with the now playing glance, and shows fast forward / rewind controls, which is not correct for an audio stream.

tunein_playing tunein_added_stations tunein_touch tunein_controller


This app is very simple. It offers you play/pause and prev/next functionality for whatever list of content you’re looking at in the iOS app. There is no ability to find other content. The only other option that it offers is the ability to like a track via the force touch menu.

sc_start sc_pause


This is a strange but potentially fun media player app. You can play songs from your media library, either on the watch itself or via the connected iPhone. The play/pause/next track controls are straight forward. The real differentiator in this app are the four effects that it offers: ChopChop, Whitenoise, 8-Bit, and Hi-Lo. They’re useful just in case you ever wanted to DJ a party with cheesy effects from your watch. There are no force touch menus in this app.

pm_track pm_tracks pm_effects

As requested by my colleague, here are some nerdy details about the flow of data driving and other MPR|APM websites. Origins The Barn is a the central internal search engine and content aggregator within MPR|APM. Here’s how it came to be. A few years ago I went through a period of reading and re-reading Read more

Every day APM|MPR generates several hours of audio content for its radio and digital broadcasts. Over time that adds up to many terabytes of audio, most of which has no written transcripts available, because transcripts are expensive and slow to create. Imagine listening to the news and writing down everything you hear, word for word, Read more