Posts by pet-theory.

flexbuilder update gotcha: package/var name collision

After updating my trial of FlexBuilder to 2.0.1 (OS X), a slew of errors appeared in my AS3 projects.

I had gotten in the habit of using the same name for 1) a package, 2) the most important class in that package, and 3) a reference to that class in another class.

So for instance:

import alertBox.AlertBox;

protected var alertBox:AlertBox

I had a queasy feeling about possible collisions, but I found the symmetry clear and effortless, and there were no problems–until the update.

Then, the compiler started disregarding the variable declaration, and treating “alertBox” as the package, instead, so I got a bunch of errors to the effect that “x” (for instance) is not a method defined for alertBox. (“x” is a property of an alertBox instance, but not a class in the alertBox package).

When I renamed the variables (“aBox”), the errors went away.

Just a heads up.

Packages and AS3 v. AS2 access modifiers introduced

AS2 access modifiers were simple to understand. Each class was like a cohesive object with an outside and an inside. If a property could be accessed from the outside, it was public. If it was used for the inner workings of the class, it was private.

private

AS3 presents a considerably more jagged picture. Senocular has laid out the new landscape with characteristic economy and astringency in these posts, but I had to read them about five times before I understood them.

The most striking innovation is the new default access modifier, internal. The first question about this modifier is: internal to what?

More… »

back-button design-pattern options for Flash

I always figured it was laziness when Flash designers omitted the back button…until I considered implementing one myself. Then I realized that this is another case where the wide-open freedom of Flash leads you directly to ground-up difficulties.

The back-button works so naturally in a browser because HTML presupposes one kind of transition: one page replaces another. Take for example this navigation strand in a hypothetical medical site:

body.html–>organs_heart.html–>cells_heart.html–>cellParts_lining.html

Because pages are essentially fungible nodes in a network structure, users can swap them with ease. This holds for backwards-and-forwards tracking as well as other types of navigation–jumping back in the history, or up to the home page.

Now imagine that a mop-haired designer is charged with designing a Flash version. The result: As a user rolls over a picture of a body, the body becomes transparent. Clicking on an organ zooms it and brings up text at the side. Clicking on links in the text provoke a pop-up with a model of a cell. Clicking on selected parts of cell fades out the body altogether and reveals longer texts…etc cetera.

More… »

feedback loops, the price of entry

When I was a kid, my older brother taught me a few blues chord progressions on the guitar so he could solo soulfully over me. I accepted this division of labor because my deficient sense of rhythm and pitch was immediately, painfully obvious.

I remembered this last week when I hooked up a USB keyboard to my computer and fired up GarageBand, because all of a sudden I had unexpected musical hope.

For me, the program’s killer feature is a graphic view of the notes (each note is an elongated rectangle). When I hit a key, I can really see the note–how high it is, how long I hold it, how it compares to other notes. So far, this goes a decent way towards overcoming my handicaps.

I’m surprised, because what had seemed necessary (my dorky-white-guy fingers pouring out music), seems dramatically less so, because I’ve found an alternate, more visual route to the sound.

I can strike notes, listen with my feelings, adjust the notes (users can change their duration and frequency by dragging them), then start the process over again. Since I just want to compose custom music and sounds for Flash files, that I’ll never perform from a park bench doesn’t bother me.

Think, act, see result, think, act, see result. Etc. A feedback loop is common enough (play, work, learning, interfaces, life) but my little adventure this week definitely brings home the idea that technology keeps changing the prerequisites for entering particular loops.

My soloing older brother is a case in point. He was never good at basic math. So what did he become? A sickeningly rich accountant. Apparently, whatever he does (he’s explained it, but I can’t comprehend), it now requires a different kind of quarter to get the pinball machine lit up and ready to go.

my MacBook, kidnapped by Chinese

Every since I ordered my MacBook, I’ve been obsessively checking its status through Fedex:

fedex.png

More… »

Yahoo redesign: return of the frame?

Everyone is pulling in the same direction: the web application, but nobody is quite sure where we’re going designwise.

Yahoo’s portal redesign is a milestone: the first major long-standing site to take definite, Ajaxed steps from hypertext to web application, and it’s made me review some very basic principles.

What is hypertext? It’s a networked cluster of pages. Some pages are full of links to other pages, other pages are end nodes of content, and still others contain both links and content. User navigate by bookmarks, or by climbing down hierarchical branching, then climbing up those branches with back button clicks.

