FOTB 2009 Day 2

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…

FOTB 2009 Day 1

Flash on the Beach 09This year’s Flash on the Beach keynote started on a high with a hilarious act from three faux Mexicans. Having got everyone in the mood, John Davey came on stage to rapturous applause and introduced the folk from Adobe who were to do the main keynote piece. Sadly the keynote then went downhill and left me wondering quite why I’d bothered. As much of the Flash stable (Flash Catalyst, Flex 4 SDK & FlashBuilder) are all currently in beta – and with just 2 weeks until MAX – there was little in the way of new stuff to show us. So we were subjected to yet more AIR applications along with some style-over-substance (or “proof of concept” to be more generous) 3D and sound demos.

Toward the end of the keynote, we were at least treated to some sneak peaks at upcoming features in the next release of the Flash Pro authoring tool, including better integration with FlashBuilder. There was also a hint that there might be news on Flash Player 10  finally appearing on smart phones (though presumably not the iPhone) at MAX.

Next up was a presentation on AIR by Mike Chambers. It was a curious mix of self-promotion of his as3corelib project and some details on features coming in AIR 2.0. The latter is to gain built-in support for detecting removable drives being mounted/ unmounted and a new native application mode. The native mode will be built as a .exe (or the MAC equivalent) and can communicate with other native applications via stdin and stdout pipes. This seems an odd solution when the likes of Mike’s own Command Proxy project offer a much richer solution already. I guess we will have to wait for more details from MAX to understand the solution better.

The only other session of note – in this developer’s view – was a session on Spark by Mike Jones. Sadly Adobe have dumped the great name “gumbo” and replaced it with the far more boring “spark” for their new skinnable component set. The session described the current state of the spark components (subject to change of course as it’s all still in beta). Despite many criticising the namespace in CSS solution Adobe came up with to support both halo and spark in the one application, I personally think it’s a very nice solution. Catalyst remains a odd one. At the moment it just doesn’t work to my mind: it is too product-skin focused and only really goes one way from designer -> developer. I fully agree with Mike’s hope that the final product better support general (and custom) component skinning and that it better support a two way design/ develop workflow.

Tomorrow has far more developer-orientated content than today, so hopefully should prove a more fruitful day for me.