FOTB 2009 Day 2

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

FLash on the Beach 09Elevator Pitch
The first session of the day was a new – and it turns out, highly successful – experiment. We had 20 speakers, each given just three minutes for their talk. As one person spoke, so the next person’s laptop was plugged in to the projector switch box in readiness, so there was almost no delay between talks.

The topics covered included rotoscoping using flash, games creation, SQLite, generative art, applications for phones and RestfulX. Most were really good. Of special note was a hilarious presentation by Conrad Winchester on the topic of ASAXB, which appears to be a great framework for automatic serialization/ deserialization of AS3 objects to XML and vice versa.

Flash Catalyst in Action
Mike Anders gave us another tour of Flash Catalyst. It was similar to last year’s talk, but used the Flash Catalyst beta, rather than the Thermo pre-release he had last year. As ever, his talk was good. He demonstrated creating a aquarium information application, which included layered graphics, embedded video, test fading in and out etc. What was really great about it was the fact that absolutely no nasty, evil .fla’s were involved, the whole thing (excluding the graphic and video resources of course) was 100% editable FXG/ MXML. The spark component set, along with FXG, is really shaping up to be an excellent development toolset.

Leaving The Sandbox
I had been looking forward to Joa Ebert’s session. As a hard-core nerdy developer, my main criticism of FOTB is that it contains too many “arty farty” designer and/ or inspirational sessions and the developer sessions tend to be a bit on the basic side. A session on a code validation tools sounded just the sort of thing I’d been wanting. Boy were we in for a treat.

It started well with a quick run through compiler theory (as someone who’s developed compilers using lex and yacc in my distant past, this was just my sort of thing). Then he moved straight on to AS3V, by announcing he’d abandoned the project. Turns out that Adobe have been working on a similar code validator called FlexPMD.

At this point I was concerned I’d wondered into yet another “use ++i rather than i++ to shave milliseconds off your execution times” type optimisation talk. How wrong I was, for we were in for a roller-coaster ride of SWF compiler/ decompiler projects:

  • Apparat.  This is Joa’s basic SWF/ SWC optimization framework, from which he has built a rich set of tools.
  • Dump. This tool can be used to generate such things as UML and inheritance diagrams of the classes in a SWF/ SWC.
  • Reducer – This tool squashes the data for PNGs inside SWFs/SWCs to make them significantly smaller. It does this by converting the PNGs to JPEGs. By adjusting the JPEG compression level one can vary the amount by which the resultant SWF/ SWC in reduced in size.
  • TAAS – this is an automatic optimizer tool that let’s the developer write clean, easy to read, code and then inlines functions, converts power of two multiplications/ divisions into bitshifts, changes i++’s into ++i’s etc.

Having left the audience stunned, Joa then showed Steve Jobs how to do a real “one more thing moment” (we even had a Steve Jobs parody slide) by demonstrating two projects he’s working on that compile C# and Java code to SWFs. He even coped with the fact that – being a dinosaur language who’s spec is controlled by dullards – Java cannot cope with closures and neatly mapped Flex’s closure-based event handlers to Java’s class-based bodge-event handlers.

Joa earned himself a well-deserved standing ovation.

Application Frameworks: The good, the bad, and the ugly
After lunch, we attempted to get into Richard Lord’s session on frameworks. Sadly due to the session times being skewed all morning, lunch had been shortened (and we hadn’t been told), so the hall was full when we arrived. Hopefully it was therefore a really rubbish session 🙂

More than Bending Pixels
Paul Burnett’s session on pixel bender was pretty good. Pixel bender is a programatically-simple language, but clever maths-orientated people can use it to do some really stunning effects with graphics and audio. Of more interest to me though is the fact that it can manipulate any data and runs on a separate thread to the main flash player. So it has potential to be of use in encryption and geo-spatial calculations for example, without affecting the player performance.

Unconventional Web Applications
The day wrapped up with a very nice presentation on design conventions by an Irish company, Contrast. They explored why we have conventions, why it’s sometimes bad to break them and sometimes it’s essential to do so. It contained some really good advice. Take a look at their website to get an idea of their conventions-breaking design approach.

And so the day ended for me at least. It was a brilliant day, in fact I’d even go so far as to say it was the best FOTB day I’ve ever attended (this is my third year, so 2006 may have had a better one that I missed). Can’t wait for tomorrow…