Category Archives: Flex

I should have mentioned already what an awesome success Flex Camp 08 was a couple weeks back. London’s first go hosting the show, huge well done to the London Flex Platform User Group, the guys at Emak Mafu and everyone else involved in arranging the event. The day was made up of various show and tell sessions, panel discussions and workshops, all for free, needless to say those who couldn’t make it sorely missed out, irrelevant of the free beer and pizza by a long way.

Andrew Shorten, Adobe Platform Evangelist, opened with a keynote similar to Mark Anders‘ recently at 360 Flex (found via InsideRIA), reviewing Flash development since 1993 and looking at the roadmap ahead, toward Flex 4, Gumbo – and tools like Thermo and Degrafa. We got some sneak peeks at Flash Player 10, previously ‘Astro’, not only showing off some cool effects like Pixel Bender, but interestingly with those, further steps made by Adobe toward the more open source development community.

A couple highlights, I enjoyed Justin Clarke and Samuel Williams rattling through their presentation on PureMVC. I’ve used PureMVC before, but as frameworks go, I generally always adopt Cairngorm for the majority of Flash and Flex work, but they’ve definitely convinced me to have another look.

As good was Bryan Hunt of Emak Mafu delivering his brilliantly disgruntled thoughts on working with Flex and Java, something I’m yet to try, but he also touched upon developing with the Spring framework, which I’d recently come across working with Red5 – glad I caught up with him afterwards.

Perhaps the most useful was Peter Elst‘s class on using SQLite and AIR, in which he quickly put together an app with a simple straightforward relational database, using very little MXML and Actionscript, demonstrating the SQL database support in AIR as standard with AS3, as well as it’s capabilities in synchronising with online sources.

I’ve seen a couple requests around for any source code or presentation slides from the day, but I’ve yet to find any – if I do I’ll update here, I’m keen to see them myself.

At the beginning of April I was invited to the most brief and preliminary of development meetings concerning a forthcoming project, then only a concept for a web-based, live mass-participation game show. We were told it would be exclusively online, combining a high-quality live video feed of a presenter-led programme, facilitating up to 1,000 paying contestants to simultaneously compete for real money prizes with a number of interactive games.

I was invited because the primary candidate for deployment was using Flash Media Server, which I had a intensive experience with in my final year of university. Primarily I was asked whether the project was feasible, achievable and did I feel using the FMS the right approach technologically, because no one else on our team had previous dealt with it. Although less than a year since my work at uni, it was quite apparent that the scale of the project was going to be significantly more demanding than anything I’d worked on before, but I figured I say yes anyway.

The project itself is deceptively complex, but stubbornly never so in explanation. Essentially, it’s a enriched online port of the infamous interactive game shows despised on late-night television – you know the ones with premium rate numbers and supposedly con viewers? They’ve all pretty much been scrapped now, so this idea was (and because it had to be) a completely new format – the idea of a game of skill, with straightforward general knowledge and trivia as opposed to frustratingly ambiguous questions; without the premium rate number to join a queue of callers, instead, an approx. 25p entry fee that goes to an accumulative pot entitling you to answer all questions posed. The eccentric presenter remains, the live video stream remains as-near-as-we-can-to-broadcast quality – the exception being the intended hundreds of players compete simultaneously, meaning every question and answer must be timed, recorded, logged and audited with a robust and secure system.

I only truly realised the scope of the thing after so eagerly agreeing to build it when I began to comprehend the vast difference between this project and that I’d previously built at uni. We had a substantial amount of R&D time to really consider whether FMS was our best option, it’s capabilities, limits, the licensing – and being the only member of the team with any experience with the FMS, we were cautious to commit if it could be achieved some other way we might feel more familiar with – an open socket model with Java or PHP maybe – but FMS eventually won through.

The project required was a standalone engine to run, load and dispatch data, make remote procedure calls to server-side scripts, all independent of any administrator control unless commandeered. At this point, looking back at Talkboards which stored all dynamic data in persistent shared objects the user simply subscribed to, its entirety was equal to the live chat ‘feature’ alone.

