Journal tags: flash



Re-evaluating technology

There’s a lot of emphasis put on decision-making: making sure you’re making the right decision; evaluating all the right factors before making a decision. But we rarely talk about revisiting decisions.

I think perhaps there’s a human tendency to treat past decisions as fixed. That’s certainly true when it comes to evaluating technology.

I’ve been guilty of this. I remember once chatting with Mark about something written in PHP—probably something I had written—and I made some remark to the effect of “I know PHP isn’t a great language…” Mark rightly called me on that. The language wasn’t great in the past but it has come on in leaps and bounds. My perception of the language, however, had not updated accordingly.

I try to keep that lesson in mind whenever I’m thinking about languages, tools and frameworks that I’ve investigated in the past but haven’t revisited in a while.

Andy talks about this as the tech tool carousel:

The carousel is like one of those on a game show that shows the prizes that can be won. The tool will sit on there until I think it’s gone through enough maturing to actually be a viable tool for me, the team I’m working with and the clients I’m working for.

Crucially a carousel is circular: tools and technologies come back around for re-evaluation. It’s all too easy to treat technologies as being on a one-way conveyer belt—once they’ve past in front of your eyes and you’ve weighed them up, that’s it; you never return to re-evaluate your decision.

This doesn’t need to be a never-ending process. At some point it becomes clear that some technologies really aren’t worth returning to:

It’s a really useful strategy because some tools stay on the carousel and then I take them off because they did in fact, turn out to be useless after all.

See, for example, anything related to cryptobollocks. It’s been well over a decade and blockchains remain a solution in search of problems. As Molly White put it, it’s not still the early days:

How long can it possibly be “early days”? How long do we need to wait before someone comes up with an actual application of blockchain technologies that isn’t a transparent attempt to retroactively justify a technology that is inefficient in every sense of the word? How much pollution must we justify pumping into our atmosphere while we wait to get out of the “early days” of proof-of-work blockchains?

Back to the web (the actual un-numbered World Wide Web)…

Nolan Lawson wrote an insightful article recently about how he senses that the balance has shifted away from single page apps. I’ve been sensing the same shift in the zeitgeist. That said, both Nolan and I keep an eye on how browsers are evolving and getting better all the time. If you weren’t aware of changes over the past few years, it would be easy to still think that single page apps offer some unique advantages that in fact no longer hold true. As Nolan wrote in a follow-up post:

My main point was: if the only reason you’re using an SPA is because “it makes navigations faster,” then maybe it’s time to re-evaluate that.

For another example, see this recent XKCD cartoon:

“You look around one day and realize the things you assumed were immutable constants of the universe have changed. The foundations of our reality are shifting beneath our feet. We live in a house built on sand.”

The day I discovered that Apple Maps is kind of good now

Perhaps the best example of a technology that warrants regular re-evaluation is the World Wide Web itself. Over the course of its existence it has been seemingly bettered by other more proprietary technologies.

Flash was better than the web. It had vector graphics, smooth animations, and streaming video when the web had nothing like it. But over time, the web caught up. Flash was the hare. The World Wide Web was the tortoise.

In more recent memory, the role of the hare has been played by native apps.

I remember talking to someone on the Twitter design team who was designing and building for multiple platforms. They were frustrated by the web. It just didn’t feel as fully-featured as iOS or Android. Their frustration was entirely justified …at the time. I wonder if they’ve revisited their judgement since then though.

In recent years in particular it feels like the web has come on in leaps and bounds: service workers, native JavaScript APIs, and an astonishing boost in what you can do with CSS. Most important of all, the interoperability between browsers is getting better and better. Universal support for new web standards arrives at a faster rate than ever before.

But developers remain suspicious, still prefering to trust third-party libraries over native browser features. They made a decision about those libraries in the past. They evaluated the state of browser support in the past. I wish they would re-evaluate those decisions.

Alas, inertia is a very powerful force. Sticking with a past decision—even if it’s no longer the best choice—is easier than putting in the effort to re-evaluate everything again.

What’s the phrase? “Strong opinions, weakly held.” We’re very good at the first part and pretty bad at the second.

Just the other day I was chatting with one of my colleagues about an online service that’s available on the web and also as a native app. He was showing me the native app on his phone and said it’s not a great app.

“Why don’t you add the website to your phone?” I asked.

“You know,” he said. “The website’s going to be slow.”

He hadn’t tested this. But years of dealing with crappy websites on his phone in the past had trained him to think of the web as being inherently worse than native apps (even though there was nothing this particular service was doing that required any native functionality).

