Thursday, January 31, 2008

Pixton revealed at Vancouver Flex/AIR tour

The fine folks at Business Objects hosted the the recent Vancouver stop of the Flex3/AIR Prerelease Tour. Local Adobe Evangelist Duane Nickull was bravely demoing a 4-hour-old build of Flex Builder, showing off the new features to a crowd of of about 60+ developers / designers. About half were new to the Flash platform (welcome to the party!).

Duane's quote of the night came at the Yaletown Brew Pub afterwards: After telling him that I think that Flex is the crack-cocaine of programming languages, Duane quipped "Adobe considers Flex to be the gateway-drug to AIR". Brilliant.

Star of the evening - Pixton

Local developer Clive Goodinson demoed a new online comic site called Pixton. This super awesome site was created by Clive in just two months, and includes a Flash CS3 front end married to a PHP back end. Pixton is incredibly visually appealing, plus it has very immerisive and intuitive editing capabilities. Drag a character's arm to reposition it, and the joints all move correspondingly, in a very natural manner.

You can also remix the content of other Pixton comics, if the original author permits. Duane has already used Pixton to mock co-worker Ted Patrick. Most excellent.

My new mashups book is out!

Please help support this blog and buy this book. It was seconds in the making!

Saturday, January 12, 2008

Labels everywhere often means that the design sucks

This blurry picture is a camera-phone snap (scratched lens! grrr!) of the elevator control panel at my previous gig, before I joined EffectiveUI. The pic is blurry, but you can still make out the details.

There is just no affordance or discoverability in this button layout. I was working onsite for a couple of months, and I saw everybody continue to struggle to figure this thing out. I'm not talking just visitors (who also struggled), but people who had been working there for years! I was also tricked by the strange layout a couple of times a week.

Now, to be fair, the building was a little oddly shaped. It was built into a steep hill, and was terraced. An elevation perspective looked like this:

| 2 |
Gnd | 1 |
| | Patio
+------------------+ Ground level
| Parking P3 |-------\
+------------------+ \
| Parking P2 |
| Parking P1 |

Things I found bad about this design:

"Main" (1)  (2)
(P3) (M) "Roof Garden"
(P1) (P2)

  1. This panel is ordered right-to-left, instead of left-to-right. The standard layout (at least in North America) is for two-column panels to start with the top floor on the upper-left, and then decrement floor-by-floor in a left-to-right, top-to-bottom sequence.
  2. Floor 1 (street level entry) is also labeled "Main", but there is an "M" button!
  3. The mezzanine floor has the confusing "M" button, which everyone thought was the main level. "M" should only be for main.
  4. To fix the above, the mezzanine floor is labeled "Roof Garden". Roof? In the middle of the building? Call it a patio and avoid the confusion already!
  5. The parking levels are not ordered according to the standard. Underground parking levels should start with P1 being the level just below the main floor. So P3 should be floor furthest down, not at the top.
It's a tough design problem, for sure, but I think that the person responsible for this just gave up and said "This will do", thereby condeming all future occupants to confusion.

How would you solve the layout problem?

(PS: Can you tell I love ASCII art?)

No, I haven't died in a blogging accident

Just in case any of you were wondering. Man, you gotta love XKCD. Too many fluff posts like this are skewing the results.

Wednesday, January 2, 2008

DryerFox - Updated for Flex 3 Beta 3

I made a few minor tweaks to DryerFox a few weeks ago, but I thought I should post them.
  1. Updated the code to resolve breaking changes.

    The WebKit control was reworked a fair bit for Beta 3. mx.controls.HTML no longer delegates the heavy lifting to flash.html.HTMLControl. So this meant a code sweep to change snippets like:

    • html.htmlControl.historyBack() becomes html.historyBack().
    • html.htmlControl.window.document.title becomes html.domWindow.window.document.title.
    • HTMLUncaughtJavascriptExceptionEvent becomes HTMLUncaughtScriptExceptionEvent.

  2. Updated the -app.xml

    Another beta, another -app.xml schema.

    All the same values are set, but the precise location and names within the XML have changed again. I can see in the SDK that there is a template for these in sdk/templates/air/descriptor-template.xml. I just wish that Flex Builder provided a config panel interface to set this stuff, just like it does for the HTML wrappers.

  3. Updated the badge installer

    This beta included another update to the badge installer, so I have included this in the source update.

  4. Added the new EverythingFlexAIR.SWC library

    DryerFox was already using Rich Tretola's UpdateManager class, and Rich has now packaged this (and other useful goodies) in a SWC, available here.

  5. Updated SWFObject to v2 RC1

    SWFObject has moved to a release candidate, so I updated my copy. No other changes required.
Source for the latest DryerFox can be found here. App can be installed via the "Install Now" button at the top of the sidebar.