Building this engine immediately began to highlight Adobe’s lack of development with the Media Server since obtaining it. It’s still pretty much Actionscript 1.0 – or near enough, their API confesses ‘Server-side Actionscript’ is just their name for JavaScript 1.5. So OK, back-date the code – and no type declarations unless you want the app to silently unload, but there’s also no use of the Delegate or EventBroadcaster – arguably the backbone for Actionscript development. I also wanted to avoid using prototype functions where I could and try to divide the code into some kind pseudo-class system – not only to be more logical and readable, but for any later hand-over or joining of other developers to the process. But this could only really go so far to contextually separate ASC files that all load from the app’s main.asc anyway.

Problems with the absence of the Delegate and EventBroadcaster are obviously not uncommon. Peldi ported the classes to ASC files in his handy Flash comm server book, some hosting services, such as Influxis, bundle their own frameworks with hosting packages. But the more complex the objects and lengthy the extensions from the top-level Client and Application classes, the more scoping errors I encountered.

Jesse Warden wrote an interesting article concerning the Observer pattern experiencing the same problem developing Flex applications:

“With a little work… you can implement FMS server-side components into Cairngorm 2. For ever server-side component you create, you merely create a client side equivalent as an Observer. It listens for NetConnection or Remote SharedObject sync events and dispatches events. These events run Commands which in turn set data… just like normal. If your Views are bound to said data, boom, you’ve got a nice, clean separation.”

Ultimately we devised a model that essentially handles quite a complex (application) data object, passing itself around via prototype functions, making amendments and modifications and passing itself on. Each client has their own (client) instance (that extends the Client class), enabling their unique connection to call server-side methods – and vise-versa – without needing to loop around the application.clients array.

And finally, last Saturday was the pilot launch. Initially a beta test group of 100 competition winners and by and large, it went extremely well. Surprisingly, the biggest infringement was on behalf of our PHP/MySQL host, who happened to have hardware difficulties that day. So although all still proceeds to go well, I won’t count my money at the table, episode number two is tonight – with an increase to 300 users.

So last night I was able to attend the my very first London Flex User Group meet, organised by the guys at Emak Mafu, kindly hosted by those at Poke.

First up was meant to be a walkthrough/demo/first look from the people at doof.com, who’ve developed a fully Flex-based ‘casual gaming and social networking site’, but a beta bug meant their presentation was prematurely cut short. I’d already had a play beforehand anyway without a hitch and it’s pretty nice. They’ve gone further than a lot of other Flex projects I’ve seen, it’ll be good to see it at full tilt when all the bugs have been ironed out.

Simon Gladman took over demonstrating WatchFaceBuilder, a CAD-like application process for designing custom built watch faces. His self-proclaimed debut outing in Flex, it also uses Cairngorm, which I first encountered a while back. I was surprised how easily Simon claims to have emigrated from Flash to Flex and how much of this he puts down to Cairngorm.

The night’s main event was a comprehensive an insightful talk with Mike Potter from Adobe’s Flex product marketing team. Running through the top picks in recent Flex and AIR development, he covered a fair amount of the usual apps as expected, but also some that deserve far more attention.

Firstly on behalf of Adobe, there’s Photoshop Express, essentially a lite Photoshop in the browser, online, but as he admits there’s already Picnik doing very well – which personally was probably the first Flex app I’d ever seen and catalyst to start learning. But he compares Photoshop Expresss to Premiere Express, Adobe’s parallel Flex/brower-based video editing software, which already powers YouTube’s video editing and MTV’s Remixer contest. Where a number of independent Flex apps lock features for premium users, Photoshop Express could be a angled as a could-be de facto standard to power any kind or number of image manipulation online platforms.

There’s Bluestring, from AOL, which lets users upload, store and share files, video and images, as if we need another, but what’s more interesting is even if the idea might be already becoming redundant, companies the size of AOL are investing considerable amounts in Flex.

