« September 2008 | Main | November 2008 »
October 29, 2008
Going to MAX
I'm happy to say that I'll be heading to the MAX conference in November. I'm expecting an excellent conference given the hard-to-pick sessions. I'm also looking forward to saying hello to old and new friends, as well as the people you usually just read online. Anybody who would like to say hello or who would like to take a peek at Brightcove 3, send me an email at brian at deitte dot com.
Flex 3 SDK: Now Even Faster
It was pointed out to me by someone at Brightcove that I would fail a grade school Math test. I've been saying that the Flex 3 SDK improvements give a 20% compiler speedup. So how did I come up with those numbers? Well, if you look at the numbers I provided and add them all up, you can get a percentage:
(101.5 - 81.5) / 101.5 * 100 = 24.5%
Hmm. So that's not how I got the number, because that's faster. What if I averaged out the different scenarios?
(13 - 8) / 8 * 100 = 62.5%
(41.5 - 34.5) / 34.5 * 100 = 20.3%
(47 - 39) / 39 * 100 = 20.5%
(62.5% + 20.3% + 20.5%) / 3 = 34.4%
Well, that's not right either. So how did I come up with that number? I don't know. But I like the new numbers better.
October 26, 2008
A Faster Flex 3 SDK
At Brightcove I've spent some time creating faster Flex 3 SDKs by merging some changes from the Flex 4 SDK. It's not a lot of changes, but it makes a fairly significant improvement in compilation speeds in Flex Builder. I find for small changes in a large project, there's about a 20%25% speedup, but this varies greatly depending on what you're doing. I'll give some performance numbers below and explain exactly what changed, but first I'll show you how you can use these changes yourself.
Using the Changes
Here are the files you'll need, with one zip file for Flex 3.0, Flex 3.1, and Flex 3.2:
fast-3.0.zip
fast-3.1.zip
fast-3.2.zip
Inside of the zip files you'll find jars that should overwrite existing files in FLEX_SDK/lib, where FLEX_SDK is the location of the Flex SDK you are using. If you are unsure of this location and you are using Flex Builder, you can find it in the "Properties" for your project. Select "Flex Compiler", then select "Configure Flex SDKs". If you "Edit" the SDK listed, you'll see it's location.
There's another zip file that you can try out, which contains some more changes from Flex 4. Given the number of changes, I've labeled it experimental. There's only a Flex 3.0 version:
Performance Numbers
For fast-3.0.zip, I ran some tests on the building of the media module at Brightcove:
Changing the main MXML file: from 13 seconds to 8 seconds
Changing two UI classes: from 41.5 seconds to 34.5 seconds
Changing a ModelLocator: from 47 seconds to 39 seconds
Why I Did This
Now that I've given out the files and shown the performance, I'm sure I've lost half of the readers as they go update their SDK. But for those of you still here, I'll explain things more. As you may have seen in a recent post of mine about ways to speed up Flex Builder, I've been working on strategies at Brightcove for increasing everybody's ability to work quickly on Flex and AS3 projects. As a part of this, I've been very interested in the Flex 4 performance changes.
I talked to Paul Reilly and Pete Farland at Adobe a bit about my work, and they thought what I was planning to do made sense. Paul also suggested that I try to use Flex 4 directly. I did try this, but I ran some issues. It also just wouldn't work out to have everyone use the pre-alpha of Flex 4 on a large codebase at Brightcove. But I still wanted to use some of the performance changes. That's not a problem when a project is open source, thankfully! I used svn to merge some of the changes back to Flex 3, and we've been using these changes at Brightcove since then.
More on the Changes
Here's are the diffs for fast-3.1.zip and fast-experimental-3.0.zip. I'd have to remake the changes to get the diffs for fast-3.0.zip, but I believe they're identical to fast-3.1.diff and fast-3.2.diff.
fast-3.1.diff
fast-3.2.diff
fast-experimental-3.0.diff
The subversion changes I merged for the fast versions: 2850,2931,2941,3290,3369
The subversion changes I merged for the experimental version: 1237,2001,2627,2673,2850,2931,2941
fast-3.0.zip is based off of 3.0.1.1092, fast-3.1.zip is based off of 3.1.0.2710, fast-3.2.zip is based off of 3.2.0.3958, and and fast-experimental-3.0 is based off of 3.0.1.1092. The 3.0.1.1092 version was used for the Flex 3.0 changes because 3.0.0.477 doesn't have the asc compiler. There are barely any changes between the two versions of the compiler.
The experimental version had a lot of merge conflicts that I'm not positive I merged correctly. I've been using it myself a lot, and it's definitely faster. I can't wait to see the speed of Flex 4, which has a lot more changes that I didn't try to merge.
October 14, 2008
Brightcove 3 Now Available
When I had posted the screenshots of Brightcove's new Flex applications two days ago, I had forgotten what was happening today. Brightcove 3 is now available, and if you talk to our friendly sales department, you can now see the new Flex and AS applications we've been creating. And I can now talk about it all.
Some of the things I'm excited about in Brightcove 3:
- BEML (Brightcove Experience Markup Language), an XML markup language for creating players. It has bindings, hbox, label, and a bunch of other things that will be familiar to Flex developers, and it'll allow everyone to create new players quickly.
- Fast and light AS3 video players. Part of the lightness is accomplished by a lot of SWF loading to only load in what is needed.
- Well-designed Flex 3 applications for managing videos, players, advertising, reports, etc. These are applications that we've been working on for more than a year and are already being used by large publishers to manage thousands of videos.
- More media, player, and advertising APIs. You can access all of this in AS3 or Javascript, accessing the videos or controlling your videos in too many ways to mention here.
There's a lot more to talk about in the items above, but I'll have to leave that for another day. Some helpful links for learning more about Brightcove 3:
- Brightcove blog post
- Brightcove product page
- Interview with Jeremy Allaire on Beet.TV
- PR-ish article on MarketWatch
- eWeek article
- A partial review on Mashable
- Ryan Stewart's post
October 12, 2008
How Do You Speed Up Flex Builder?
I've been spending some time at Brightcove trying to figure out ways to speed up Flex Builder for some of the larger applications we're developing here. I have a few things I'm working on myself, but I wanted to hear what others have done to improve the compile times in Flex Builder.
Here are some of things we do:
- Build every application in one project using multiple source paths (instead of using extra library projects)
- Build parts of the applications as SWCs (instead of referencing their source paths)
- Close extra projects
- Use a system font instead of embedding fonts
- Run "eclipse -clean" occasionally
- Turn off "Copy non-embedded files to source folder"
- Turn off "Build Automatically"
Things we haven't tried or just trying now and which may be helpful:
- Build a lot of the application as SWCs or anything as an RSL
- The Hellfire compiler
- Use the Flex 4 SDK (or just the compiler portion) with Flex Builder
- Merge some of the many Flex 4 compiler performance changes into a Flex 3 SDK, and using this in Flex Builder
I should explain the last two items a little bit more. I've been watching the Flex 4 changes related to compiler performance with a lot of interest. There's an incredible amount of work going on there, and we can all expect to see some major improvements.
Do you have any other suggestions, unique hacks, custom workarounds? What do you think of the things we haven't tried? I'd love to hear everything, even if it seems specific to your situation.
Update: See A Faster Flex 3 SDK for another option for speeding up Flex Builder.
Screenshots of Brightcove's New Flex Applications
Brightcove has announced a major upgrade to its features, and now I can show a few screenshots of the Flex applications. Or rather I can link to some leaked screenshots on TechCrunch. It's a bit confusing if you just look at the page for the screenshots, as it includes both the old Brightcove and the new Brightcove. But once you know that, it's easy to tell which ones are new.
The home page is HTML, but the rest of the new screenshots show Flex 3 applications. This was a large undertaking by a lot of people here at Brightcove. I'd love to write some more about this, but I'm going to have to wait until it all goes public.
Update: You can now read a lot more about the release.
Posted by Brian at 2:42 PMEven if You Don't Write Music, Check Out Noteflight
I'm not a composer myself, but I've had a lot of fun playing with Joe Berkovitz's new application Noteflight. It's a pretty amazing Flex app, even if you can't write anything more complicated than Mary Has a Little Lamb. You can read more about it on Joe's blog or flex888.


