« April 2008 | Main | June 2008 »

May 29, 2008

Learning About Flex 4 Through Commits

I've really enjoyed having access to the Flex SDK subversion commits, so that I can see the actual changes going into Flex 4. I have an email subscription to the commits, which I read over when I find the time. I've seen a couple of interesting things go in:

Watchpoints for debugging
Compiler performance improvements
A new Flash format tag, DefineFont4, and generation from OpenType CFF font files

One gripe, however, is that it's obvious from the level of commits showing up that not everything is visible. The team must be working off of a branch, as there's not nearly enough activity showing up for the Flex team. Hopefully they'll change this practice soon and start using the public branch.

Posted by Brian at 9:38 AM

The Making of a Platform with Adobe Technology

Brightcove is using Flex and Flash in many significant ways to make a video platform, and I thought it'd be interesting to some people to share some of the uses. I can't share a lot, but I can take the information from a keynote presentation by Ashley Streb at Webmaniacs 2008. You can also see the full presentation embedded at the end of this post.

The scale of things at Brightcove is something that drives a lot of what happens with Flex and Flash at Brightcove. From the slides:

135 Million Unique Users/month (as of 6 - 9 months ago)
1.5 Petabytes (1,500,000 GBs) of media delivered/month
Thousands of platform users, hundreds of major media brands, 
  50 television networks, newspaper and magazine publishers, 
  and all the major record labels in the US.

All of these users and media go through the Brightcove players, which have AS1, AS2, and AS3 versions in hundreds of different permutations. Some of the data on the AS3 versions from the slides:

ActionScript 3, AVM2
AMF3 as client/server communication protocol
~70K LOC written

There's nothing too surprising in there, but there's some more interesting size information in the slides. Keeping down the size helps the performance, and there's been a lot of work by Todd Yard (and others) on making the players faster and faster for the 135 million (or whatever the current number is) users.

The players and videos are managed by manager applications that were created with Flex. When some of your customers have thousands of videos and thousands of playlists of videos, the management becomes... tricky. The slides touch on some of the ways this happens:

AVM2
Structure server API; initial view, lazy load, different types of DTOs
Make clients intelligent about their needs 
Datagrid presentation strategies

I'm sure there's some questions on some of the above, like the datagrid presentation strategies, but I'll have to expand on them another day. These business applications have some other data points on them that I can share:

Flex 2, AVM2
Flex vs. ActionScript vs. DHTML
AMF3 as client/server communication protocol
Cairngorm as micro-architecture
~100K LOC written, 150 Commands
FlexBuilder as IDE/Developer Tool
FlexUnit for unit testing
Homegrown integration tool

There's a lot more in the slides below, including info about Brightcove as a service, code layout, the use of Scrum, our Java setup, etc. If you'd like to hear more about any of this, just comment or send me an email.

Posted by Brian at 9:15 AM