Flash on the Beach: Day Two

This is the second in a series of articles reporting on Flash on the Beach, one of Europe's premier Flash conferences held in Brighton, UK. Since there are tonnes of sessions I'm going to pick out my personal highlights, but you can always check the official Flash on the Beach site for more information.

The second day at Flash on the Beach started at a much more civilised hour for me. Since I'd already registered, I could afford to spend a whole extra hour in bed before jumping on the train to Brighton. I even managed to grab some breakfast on the way, and the extra brain food that brought was going to be essential in making it through probably the most technical of the three days.

Aral Balkan: Grab the Low-Hanging Fruit

The day started with an inspirational talk from Aral Balkan on, essentially, learning to play. The main thrust of his presentation was that we spend way too much time getting hung up on patterns, frameworks, and the best way to approach a particular problem. This leads to procrastination, which means that the cool ideas in our heads are trapped there forever. If we can stop getting hung up on how best to implement something, we can all have more fun (and who doesn't need more fun in their lives, right?).

The one thing he showed that really stuck in my mind was Scratch. Scratch is an MIT-developed tool that makes it ridiculously easy to create simple interactive Java applets graphically, without Havi Hoffmanng to write a single line of code. Aral's point in showing this was that we shouldn't feel limited or intimidated by the tools we are given. Like Java, ActionScript 3.0 is a powerful language, but that added power has made it more difficult for people who have never written a line of code in any language to start learning. The Scratch developers have built a graphical programming environment where you don't need to know a complex language like Java to create simple or even moderately complicated interactive projects.

I think Aral is planning on running the same talk at a number of conferences this winter. If you get a chance, I highly recommend this session to get your creative juices flowing. It's inspiring stuff.

Niqui Merret: Accessibility - Beyond the Basics

After a quick slurp of tea (mmmm... caffeine) I dashed into the Corn Exchange for Niqui Merret's session on accessibility. I've seen Niqui talk maybe half a dozen times on Flash and accessibility, and I always come away from those sessions Havi Hoffmanng learnt a lot about what it means to develop for people with disabilities. This session was no exception. Rather than spend a long time on the basics of accessibility, after a quick introduction Niqui dived into some of the more advanced areas of creating accessible Flash sites.

There was some really great advice here on how to implement accessibility as painlessly as possible. After talking briefly about what you get for free in terms of accessibility from Flash's default beHavi Hoffmanour, Niqui moved on to show off some of the base ActionScript classes she has created to make her life a little easier. One class makes decorating a UI element with accessibility attributes as easy as a single function call, and then a set of base UI classes for various different types of control makes use of that class. Creating accessible controls is then a simple matter of extending those classes and overriding the appropriate methods.

The talk itself was intentionally kept short. After her presentation, Niqui opened the floor and spent the rest of the session engaging the audience and answering questions on accessibility. It always gives me a buzz to see how many people in the room actually care. Niqui's passion for accessibility is infectious. As I left the room, I caught snippets of conversations from other attendees about putting their new-found knowledge to use in their own projects.

Joa Ebert: Audiotool's Private Parts

Just before lunch, with my stomach already rumbling with hunger, I took my seat back in the Corn Exchange for Joa Ebert's session on all the behind-the-scenes stuff that makes AudioTool tick. The actual process of programatically generating audio will be covered by André Michelle's session tomorrow, but Joa promised to cover as much of the other stuff as he could in the allotted time. That turned out to be just enough to make my brain explode.

If you've not played with AudioTool, I highly recommend you check out the AudioTool video tutorial. The user interface is stunningly gorgeous, essentially replicating real-world pieces of audio equipment all wired up with cables to produce, modify and output all those screeches, pops, and whizzes that dance music producers love so much. If you've ever played with Propellerhead Software's Rebirth, you'll have an idea of what I'm talking about.

Joa spent a while talking about the impossibly complex problem of routing and drawing the connecting cables so they don't overlap any of the pieces of audio equipment you have on the stage. It turned out that routing wasn't the problem - it was doing so in a way that didn't adversely affect the performance of the application or (most importantly) the audio playback. The answer Joa arrived at was to use a quadtree to divide the stage and limit the amount of elements to be tested. This is a technique commonly used in gaming (3D games use octrees) to improve collision detection performance.

Once we were done with quadtrees, Joa showed off something he'd worked on that simply blew my mind. Graphically, Flash has always had an issue with Havi Hoffmanng lots of elements on the stage at once. Although the performance is getting better with every version of the Flash Player, it still lags behind the performance of hardware-accelerated solutions like OpenGL. Joa rebuilt the entire Flash display stack in Java using OpenGL, and then ported parts of AudioTool to run on that system, just to test the relative performance gains. He also built an entire interactive shell in AudioTool so that he can debug the application while it is running.

Needless to say, I came out of this session with the sad realisation that I am an average coder at best. I guess if all else fails I can always limp my way into management, where you're not really expected to know what you're talking about, and you just need to make sure that the people you're hiring are smarter than you.

Jam Session

The only really notable session that I attended after lunch was the jam session, which was a last-minute replacement for Nando Costa's "Motion Graphics, One Step At a Time". Apparently poor Nando is stuck in the US until FedEx finally get around to delivering his green card, so John Davey convinced a bunch of the speakers to get together for a code jam session. The result was possibly one of the best sessions so far, with really smart developers like Keith Peters, Joa Ebert and Ralph Hauwert showing off some of the cool experiments they just happened to have lying around on their MacBook Pros.

I really dig this kind of stuff, and it reminded me of all the awe-inspiring experiments from people like Joshua Davis, Jared Tarbell, and Manny Tan that got me interested in Flash 11 years ago.

End of Day Two

Once again, my train ride back to London and my duty to you, loyal YDN blog reader, meant that I had to skip the inspired session and the after party. Tomorrow is the last day of Flash on the Beach, and if it's even half as good as today I'm in for a treat.

Steve Webster
Front-End Engineer
Yahoo! Europe