June 29th, 2007

Flexmaniacs Day 2 – End of week commentary

Well…the first Flexmaniacs is officially over. It was a very good conference.

I meant to blog about day 2 earlier in the week, but I got carried away with enjoying the sights DC had to offer…he he. By the way, off topic, but if you make your way out to DC, definitely check out the International Spy Museum!

Now without further ado…here’s my take on the day 2 sessions I attended:

Day 2 Keynote – Adobe Experience Design
(Sundermeyer & Hobbs)

Two guys – Mike Sundermeyer and Tom Hobbs from Adobe’s Experience Design (XD) gave the day 2 keynote. I was very impressed and interested in their presentation, most notably because it had to do with UI design theory and that’s something I don’t usually have time to think of at the detail they covered…usually by the time I work on a project, the UI has already be ironed out in Photoshop…

First off, the main point they made was most people use the same features in software over and over again. In other words when designing software, it’s better to filter out things so that users can get to what they need to.

Second, during their presentation they showed us a lot of demos and went into details on how they approached them from a UI theory perspective:

  • Experience Bank (Online banking tool)
    • One UI driver was always knowing when your account was close to $0
    • Another was knowing what bills were due soon
  • Amazon.com (Online merchant catalog)
    • driver: searching without request/response white page
    • driver: filtering out things in the UI you don’t have to look at (less busy)
    • driver: using animation to create a mental model for the user to learn where things live in the application
  • YouTube Remixer (Online video editing tool)
    • driver: both web and desktop functionality
    • driver: drag and drop, research has show with the right visual cues – such as “drag item here” text – users figure out drag and drop…it’s natural
  • MetLife (Insurance Claim Tool)
    • driver: people would call in and tie up a rep on the phone for 45 minutes to make one claim…need to figure out a way to do it online
    • driver: redesigning how a site approaches online forms
    • driver: using graphical form fields, describing damage to a car, or what happened in an accident can be hard to describe in form fields so do it graphically…
  • MetLife Mobile (Insurance Adjuster Tool)
    • driver: filtering out unnecessary information
    • driver: putting things where needed, for instance in the damage detail put “take picture here”
    • driver: make sure it’s part of a complete ecosystem, iow, make sure it makes sense with the online tool

Third, they summarized some of the UI development myths and let us know what they felt about them:

  1. More features = More value
    • Actually value is simplicity and quality:
      • design for the 80%
      • show only the tools needed for the task
  2. Chrome is cool
    • Actually content is king:
      • design content not chrome
      • express things visually
  3. Animation is gratuitous
    • Actually, it has it’s place:
      • cinematic transitions to give the user a better understanding of the app
      • evoking emotion, focusing attention
  4. Apps are sums of their parts
    • Actually, the UI design is a whole
      • like a house one person or team should design
      • if features change significantly the whole must be reconsidered
  5. One size will fit all
    • Actually personality and community rule
      • community creates better content
      • users want different things in different ways
      • identity and brand matter

All in all the XD team had a very good presentation.

Managing Large Applications with Modules
(Jim Robson)

Jim is a developer at Eye Street Software he has been working with Flash and Flex for a good amount of time now. He had a very informative session on why you would want to use modules in a Flex app.

For me, the highlights were:

  • He provided good background information on how Flex utilizes frame streaming – Flex is two frame: preloader+frame with all code, assets, etc…frame can’t play until it’s completely downloaded – in other words, the larger the swf the longer it takes to load, and therefore why you should use modules if you can.
  • He gave a good example of bad practice – tightly coupled module – versus good practice – loosely coupled module – by making use of an Interface for the module

AS3 Performance Tuning
(Chotin)

Ted Patrick has been very busy dealing with MAX 2007 and the on AIR Bus Tour. I was really pumped to see him give this presentation since it’s his baby, however, Matt was an outstanding gentleman and filled in for Mr. Patrick. All in all he did a very good job and showed us some cool examples of optimized vs. non-optimized AS3…thanks Matt!

As far as this presentation I would go into some detail, but looks like Matt made the slides and code available for all.

However, the highlights for me were both when Matt went over how the Flash Player and JIT compiler work, and when he mentioned the new FB3 Profiler and how when using it, make sure to keep in mind that everything runs much slower than normal.

Sorting and Filtering Data in Flex 2
(Stroz)

Scott works at Alagad and has a good command of sorting, filtering, and paging data without having to use FDS. His presentation was well informed and had many good code examples. On a side note, Scott’s been working on a custom Pagable ArrayCollection class.

Under the Hood of an Advanced Flex Component
(Josh Tynjala)

Josh is a pretty bad-ass developer that built an awesome treemap component…among others. His presentation was very informative for those that need to build custom components.

It was an expert level presentation and went over topics such as:

  • Ifactory and ClassFactory
  • Caching your itemrenderers (Adding and removing a lot of objects from the display list is one of the most CPU intensive things you can do)
  • Using a cursor to request renderers from your cache

In addition he went over many tips he had learned along the way:

  • Exposing common properties (For instance with Lists, expose labels icons and toolTips)
  • Making use of Interfaces
  • Not forgetting to override commitProperties()
  • Using Static initializers to set styles on your advanced component

All in all a good presentation, and here’s the slides for those that are interested.

June 25th, 2007

Flexmaniacs Day 1 – Wee-hour Commentary

Well…here at Flexmaniacs…

Today was an awesome day…not to mention Adobe’s sponsored happy hour at Buffalo Billiards!