It has become a truism now. Native apps are better than the web.

And you know what? Once upon a time, that would’ve been true. But it hasn’t been true for quite some time …at least from a technical perspective.

But even if the technologies in browsers have reached parity with native apps, that won’t matter unless we can convince people to revisit their previously-formed beliefs.

The technologies are the easy bit. Getting people to re-evaluate their opinions about technologies? That’s the hard part.

Awe Dee Oh

You may have noticed a lot of HTML5 vs. Flash talk lately. Substitute HTML5 for HTML5 video.

Frankly, I’m a little baffled by this supposed dichotomy because you don’t have to choose. The way that video works, according to the spec, is for fallback content to be placed between the opening and closing<video> tags. So you can go ahead and use object or embed or whatever you need to put your Flash video in your markup. Browsers that understand the video element will use that while less capable browsers will play the Flash movie in the object element (and because of the way the object element works, you can put yet another layer of fallback content between the opening and closing <object> tags).

It’s the same with audio. So, on Huffduffer, for example, I can wrap <audio> tags around the object element that embeds the Flash player:

<audio controls src="file.mp3">
 <object data="flashplayer.swf?audio=file.mp3">
  <param name="movie" value="flashplayer.swf?audio=file.mp3">
  <a href="file.mp3">ah, just download it</a>

But there’s a problem. Firefox understands the audio element but refuses to implement support for MP3 as long as it is patent-encumbered. Firefox users don’t get the fallback content (because the browser does support audio) but they don’t get the MP3 either. They get a broken icon.

So it’s safer to just use the Flash player, right? There’s a problem with that too. Mobile Safari doesn’t support Flash …but it does support the audio element. How can I serve up Flash to desktop browsers and HTML5 audio to the iPhone and iPad without going down the dark path of browser sniffing?

Easy. Just flip the order of what constitutes fallback content:

<object data="flashplayer.swf?audio=file.mp3">
 <param name="movie" value="flashplayer.swf?audio=file.mp3">
  <audio controls src="file.mp3">
   <a href="file.mp3">ah, just download it</a>

That works in Firefox—and any other browser with Flash installed—and it also works on the i(Pad|Phone|Pod).

Huffduffer — landscape

Cause and effect

On November 14th, Cork City was the location of a wherein a crowd of people sang Mister Blue Sky on the city’s main thoroughfare.

One week later, the city suffered its worst flooding in 800 years.


Flash On The Beach: day two

The second day of Flash On The Beach was miserable… at least, the weather was miserable: the presentations were excellent.

Brendan Dawes kicked things off with a superb presentation. It was funny, passionate, down to earth and inspiring. He’s a bullshit-free zone. Once again, I was struck by how little was specific to Flash. Instead, the presentation was universal, covering design, inspiration, life, the universe and everything.

After that, I saw some of the beautiful data visualisations from Marcos Weskamp. You’ve probably seen his scrAPI-powered Newsmap app. It was fascinating stuff and despite the fact that English isn’t his mother tongue, Marcos did a good job of explaining some fairly complicated topics.

After a quick lunch at Wagamama’s, I gave my presentation. People were very kind to me and said they enjoyed it. I got a real glow of pleasure when Brendan told me how much he liked it. It’s always nice to hear that someone enjoyed a presentation, but it means so much more when the complement comes from someone I admire so much—just like when John Allsopp complemented me on my presentation at Web Directions South.

I took a break after my talk and re-entered the dome to see Hillman Curtis. Again, this was only tangentially related to Flash. He told some stories and showed some movies, all in a very relaxed way. It was a very pleasant experience to sit there and take in his work while he filled in the back story.

With that, the presentations were done and all that remained was the Flash tenth anniversary party in the Honey Club. Despite the weather (still miserable), many Flash geeks showed up and I spent the evening in conversation with people from Belgium, France and Norway.

I find it extremely cool that Brighton can attract such a far-flung crowd with an appealing, professional conference. John Davey took quite a risk with Flash On The Beach. I’m really glad it paid off.

I wish I could have been there for day three. Instead, I spent the day getting a bus to Heathrow, waiting at the airport, sitting in a plane, waiting for my luggage, getting a taxi and finally settling in to my hotel room in Berlin. The travelling was worth it: this is some hotel.

Ajax On The Beach

I just got off the stage at Flash On The Beach. To be honest, I didn’t think anyone would turn up: Microsoft were demoing their newest product in the big auditorium. On the plus side, I had a much smaller room to fill which made it nice and intimate.

