Heading to Atlanta to Speak at 360Flex

February 23, 2008 on 6:00 am | In Uncategorized | 1 Comment

After a far-too-short breather from the last snow-encrusted landing at Logan Airport, I will be flying to Atlanta on Monday to speak at the 360Flex conference Tuesday morning. I really like this conference because it’s small, 100% focused on Flex development and has an extra-congenial, hang-friendly atmosphere.

Many of my speaking topics have to do with architecture, patterns, or some kind of preaching about best engineering practices. I love all that, but, to be completely frank, it feels a bit abstract and windy sometimes. I like to build concrete stuff that does something useful, and that’s where my real interests lie. (”Dammit, captain, I’m an engineer, not a methodologist…”) So this year I’ve made a pact with myself to only do talks about real live projects.

At 360 Flex I’ll be sharing a detailed case study of the architecture and implementation inside the most challenging and interesting product we’ve built at Allurent to date: the Allurent Display Platform. This system includes an engine that visually renders XML markup as Flex components — but unlike MXML or HTML, the markup resolves bindings to nonvisual data objects (usually products or product categories) that can live anywhere in a “virtual namespace” of content. Allurent Display also includes a fully-featured visual authoring tool for this markup similar to Flex Builder Design View.

This talk is a case study, not a product demo: I will be sharing the big decisions we made, the Flex or Flash technologies we used, the implementation tricks we had to resort to, the alternate approaches we considered (maybe the audience will propose something better). I think it’ll be a fun time. Anyway, hope to see you there, if this kind of thing interests you!

1 Comment

Mountain Biking In Mexico’s Copper Canyon

February 15, 2008 on 6:12 am | In Bicycling, Travel | 3 Comments

I just returned from a week-long mountain bike trip in Las Barrancas Del Cobre (Copper Canyon), a canyon system in southwestern Chihuahua state of truly remarkable scope and scenery:

The trip was organized by Western Spirit, a bike expedition company about which I have only great things to say. [Continued…]

3 Comments

A Single Link for MVCS Resources

February 14, 2008 on 5:33 am | In Flex, Programming | 1 Comment

A few folks have pointed out that it’s difficult to track down all the resources about my MVCS approach to building Flex applications. They were right, and in response I’ve consolidated everything into a single page accessible at this URL:

http://www.joeberkovitz.com/mvcs.

I’ve also included a few addenda to MVCS reflecting more recent thoughts and practices. As more materials become available, I will add them to the above location.

Thanks to everyone who prodded me into doing the right thing!

1 Comment

Too many TextFields and not enough beer makes FP9 crash

January 21, 2008 on 2:54 pm | In Flex, Programming | 1 Comment

I’m working on an interesting and involved project (that I can’t say very much about right now), and it uses a ton of dynamic TextField objects on the screen. I thought things were going superbly, but my app started to crash the player at odd times as the display became more complex. I wanted to tear my hair out, but said hair is kind of short-to-nonexistent and it was hard to get a good enough grip. I tried to reproduce the crash, but each time I thought I knew what was causing it and made the “fix”, it would come back.

It was right around then that I recalled David Coletta of the Buzzword team mentioning at Flex Camp Boston that the Buzzword application uses a bunch of clever techniques to avoid creating and destroying TextFields as the user types (since they use lots of them to render what appears to be a unified display of a rich-text document). Among other things, he mentioned that they pool TextField instances offscreen — while keeping them on the display list — and reuse them by bringing them back onscreen to show stuff as needed. [Continued…]

1 Comment

Douglas McCarroll releases AS3 visual-comparison testing library

December 28, 2007 on 12:23 pm | In Flex, Programming | 1 Comment

Douglas McCarroll has just released the first public incarnation of Visual FlexUnit as a Google Code project. I’m very excited about this project, partly because I think it’s going to be super useful to some people (myself included!) and partly because Douglas did a ton of great work on it during his internship this year at Allurent and it really is his baby.

I don’t want to recapitulate the whole project description, which you can read for yourself, but… what the heck is Visual FlexUnit? [Continued…]

1 Comment

UrlKit 0.92 now available with IE7, Safari support

December 20, 2007 on 4:34 am | In Flex, Programming | 10 Comments