What is a web application? Our first guess is that it will approximate a desktop application, that is, a stable interface that users can manipulate rather than a series of pages that users can jump through.

So, for instance, the Yahoo redesigners use accordian menus that resize when content comes up, preserving the interface and available choices.

This is just one possible solution to a more general problem: you have content, then you have more content. If this isn’t one page after another, what is it? Displacement, appending, overlaying, etc?

The Yahoo designers also use tabbed windows, in which tabs instantly bring up different content in the same window. The lack of refresh feels good, very good, better than I expected. It’s like a Windows desktop application, obviously, but on the web. I wonder if this isn’t the slinking, sidewise return of the frame, a site-within-a site, this time tabbed instead of scrolled?

why I’m pysched about AS3 packages

Like the vast majority of Flash programmers, I don’t come from a science/CS/technology background.

I’ll bet my evolution has been mirrored by others:

Phase 1: The Christmas Tree. Code actually HANGS all over the graphics.

Phase 2: The Root. The Christmas Tree is impossible, period. I centralize my code on one frame so all functions can talk to each other.

Phase 3: The Boxes. The Root was one long uproar of a scroll, and the bugs got weird, X-Files weird, when the wires got crossed. So I learned classes and practiced the virtues of encapsulation.

Phase 4: The Chinese Box or PACKAGE. It takes work to get all those encapsulated boxes to stack together, dammit. Some boxes are ridiculously small–6 lines!–and too often closely related boxes are forced to use a zillion courtly getter/setters just to say “Hi, how are you?” The only alternative is putting one box inside the other, which causes problems when the second box wonders, “Where am I, exactly?”

More… »

complexity v. simplicity, Take 153

Inspired by Chang Heavy Industries, I’ve been experimenting with RSVP (Rapid Serial Visual Presentation), which flashes words or images in a rapid sequence.

So I’ve been wondering, what kind of picture is grasped most readily–a line drawing or a bitmap?

The research indicates that our minds turn the continuous bitmap known as seeing into a series of line drawings, so one might expect line drawings to be grasped more readily, since they cut to the chase, as it were.

I’m not so sure. The mind might generate its line drawing more quickly from a bitmap than a pre-existing line drawing.

Maybe a morass of details provides multiple entries to a pattern. Take the face, for example. As soon as we recognize a nose, we can process the details and mentally construct the rest of the face rapidly. And–importantly–the same goes for any individual feature.

So maybe the details aren’t helpful because they are complete, but rather because they provides redundant, start-anywhere access to a pattern.

Details as pattern traction…as a lover of elegant and simple design, I’m resisting this right now.

the big wait v. many little waits

I’m not so much FOR the big wait as AGAINST the many little waits.

If a site forces you to wait at every step, it had better be porn or the equivalent. Otherwise the whole experience will be stilted.

An example.

The users want content, but you don’t know what it is yet. What you should you do?

Why not be presumptuous and GUESS? And load it in the background. Amazon makes guesses for particular users all the time…why not use the same probablistic algorithms to anticipate what users will solicit in bandwith-hogging sites?

pause/play, infinite regress

I’ve been wireframing an online mp3 player, and pondering this trivial detail: whether to use a toggle button for play/pause, or two permanent, free-standing buttons, with only their selection state being toggled.

Considerations of space militate for the first option. Why use two buttons when one will do? And the toggling nicely encapsulate the either-or logic of the button: if the player is playing, you can pause…or it is paused, you can play.

Yet I’m resisting this conclusion. Even when I had cheap Panasonic cassette player in the early 80s, the toggle button always felt awkward.

More… »

soccer stripes

My brother invited me to watch the U.S. v. Ghana this morning.

I went for his sake, knowing he is a soccer nut. (I'm a nothing nut, and can't pass for a regular dude even momentarily).

I noticed that the soccer fields where striped along the width (mowed differently in about 10 yard increments)…when I asked my brother why, he told me it helps the refs discern if a player is offsides.

Alternating stripes are helpful in comprehending grids and rows…and soccer games.

murmuring help

Writing the last post (on audio help) dislodged an old memory of a TV on PBS, one where a calm man with frizzy hair painted and murmured about his process at the same time. At the end of each show, one painting was complete.

Now it strikes me that audio help might be bettered murmured than delivered clear preemptory voice. That way, the user's attention can move alternately from the spoken word, to the act of painting, to the painting itself–or take in all at once…whatever works best in the moment.