Figleaf knows how to host an event, and when I got here I found out that I had a free O’reilly Flex book waiting for me, yay!

Anyway, here’s the scoop on the sessions I sat in on:

Day 1 Keynote – Flex, Today and Tomorrow
(Chotin)

  • Matt had very good coverage of the new features in Flex SDK/Builder 3. For those that:

this was the most effective way to get a good feel for what’s new!

  • Most importantly, yay for the new Profiler feature!

Component Development in the Flex World
(Kazoun)

  • Kazoun is one of the authors of the O’Reilly Programming Flex 2 book. I just started reading it the other day and there’s some very good material in it.
  • I think my favorite part of his presentation is when he was talking about the Component lifecycle. Very thorough and makes me anxious to read more of his book!

Memory Management for Flex Developers
(Heider)

  • Well, all I gotta say is, boo for Captivate and that I wish I had more time to present. :)
  • I did mention open-sourcing the memory utilization profiler…keep posted and I’ll announce it to the blog when I do.
  • Also, for those of you that missed it, it was my humble ode to Grant Skinner, Alex Harui, and Kyle Quevillon…Mr. Memory Management(s)!

Flex Data Services Push Tech. w/Legacy Systems
(Labriola)

  • Awesome overview on using FDS to keep clients in sync with data push
  • A Digital Primate with lots of experience implementing FDS in real world situations with not so good systems to integrate with…all I got to say is I can relate and feel for him…fo sho!
  • Included good information on using JMS with FDS data sync

Apollo File Access
(Nimer)

  • Nimer’s pimp…I always learn stuffs from him…for example:
    • Mac uses colon as file separator (c:someDir:someSubDir)
    • Don’t use “\” as a file separator since it’s an escape character in the Flash Player
    • No rename…instead use moveTo(f1,f2)
    • When reading and writing files surround in a try and use a finally to do fileStream.close()
    • When you read an object back in from a file it comes in untyped. Apparently there’s a hack where you use the [REMOTE] metadata in the class and it will be able to bring it back in as a typed object.

Understanding Flex Automation
(Cheng)

There’s only two people that I ever see writing anything in detail about Flex Automation…Lin Lin and Mr. Jim Cheng. This was actually a two hour hands-on. After Jim gave use a very thorough and effective overview, he had us build our own custom AutomationManagers…how cool is that. :)

Unit Testing with FlexUnit
(DeBonis)

This was the last session for the day…he had a very tough spot…good news is, he knew his stuff well. Good working knowledge with Unit Testing and presented the materials very well. Here’s a couple highlights:

  • He had a very good tip on a perfect unit testing case: Whenever you run across a bug you should write a test that recreates the bug so that you can check against it…
  • BEER ME! He wanted to bring a keg with him but apparently wouldn’t fly with the insurance…stupid insurance. ;-)

By the way…if you want to check out DeBonis…he’ll be at MAX2007!

Anyway…it’s late…need some sleep before the morning keynote. Can’t wait to see what they have in store for us maniacs tomorrow…

Powered by ScribeFire.

June 8th, 2007

The quest for the holy mxml/as3 snippets

Over the last several months I have been on a quest…I REALLY like developing my projects in Flex Builder, but there has been one bummer about it all along, code snippets.

During my quest I’ve tried out alternate IDEs:

Sepy FlashDevelop FDT

But to my dismay there was always something about them that to me seemed pale in comparison to the features and functionality of Flex Builder for Flex/Apollo development.

So…the search continued…

The next thing I though about doing was leveraging the CFEclipse plugin’s Snip Tree View with AS3/MXML. This proved to be very promising…works pretty well with .as files in the Flex Development perspective:

Snip Tree View with AS3

Snip Tree View with AS3 Inserted

However, the Cfeclipse Snip Tree View did not work at all with MXML files… basically, the mxml editor disables the insertion of the snippet after populating necessary variables.

So after tedious toil I gave up for a couple weeks…time passes…

Today I was working on an app and was getting sick of typing in the same code over and over again. I decided that although snippet tools with support for dynamic variables was not something I had succeeded in finding, I figured I could just find a little code clipboard plugin to paste in some of the more common code structures. (Then I could use Replace/Find to populate the dynamic pieces.)

I found a promising clipboard app called Multi Clipboard by an author who has a pretty bad-ass Regular Expression plugin called QuickREx , so I installed Multi Clipboard. After the plugin installation, I restarted my workbench and went to Window menu –> Other Views to add the Multi Clipboard to my Flex Development perspective.

For some reason I though that the Multi Clipboard would be listed under General views, which it wasn’t, but luckily for me I stumbled upon something interesting called Snippets:

Once the Snippets view was in view, I quickly realized that I had stumbled upon the holy grail of mxml/as3 snippet creation in Flex Builder…are you skeptical? Check out these screenshots:
WST Snippets Config

Insert Snippet into AS3 file img 1

Insert Snippet into AS3 file img 2

Below is the crowning feature, dynamic snippet with MXML files, woo-hoo!!

Insert Snippet into MXML file img 1

Insert Snippet into MXML file img 2

So…if you’ve read this far, I’m sure you’re liking what you see…here’s the deal, to get this functionality, download the Eclipse Web Standard Tools (WST) Project. Mine’s version 1.5.4…

Now I just need to find a Shrubbery…

-Jun

Upcoming Talks





A Book I Helped Write



Community


Ignite Denver Committee

Categories

Credits