Buzzword is impressive, this is basically for word processing what Picnik is for photo editing. Far more responsive and comprehensive than say Writerly, it pretty much is what-you-see-is-what-you-print unlike a lot of other online word processors. Needless to say, it handles Word .doc files and has an amount of saving/sharing options to boot.

Other links of interest, the Flex showcase (generally), Mike’s new blog RIApedia, Adobe Share (more file sharing), the new Adobe DevNet, the Adobe Media Player and eBay’s desktop/San Dimas project can now be found at http://desktop.ebay.com.

Followed was a lengthy, pretty sincere feedback session for Mike to take with him back to Adobe. Overall an insightful evening, good stuff.

Oh and free beer and FLEX STICKERS? – Sold ;)

Managed to get to ExCeL last night to see Kevin Rose and Alex Albrecht’s first live Diggnation in the UK. Can’t say I’ve ever watched one but went along anyway and it was pretty good stuff, I’m now subscribed :)

I only caught one half of LFPUG this month, Jolyon Russ ‘Introduction to AS3: The First 5 Things You’ll Want to do With ActionScript 3, unfortunately missing Tink‘s Papervision3D Effects for Flex – he’s recently posted a promise to upload the source soon though.

I’ve recently found and registered with the London Flex User Group, who’ll next be meeting on October 10th – looking forward to it!

Update (10.10.07): Tink’s source files and a video of the presentation can be found here.

Yesterday afternoon I attended the latter half of the Adobe CS3: Creative License Tour’s London date at The Vue, Leicester Square. Unsure whether the day would be more of a marketing pitch for buyers rather than demonstrating the software in any kind of depth for producers, I was pleased to find the one session I did manage to get to pretty informative.

Ben Forsaith, a product specialist at Adobe, gave a two and a half hour presentation entitled ‘Rich Internet Applications Development’, given in two parts, promising full coverage of the Web-end software in the CS3 suite.

The first half centered around my new favourite, Flex, and it’s integration with its sister apps. It was good to get the very latest (and also comprehensive) view straight from an Adobe source and to hear too, where they see it sit within the CS3 family. The main pitch was that Flex brings together designers and developers alike, essentially, that the new Flex Builder IDE with it’s still-evolving ‘Design View’ accommodates the designer far more like the Flash IDE, or even Dreamweaver, than the developer-only Flex SDK.

What I was more interested in was seeing what’s in development right now. Throughout, Forsaith used the Flex 3 beta, Moxie. He also demonstrated it’s seamless integration with Illustrator and Fireworks – generating CSS output from vector-based assets created in Illustrator and now exporting MXML from Fireworks after using Flex-native components from inherently shared libraries.

It was also good to see Flex using live MySQL queries – I’ve only used/seen XML data to bind up until this point.

The second half opened with a good look at ColdFusion 8. I’d never really used ColdFusion to any extent before, so it seems like a completely different program (but then he said it pretty much is now).

Then came Adobe AIR (previously Apollo). Having only seen a brief look at a couple of apps in the showcase, it was good to see them in full swing. He demonstrated a fair amount, including Finetune – streaming music and playlists from your desktop – and Fresh – an RSS aggregator and manager. We also got a look at eBay’s San Dimas, which seems perfect for AIR. It’s exactly the type of thing that works with the online/offline balance and a great sell for eBay without basically having to create a parallel service or having a complete overhaul.

Salesbuilder and MapsCache showed the drag-and-drop desktop integration, creating images and charts on-the-fly that you can drag direct to your desktop as png or jpg files.

Pixel Perfect is brilliant, a great little app for designers and ScreenPlay was fun but i guess pretty pointless (only really a demo for alpha values), similarly the iPhone app.

Forsaith then quickly ran through some AIR building, in both Flex Builder and Dreamweaver and ended with a demonstration of AIR SQL Admin, which non-coincidentally runs the same as Google Gears – Google’s implementation of offline-synchronised SQL.

Overall a good session, only really lacking a hands-on workshop.

Everybody’s out on the run tonight but there’s no place left to hide.