audio help, voice

Last week I attended a projection of a Breezecast at the LA Flash factory. If you had overheard the sessions, you wouldn't have been impressed. Basically, this guy hemmed and hawed and digressed and clicked happily away as he wrote some Flex-related php code.

Strange thing is, it was the best presentation of code I'd ever seen. Both because underlying his rambling monologue was a methodical mind, and because the format was perfect: he was DOING and EXPLAINING at once.

His success got me thinking:

1) This educational technique is underused. Perhaps with the proliferation of Captivate and other screen-capture technology it might even go behind explaining program-focused curriculum (learning Photoshop). Perhaps there might be a way to create excellent videos that can be proctored (the proctor writes code or answers questions during the session). And perhaps the medium for this format would be…Flash.

2) Voice has an odd quality. It can mix with anything…music, painting, reading…it's the kind of peanut gallery that accompanies everyone's world, tracing the thoughts trying to make sense of it. So, for instance, I think voice+pics generally works better than text+pics. With voice, you don't have to GO AWAY from the thing you are learning, whether a program or a back swing or whatever (a singing lesson?).

Here is a 3d-based site, my old ad agency, that gives you verbal instruction after a nearly unforgiveable splash page.

I wish in this case that the graphics of the site itself moved more in synch with the voice (go HERE, do it LIKE THIS). As it is, voice loses its mix-in potency and becomes a kind of spoken text.

the Ugly American

This spring I went to Rome for my honeymoon (first time to Rome, first time getting married).

There I met an old acquaintance, the Ugly American…and this time, it was me!

Perhaps you’ve met him: he doesn’t bother adapting himself to the locale, he expects everyone to speak English, and when they decline, he thinks increasing his already-loud volume will smooth things over.

He surprised me in Vatican City. We went without a guide, on a lark–a bad idea, as it turned out. We were confused. For instance, in the morning, people line up outside the walled city. There are two lines, one for individuals, one for groups, but it’s not clear which is which. There are no placards, maps, concierges, etc. Inside, the same total lack of hinting holds. There is no way to know that you have go through the Sistine Chapel to get to Saint Peter’s church–unless you already know, of course.

Now, who am I to suggest that the Pope nail up placards on these marble walls? Who am I to expect that I can amble into a 15-centuries-old holy place without any guide and get my bearings?

I must be the Ugly American. I was fuming.

That experience made me re-evaluate the Ugly American. The Ugly American is presumptuous and rude, of course…but anyone truly interested in interface design is in a real sense catering to the Ugly American in all of us.

Why shouldn’t everyone just understand me? Why shouldn’t things just work? Why can’t a single person become a publishing phenomenon? Why not do your banking from the comfort of your den?

“Why not?” A rude question–and sometimes a useful one, too.

Jakob Nielsen v. Ethan

I resent Jakob Nielsen because he is always right, and that is the worst, most infuriating habit.

Take a look at his latest directive at webmonkey. Or just peruse this summary (quoted from the article) of his current complaints about web pages:

* Links that don’t change color when visited
* Breaking the back button
* Opening new browser windows
* Pop-up windows
* Design elements that look like advertisements
* Violating Web-wide conventions
* Vaporous content and empty hype
* Dense content and unscannable text

Flash designers should take these complaints especially seriously, because more than your average HTML designer, they deserve them. How often do you see Flash sites that color visited links…I mean, how hard is that? And how often is a useful back button implemented? (I’m not talking about the exotic browser-integrated “frame label” hack, I’m talking about a Flash back button that actually recalls saved states….not easy, but easier with Flash than HTML.)

So Jakob Nielsen should keep scolding. My only counter-complaint is that his complaints are too specific and HTML-oriented. I’d generalize his specific irritations: a user should be able to orient themselves, yes, God yes. That may be accomplished through back buttons and visited links…but if you have a good design, perhaps you can accomplish otherwise….and if you accomplish it very well, you don’t even have to abide strictly by “Web-wide conventions.” I mean, that’s why Flash is cool, right?

I thought about Nielsen the other day when I let my 6-year-old nephew draw using my Cintiq. I explained the presets to him ONCE and he started drawing and pressing the presets.

I wonder what will be usable for him, ten years on? I’ll bet a lot of carefully designed, Nielsen-friendly sites (meant to hang on to awkward, older users) will make him impatient–and I hope Nielsen will be around to measure this novel round of impatience.