The talk went well. The crowd were receptive and responsive, despite the oppressive stuffiness in the room. I was really, really glad that I had time for questions after I was done talking. I ended up talking for an hour (longer than I anticipated), but that still left fifteen minutes for a question and answer session.

I was talking to some people afterwards about some specific Ajax issues (cross-domain stuff, mostly) and I’ve posted some relevant links over on the DOM Scripting site.

Now that my talk is done, I can relax and enjoy Hillman Curtis.

Flash On The Beach: day one

The first day of Brighton’s very own Flash conference covered quite a wide range of subjects.

I skipped the keynote. That’s partly because I thought it would be a product pitch from Adobe but mostly because I had a late night at Aral’s party. By all accounts, it was actually a very good presentation.

The first presentation I saw was from Craig Swann. It was great! He reminded me a lot of Matt Webb with his talk of unusual sensory input devices. Craig was was like a mad scientist, pulling out wires and sensors to build engaging works of art. It made me want to go out and subscribe to Make magazine.

I went out for lunch with Pete who introduced me to two of my Flash heroes, Todd Purgason and Brendan Dawes, gentlemen both. After we all filled up on pies, I went back to the conference to listen to Branden Hall talk about Actionscript 3, which doubles up as a preview of JavaScript 2.

Branden was a very entertaining presenter but he had a tough crowd to work with. Maybe it’s because the venue isn’t packed out and people are sitting apart but there’s a constant feeling of being on the edge of the audience no matter where you sit.

Aral was up next and he was his usual ebullient self. He talked about agile development and user-centred design. For a while there, he was channelling Jason Fried. I was just waiting for him to start talking about “getting real.”

There wasn’t much that was specifically Flash-related in Aral’s talk, which made its appeal even broader: this is a presentation that would fit equally well at a non-Flash conference.

Finally, Eric Natzke showed off some of his amazing work and explained the process behind it. The presentation is online. You could lose hours looking through his hypnotic creations.

All in all, it was a diverse day of talks: art, code and business. Tomorrow I’ll be giving my controversially-titled presentation. There is a very real possibility that it will go down like a lead balloon, but fingers crossed…

Flash on the beach

It’s been a good conference year for me. I’ve had the good fortune to attend and speak at some excellent events.

It’s a great way to travel. I get paid to go somewhere exotic and then speak on subjects that I love speaking about anyway. The highlight of this year was going all the way to Australia for Web Directions where I nattered on about Ajax.

Much as I love travelling to conferences, I take special pride when a conference takes place in my adopted hometown of Brighton (with the exception of the Labour Party conference). Most Web conferences in this country take place in London. That’s just the way it goes.

Following in the tradition of dConstruct, a major Web conference is about to hit town. Flash On The Beach will be taking over the Brighton Dome complex from the 4th to the 6th of December.

This looks like a biggie. There will be three tracks of talks over three days, all based around the subject of Flash.

One of those talks will be delivered by yours truly. I’m going in to the lion’s den to give the provocatively-titled presentation, Ajax: Flash Killer?

This should be interesting… if the term “interesting” encompasses “scary.” I’ll be putting my cards on the table and making it very clear that I’m not exactly an expert in Flash; in fact, I haven’t done anything in Flash since version 6. But I still think it will be interesting for Flash developers to hear from someone in the Ajax camp.

Oh, and just in case anyone thinks I’m going to be cheerleading for Ajax, that’s not my plan. I come not to praise Ajax but to bury it… sort of.

In any case, this will be a very different crowd than I’m used to addressing and I’m very intrigued as to what reaction I’ll get. I’ve got one week until my talk so I’m now in the stage of major panic.

I hope I won’t be so nervous and worried that I won’t be able to enjoy the other presentations. The line-up—with the exception of my aberrant presence—looks amazing. Hillman Curtis, Brendan Dawes, and all the other superstars of Flash will be there. Todd Purgason—whose work I’ve admired for many, many years—is speaking on the last day of conference. And, get this; Neville freakin’ Brody is also speaking on the final day of the conference! Those two are worth the entrance price alone. Speaking of which, if you sign up before November 30th, you get in for £399.

Alas, I won’t be able to hear what Messrs Purgason and Brody have to say. I’ll be ducking out of the conference early. I need to catch a flight to Berlin where I’ll be sitting on the jury for the Biene Web awards.

Don’t get me wrong: I’m not complaining. Once again, I have the opportunity the travel to an exciting far-off place. I just wish it didn’t have to be during the one time when Brighton is the very place where any self-respecting designer would want to be.