I’ve posted a new download of UrlKit version 0.92 to the UrlKit project on Google Code. (Note that 0.91 was formerly mentioned here, but a distribution script error was discovered to have omitted a few files.) It has some nice new features, some based on user feedback:

  • Uses deep linking approach from Flex 3 to support all major browsers including IE7 and Safari
  • Code for UrlKit apps in Flex 2 and Flex 3 is now identical
  • New navigate() method allows apps to internally change state by directly specifying a new URL fragment
  • New enabled property of FlexBrowserManagerAdapter optionally delays UrlKit startup until application is fully initialized

Happy Holidays!

10 Comments

Using Flex 3’s Deep Linking Features in Flex 2

December 12, 2007 on 5:26 am | In Flex, Programming | 3 Comments

If you don’t already know, Flex 3’s deep linking support is a tremendous boon to the RIA developer, insulating our lot from having to worry about the whole sorry, shoddy business of communicating little strings between our application and the fragment chunk of the browser’s location URL. Applications that have some notion of navigational state benefit greatly from using this feature: their state (as embodied in such a URL) becomes automatically hooked up to the Back/Forward buttons, becomes bookmarkable, and of course becomes exchangeable via the usual Web means with any other user of the same application.

For those of us who have real products that need to be released on a schedule independent of Adobe’s corporate whims, however, Flex 3 isn’t necessarily a good option. Where does that leave the would-be deep linker? One of the few options for Flex 2 users has been the UrlKit library written by Todd Rein and yours truly, which provides deep-linking support in Flex 2. (In Flex 3, UrlKit uses the built-in deep linking mechanism.) Unfortunately, in Flex 2 the deep linking support in UrlKit is not equally good for all browsers. UrlKit supports FireFox, IE6 and Safari pretty well, but I’ve never had the time to catch up with IE7, and the prospects of my keeping up with the dirty little world of browser compatibility have been — and remain — dim. In contrast, Adobe is a big company with lots of smart QA people and a business motive to toil in the compatibility trenches.

Now, something not generally known is that the Flex 3 deep linking support is derived directly from the UrlKit code (and, yes, they had the authors’ permission!). As such, it has virtually no dependencies on the rest of Flex 3 — not surprising, since Todd and I built it for Flex 2. So it occurred to me recently that it should be possible to port the Flex 3 BrowserManager class and accompanying Javascript back into Flex 2, where it would probably simply compile and work out of the box. And the good news is: it does! (Actually that is a slight lie: I did have to comment out a single line of code, and add a one-line magic incantation to my application startup. But that’s not too bad.)

This means that Flex 2 developers (and UrlKit itself) can now take advantage of the Flex 3 BrowserManager subsystem in its entirety. Furthermore, I am aiming to provide a new revision of UrlKit shortly that incorporates this approach for its Flex 2 deep-linking support.

I cannot legally redistribute the slightly modified Flex 3 source that works in Flex 2, but here’s how to do it yourself:

  • create a new Flex Library project based on the Flex 2.0.1 SDK
  • copy the following files into it from the Flex 3 SDK source:
      mx/core/Version.as (note: this is included by the other files, but not compiled itself)
      mx/events/BrowserChangeEvent.as
      mx/managers/IBrowserManager.as
      mx/managers/BrowserManager.as
      mx/managers/BrowserManagerImpl.as
  • comment out the line in BrowserManagerImpl.init() which sets the historyManagementEnabled flag — this does not exist in Flex 2.
  • compile the above files (excluding Version.as) into a SWC
  • in your Flex 2 application, drop in an HTML template generated by Flex Builder 3 for a Flex 3 deep-linking app. This template will include a history/ subdirectory with JavaScript and CSS files in it, and the HTML page loading the app will refer to those files.
  • Add the following line to your application startup, prior to calling BrowserManager.getInstance()
    Singleton.registerClass("mx.managers::IBrowserManager",
        Class(getDefinitionByName("mx.managers::BrowserManagerImpl")));
    

I have some more testing to do, but a development version of UrlKit that I just compiled with this approach seems to work well at first blush.

Happy linking!

3 Comments

« Previous PageNext Page »

Entries and comments feeds. Valid XHTML and CSS.
All content copyright (c) 2006-2007 Joseph Berkovitz. All Rights Reserved.