Ben Walker

Jun 11

Boldly coding apps where no band has… er… gone before

A few days ago (at midnight of course – we always release stuff in the middle of the night when no one will notice) we posted a new song to our app. It was pretty exciting. It was the first time I had tried to push an update to the app and I had no idea if it would even work. And then we got to send a push notification that popped up on everyone’s iPhones, iPads and iPod Touches. We opened a bottle of wine, sat in the garden and finished typing up the liner notes before finally letting it loose.

Pushing the Candy Says app out to literally millions of phones

It worked, but not brilliantly. The few fans who were up and checking their phones in the middle of the night quickly tweeted to let us know that they had to restart the app a few times before the song appeared. It turns out the Reload feature from Trigger.io that I’m using to update the app isn’t quite as magical as I’d hoped. Or maybe I just didn’t read the instructions well enough.

Once you open the app, it checks to see if there’s an update available. If there is, it starts downloading it next time the app loses focus (I think). Then when you switch back to the app it checks if the download is finished, and if so it loads the new content (I think). The problem was that the update wasn’t just HTML and CSS. It also included the photos and the MP3 of the garage recording, so it took a while to download. And people (sensibly) tried restarting the app a few times, which probably interrupted the download.

So it looks like I need to do a bit more coding. There needs to be a bit of code that shows you something’s going on – that there’s an update available, that it’s downloading, that it’s downloaded, that you can restart the app to see it. I think all these things are possible. It also needs to deal with interrupted downloads, multiple updates for people who install the app later in the year and various other cases. My simple little app is getting complicated.

I also want to make the audio and image files separate – they’re too heavy to include in the Reload, especially if it makes everything slow and confusing. If the Reload just updates the HTML, CSS and JavaScript needed for the new song it should download in a flash, and once that’s done the app can check the HTML to see which images and audio files are needed and download them from my server (they’ll be cached locally by the app so they’ll still be available offline). This can be version 2.

It’s tempting to move all the content management stuff over to my server and scratch the Reload bit altogether, but that would mean a whole load more code to do all the stuff that Reload does well – only update files that have changed, keep track of who’s running which version of the app and so on. Maybe that’s version 3, where you can just chuck a new song and liner notes in your Dropbox and it automatically syncs to the server and gets pushed out to people’s phones…

Jun 08

[video]

Jun 02

My Six-Point Plan for Doing Projects -

An inspiring and strangely sideways manifesto for getting stuff done.

May 29

“I have no sympathy for an industry that cannot properly stumble its way around a viable secondhand market like every other mature industry in the world. Sometimes your old product just isn’t good enough, and the way you solve it is by making a better product, not by forcing consumers to adapt to your archaic and myopic business model with your dying breath. If this industry can’t find a way to make money off the primary market — even with DLC and exclusive pre-order content and HD re-releases and map packs and online passes and annualized sequels and “expanding the audience” and AAA advertising and forced multiplayer — then, if I may be so blunt, fuck it.” — The Xbox One will kill used games, that’s good (comment)

May 10

Hyperbole and a Half: Depression Part Two -

Just one of the best things on the internet.

May 07

Rewind! The Cassette is Back. « Bandcamp Blog -

There’s an ethos to cassette tapes that’s a little more Zen and a little less about obsessive collecting. Above all it seems to be about enjoying the music and remaining low-key.

A great post about cassettes. I’m loving cassettes at the moment. Tape tape tape. Yes.

Apr 30

candysaysit:

Candy’s on tour…

Looks like we’ve got loads of gigs. Awesome!

candysaysit:

Candy’s on tour…

Looks like we’ve got loads of gigs. Awesome!

Apr 07

25th Hour (2002) - IMDb -

FILM!

Apr 06

Here's The Thing: Thom Yorke -

Just listened to this great interview with Thom Yorke. It made me like him a lot more than the last 20 years of not hearing him speak did. Seems like a nice guy.

Apr 02

[video]

Mar 20

Todd Snider - Money, Compliments, Publicity — HI54LOFI -

Great song. I may just have to steal it and play it down at the Jamboree…

Mar 07

CASH Music: Knowledge is power. -

cashmusic:

We’re ready to announce the next phase of our mission: EDUCATION.

The long term goal of CASH Music is not just to build open source tools for artists, but also teach them how to use these tools, help them navigate the ever-changing music business, and create a community of like minded thinkers…

This sounds like another thoroughly good idea from the CASH Music people.

Mar 06

Xiph.Org Video Presentations: Digital Show & Tell -

The second video from Xiph.Org explores multiple facets of digital audio signals and how they really behave in the real world. Sampling, quantization, dither, band-limiting, and vintage bench equipment all in one video!

This is an absolute must-watch for anyone interested in digital audio by the clever chap who explained why 24/192 downloads make no sense. Science, people! SCIENCE!

Mar 05

Becks in Geoff’s human cage, Ben pulling (by candysaysit)

The shoot for the new Candy Says video was all fun, but I think the tractor really upped the stakes.

Becks in Geoff’s human cage, Ben pulling (by candysaysit)

The shoot for the new Candy Says video was all fun, but I think the tractor really upped the stakes.

Feb 07