Herein you’ll find articles on a very wide variety of topics about technology in the consumer space (mostly) and items of personal interest to me. I have also participated in and created several podcasts most notably Pragmatic and Causality and all of my podcasts can be found at The Engineered Network.
Podcast Feed Hell
There are no things I consider myself to be an expert on: there is always something more to learn. When it comes to RSS feeds and podcasting, I’m still learning so go easy on me.
In my move away from WordPress to Statamic I needed to transplant my old podcast “Exastential” as well as the TechDistortion Audio Article Feed. I did what I usually did - grabbed a copy of some XML HTML source files from a bunch of sites on the internet and quickly read through the RSS fields and set them up the way that I thought they would need to be set up. The episodes came across, were posted and away we went. Using the FeedValidator it came up healthy and I smiled and moved on.
Then came the surgery, going indie with Pragmatic, and suddenly it was time to bring the feed across from Fiat Lux. Ben Alexander had set it up nicely but I wanted to serve the feed from my site, not from LibSyn. I redirected the feed from LibSyn to TechDistortion and within a day I received notification from a fan of the show that Pragmatic had vanished from iTunes. When I checked, so had Exastential and the TD Audio Feed.
Mistake #1: Rushing My Work
The truth was that everything had conspired to result in a close to one month gap from the move of the old two feeds to when I was ready to move Pragmatic across. I scrambled to get everything ready and in the rush I cut a few corners. If I’d had more time I would have been more thorough. First mistake. Stupid, stupid John. The rush drove all of the mistakes that follow.
Mistake #2: Copy and Paste
How many times have I rapped younger programmers across the knuckles about reusing code without understanding it well first. Especially code fragments and here I was rushing my work and doing it myself. I’ve begun to think that in our minds there’s a switch: when we’re in ’teaching mode’ we have a different level of self-criticism but when we’re in ‘doing mode’ we end up cutting corners because, we know what we’re doing right?
I had unfortunately overlooked a single but rather important tag <iTunes:block>
that was in an old feed I had extracted tags from and it was unfortunately set to “Yes”. Since it was a common XML source template in Statamic it was therefore stopping all three feeds from appearing in iTunes. Additionally I’d inadvertently copied the <itunes:new-feed>
tags redirecting the feeds to their new one: essentially redirecting the feed back to itself endlessly. I removed that once I figured out it made no sense.
Problem solved? No.
Mistake #3: Choose Your Validators Carefully
Validate, validate, validate. I did. What I didn’t appreciate is that the RSS Feed Validator I’d always used for the site RSS feed didn’t support iTunes podcast tags. After lots of reading online I then discovered Cast Feed Validator which did a podcast-specific check and if it found problems sent you to a standard RSS Feed Validator. In addition I enlisted the help of Feeder, a Mac app designed to help create, modify and validate feeds locally on your machine.
No matter how good your validator is there are some things it can’t detect. The redirection of the feed back to itself is a good example that passed through every single validator that I tried.
I had missed episode-specific summaries, summaries couldn’t have HTML in them, colons in title text messed up the parsing of the titles, plus there were a bunch of tags at the <channel>
level that needed to be repeated at the <item>
level for no adequately explained reason. At one point I was hacking and slashing code on the train on the way home. Having used up the trains Free WiFi quota (a paltry 50Mb) I switched to my iPhone tethering and noticed that the reception kept dropping out all of the time. Sometimes halfway through an online edit or an upload. Desperation had well and truly set in.
Mistake #4: Assumption
Previously in WordPress I’d used the excellent PowerPress plugin. It did everything for you. There was no XML anywhere. It all seemed so easy and straightforward but unfortunately it wasn’t. Assuming that I’d done this before was clearly, quite simply, stupid.
Mistake #5: Report A Concern
iTunes has a built in mechanism where you can go to a podcast and select “Report a Concern” then ask for help with the feed. This is essentially useless if the three feeds you’re having trouble with have already vanished. It wasn’t until I tried [email protected] that I was able to get a response. In fact when I told them what had happened I received a response within 18 hours. From what I’ve read on other sites on the internet that’s unusual so I’m either lucky or special - not sure which.
Apple Responds “Hello John, We apologize for the inconvenience. It seems our system ran into an issue when updating from your feeds. The podcasts have been reviewed and re-approved. Please allow 24 hours for the podcasts to appear in the iTunes Store. Best, Kyle”
In fact it was significantly LESS than 24 hours. The feeds were literally back within 3 hours time of that email, although all of them lacked their artwork. Exastential gained its artwork the following day but TD Audio and Pragmatic took closer to a week before their artwork showed in the store. (Curiously the artwork showed up when you subscribed to the show itself just not in the search)
The Podcatchers
Thanks to some help from some Twitter fans and friends notably Clinton Philips, Matt Foster, Gabriel Visser and Brian Shand I was able to confirm whether the shows were appearing both in their searches and subscriptions for Castro, Downcast and Instacast. I was already testing with (redacted) and (redacted) made sure it worked despite an initial glitch due to my bad feed information leaving only one popular app 1 that was causing an issue at this point was PocketCasts.
Although it took a few days to get sorted PocketCasts came through not only with fixes for all of my shows but they were also kind enough to generate custom landing pages for the shows on their site.
Lessons Learned
It’s really quite simple: Statamic is great but there are currently no Podcasting plugins for it that I know of. This means that you’re hard coding the XML yourself and whilst there are plenty of examples, read up ALL of the documentation first, validate, validate and validate again across as many podcast feed validators as you can find and only then submit to iTunes and publish your RSS podcast feed.
One more lesson to learn: everyone makes mistakes, cuts corners and does stupid things. This time it was me. Next time it could be you.
-
Popular in terms of the download proportion of Pragmatic as reported by LibSyn. ↩︎
Podcast Chaptering
With the Exastential Podcast we added Chapters and Chapter-specific artwork to the show. We received maybe one or two positive comments about it. Again we started doing this in the last few episodes of Pragmatic before I left Fiat Lux. Even with a much bigger fan base, we only recieved maybe three or four positive comments about the chaptering of the shows (that I am aware of).
Proponents of Chaptering would argue thusly:
- Breaking up the show makes it easier for the user to find what they’re looking for if they want to skip a certain topic or go straight to one that interests them
- Chapters making searchability better
- Custom artwork for each chapter looks cool?
Like so many things there are cases where it can work well and others where it can’t. For it to work the podcast in question MUST have the following attributes:
- More than one section that can be broken down into logical sub-topics
- Sub-topics within an episode that have near-equal time devoted to them
- Sub-topics that in no way refer to any topics previously mentioned in that episode (i.e. they stand-alone)
Beyond this, if we are to break up podcasts into Chapters then who decides when a chapter should begin and end? This is usually one of the podcasters or their audio technician or producer (if they have one). In short, a handful of people but most importantly they then have to decide to what level the show should be broken down. If I’m talking about electricity, and I spend five minutes talking about electrons and ohms law, does the next section on conductors require a new chapter? What is the correct granularity for chapterising a podcast?
If a podcast goes for 2 hours, how many chapters are therefore acceptable? 3? 10? 25? The answer is completely subjective and the question is impossible to answer. If you’re thinking “rules of thumb will work” or the number that just “feels right” then you’re not helping.
Chapterising a podcast is a poor substitute for what it really lacking: a common framework for users to link to exact moments in the podcast to share on their timelines. At the moment most sites simply say: “Check out this bit at [18:34] in…” or “It’s in the chapter about ‘gun violence’…”.
Chapters Are Gone
Due to the above I’ve decided to remove any chaptering from episodes of Pragmatic from this point forward. In addition the main show feed is now in MP3 format for maximum compatibility across all devices (Pragmatic is most certainly not an Apple-focussed podcast). For those looking for the slightly smaller HE-AAC v2 encoded versions of the shows there will be a new feed going live in a few weeks time.
I’ve been adding some features to the site and now for anyone listening through the website it’s possible to create a link from anywhere in the episode for sharing on Twitter. Based on your feedback I’ll add a few different sharing options in coming weeks. It’s not an industry standard like I was hoping for, but it’s a start. If/when such a standard evolves, I will adopt it.
Upon receiving a Tweet with an episode link and time index in it, following that link will take to right to the page and pressing the new Right-Arrow-Play button on the player will start the episode playing from the linked-to point in the episode. This is similar functionality to SoundCloud but instead works with the flexible jPlayer embedded in Statamic with the audio files hosted wherever you like.
As always, let me know what you think.
UPDATE:
Well people told me what they thought and thank you for your feedback. Just to clarify, HE-AAC isn’t an Apple codec (I didn’t say that specifically but glossed over the detail of what I meant in the now-struck-through comment) however Apple was one of the first to fully support it and remains a strong advocate for its use. The inference I was making relates to the fact that were I hosting an all-Apple podcast, presumably only Apple product users would be listening on Apple devices and Apple fully supports HE-AAC.
The primary issue is that the native decoder implementation on Android in particular is such that it currently doesn’t support playback at anything other than 1x. PocketCasts is very popular on Android and point #16 here under the Android sub-section hints at the issue but this tweet confirms the issue with the native Android implementation.
If people want to listen to the podcast at 2x that’s fine with me it’s their ears listening and that’s up to them. By changing the format to MP3 those people will now be happier when they’re listening. I’ve also received other feedback from users of different software players that don’t support AAC: typically older standalone MP3 players.
Changing to MP3 satisfies as many people as possible which to me is the most important thing. The AAC feed will be live shortly for those that prefer the smaller file size and subltely different audible artifacts each decoder brings to the table.
WWDC 2014 Keynote
This morning Apple announced the next versions of their desktop operating system OS X “Yosemite” (10.10) and iOS8 at the keynote of their annual Worldwide Developer Conference in San Francisco. There were several BIG things that make this keynote special but I’m going to focus on just three.
Continuity
I have an iPad, iPhone and Macbook Air (yes Apple love people like me) and I utilise them all in different use-case scenarios. Regularly I’ll be working on a Pages document on my Mac only to have the kids invade the study to work on a school assignment and I have to leave the room for my own sanity. At that point firing up the iPad and continuing on the couch works but you have to wait for the Mac to Sync to iCloud then the iPad to sync Pages to iCloud etc. When running Yosemite and iOS8 it will show an icon on the lock screen that allows instant access to the app and document you are currently working on so you can instantly keep working back and forth. Of course it demos well, but time will tell just how well it works in the real world.
More than that though, an idea implemented a few years ago with the ill-fated TouchPad and Palm/HP-Pre was the ability to make and receive phone calls between different devices. That plus SMSs integrated into iMessage will also come to the Mac/iOS such that it’s possible to make/receive phone calls at your Mac, iPad or iPhone as you desire. This sort of integration shows that Apple is trying to pull their pieces together and help users, but as always, excited though I am, the true test of how well it will work will be when it gets out into the real world.
Metal
Although not a consumer-facing feature it has been a long complaint that navigating the OpenGL|ES layer robbed some performance from hard-core gaming engines on iOS: this despite having phenomenal CPU/graphics hardware on the devices themselves. “Metal” reduces the overhead significantly and has allowed either a partial or full port of desktop gaming engines onto iOS. In the longer term this will mean more desktop-class games can more easily come across to iOS. That can only be a good thing especially when you consider an AppleTV with an A7 chip in it at some point in the future. I’m certain there are improvements to the game controller situation in the works as well however there was no mention of that during the keynote it’s clear enough to me that Apple is stacking the deck and preparing for a push into serious gaming. It’s only a matter of time.
Swift
Saving the best for last. There is ZERO doubt that this is the biggest news of the day and it’s not a consumer facing feature.
Objective-C is dead.
After 20 years of use and abuse, Objective-C moves aside and Apples brand-new programming language for their platforms was unveiled and it is called “Swift”. They’ve been working on it for years (as you would expect) and it can compile alongside Objective-C libraries and uses the same XCode development tools that are getting better all the time. Key features that jump out at me: Multiple return types, Namespaces, Operator overloading and best of all: concise syntax. The less code you write the better and ultimately since it’s built on LLVM and ARC, development should get a lot easier and a bit shorter. Add to that the new “Playground” feature in their IDE it’s possible to now look at the resultant output of your software in near real-time.
Of course I’ve downloaded Apples guide to Swift and am now excited to blow the dust off some old software projects I never finished and recode them in the new shiny shiny. That said, it’s all just a typical Apple keynote reaction where everything looks amazing, but in reality it’s going to be a long road to walk down for everyone.
No Nonsense, Minimal Touchy-Feely, All Business
Finally what struck me was Apples focussed, compressed 2 hour keynote. There was SO much content and SO many features they barely scratched the surface. This was perhaps the most impactful keynote since the iPhone in 2007. And just like the iPhone its impact will take years to be fully felt. Now then, get me XCode and let’s go.
From Coca-cola to Coffee
You’re never too old to learn a new trick.
Growing up in the tropics meant a predisposition to preferring cold drinks year-round simply because it was hot and the drinks would cool you down from the inside out. Upon moving to Canada I bought a 20oz insulated Aladdin mug and filled it with ice-cubes and cold water even though it was -30 degrees C outside. The comments and looks were unforgettable - yes it was a bit odd now wasn’t it? In my youth I detested hot drinks and drank water almost exclusively with the occasional soda-pop (soft-drink) on special occasions.
Then one fateful month Coca-cola had a competition: enter x20 wrappers from Coke bottles and receive a free Mossimo backpack. Guaranteed. Coke hadn’t been my thing but I wanted a backpack and started on my journey. Along the way I got to liking the alertness and nice feeling that caffeine gave me. In short I became hooked. Congratulations Coca-cola - you got me.
As time went on I drank more and more and although my teeth remained relatively unscathed I began to develop kidney stones in my mid-30s. The colour was unmistakable when the fragments were examined post-op: they were from drinking too many cola beverages. Still I continued to drink them because, well, caffeine and I hated hot drinks!
Here I wrote about my experiences with Weight Loss Surgery. It turns out that after these procedures are done, soda (soft-drink) is extremely painful to drink as the dissolved gases come out of solution and the gas increases the pressure in the stomach/bowel. This pressure stretches the stomach causing pain and in the long term can defeat the purpose of the operation. For these reasons fizzy drinks are advised against and preferably banned from peoples diets post-op.
I said goodbye to my Coca-cola.
And hello to Coffee.
At first I just wanted the caffeine hit but determined to try something new I gave Starbucks, McDonalds, Gloria Jeans and a few different Cafes a shot. We bought an Aldi-brand K-fee coffee pod machine that I learned quickly made disgusting tasting coffee. In a pinch it works I guess but after a few weeks even I can tell the difference. I’ve since switched to Nescafe instant Lattes which aren’t too bad if you have a Stevia tab to sweeten them a little. No substitute for real milk, though.
I’m working my way through flavoured Lattes at the moment with my two favourites both from Gloria Jeans: Caramel and Choc-Mint - neither of which need a sweetener. But I’m eyeing off these Aeropress thingys that people rave about and will give pre-ground coffee a go. The ultimate goal to see if I can make a Latte better than a store bought one. Anyway - I’m only very early on in my coffee journey. Long way to go yet…
You may think then that coffee is the new trick to which I previously alluded. But that’s only part of the story.
I’d been an avid listener of the Build & Analyze podcast from the beginning (well, just after it started and I listened back from the start) and I complained several times about how much Marco talked a lot about coffee. Like here where Marco put my complaint in context for me. (Okay, I had it coming)
Looking back now, what’s interesting about this little exchange is that it has opened my eyes. Don’t criticise today what someday you may become interested in. If it doesn’t interest you at the moment don’t make a big song and dance about it, just move on. Someday, maybe, you might just care.
I’ve now been loading up old episodes and segments that I’d previously skipped of B&A. This time though, I’m listening to an entirely new show. Funny. Looks like an old dog can learn new tricks after all.