08.12.2009 / A Thrilling Experience

Today was a momentous occasion.  After eating at Panda Express for lunch, my fortune cookie foretold that a thrilling experience was in my near future.  And oh was it so true!  On the drive back to work my ‘95 Subaru hit 100,000 miles.  Twas such a thrilling experience that we pulled over to celebrate and capture the moment forever:

odometer


08.01.2009 / Cash for Clunkers - It’s working!

As you may have heard in the news, the Cash for Clunkers program ran out of money after four days of operation.  Yes, four days.  It was supposed to run for four months. To ensure that clunker-owners don’t fret about not getting free money after trading in their old car, the House of Representatives approved a $2 billion infusion into the program to keep it financed.

First of all, if I were the one responsible for coming up with the funding estimates for such an initiative I would be absolutely embarrassed right now. Financing ran out in 1/30th the time it needed to last. Really? 1/30th? Really. Continue reading »


07.03.2009 / Rain SVG

Businesses win customers when they deliver what customers want. Customers get what they want when they can customize products to their own preferences. At Rain, where I work, we recognize the profit potential that clients can achieve with this concept and have created many applications allowing users to design their own products. How do we do it? Let’s talk SVG.

Suppose we create a simple product designer containing a single rectangle. The user can rotate, scale, position, and color the rectangle. The rectangle will then be printed in spectacular fashion on the customer’s very own poster. So, Jim hops into the application and moves the rectangle to the center of the poster, doubles its size, colors it blue, then rotates it 45 degrees. He then saves his design.

How is Jim’s design saved? That is, how is Jim’s design described in such a way that (1) he can later re-open it and continue modifying his rectangle and (2) a printing shop can print his poster at virtually any size without degrading its quality? Continue reading »


05.16.2009 / Standalone Scrollbar

Three posts in three days? Yeah, I’m that crazy.

This post is on how to set up a scrollbar that’s associated with a container, but not necessary part of (built-into) the container. For lack of a better term, it’s a standalone scrollbar. Let’s get right to it. View the sample here and right-click to view the source. Continue reading »


05.15.2009 / Image Repeater

Some things that should be super-easy and straightforward in Flex just aren’t. Repeating an image is one of those. It’s not super-difficult, but I can see how a newcomer could be easily turned off because it isn’t just a simple style like in CSS.

Every time I google for a simple component to give me image repeating functionality, I always turn up components that are overkill for my needs or have weird quirks. I realize I’m just throwing another hat into the ring here, but I decided to cook up a simple image repeater component that just has one goal in mind: repeat an image. It’s not a container or anything like that. It just repeats an image. That’s it. See it in action here and right-click for the source.


05.14.2009 / TileList Padding and Grid Lines

As you might know, designers can come up with some pretty funky ideas that don’t always match up with the default functionality of the framework you’re using. The pro is that your app turns out fresh and unique. The bad is that you’re the one that has to make it work. Of course, that also might be why you have a job.

Recently I received a comp from a designer that looked more or less like this:

Grid TileList Continue reading »


04.29.2009 / Nimbus - Macro Commands

In my recent intro to Nimbus, I mentioned that one of the features of Nimbus is macro commands. In complex applications, macro commands can be a huge time saver and allow you to have a lot of control over handling a group of service calls with minimal code.

Two types of macro commands exist. The first is a SequenceCommand. This means its subcommands will be executed sequentially. In other words, the second subcommand won’t begin executing until the first subcommand has finished executing. The SequenceCommand won’t be considered complete until the last subcommand has finished executing.

The other type of macro command is a ParallelCommand. As you may have guessed, this means its subcommands will be executed in parallel. In other words, the first command and second command will execute at the same time. The ParallelCommand won’t be considered complete until all subcommands have finished executing.

Just as the synergy of the Planeteers can work miracles, so can the synergy of the SequenceCommand and ParallelCommand. Nesting macro commands can give some enhanced control as we’ll see here: Continue reading »


04.25.2009 / Nimbus - MVC Framework Intro

For those who don’t know, Nimbus is a Flex MVC framework (or micro-architecture for the technically-inclined). Sponsored by Rain, we develop it primarily for use on our applications but make it available for public use and encourage the community to contribute.

Nimbus pulls core concepts from Cairngorm but is meant to cut out a lot of the plumbing developers groan about when they hear “Cairngorm.” It’s light, but it’s not fluffy. Baked in are those rare and tasty flavor morsels you thought only existed in those Funfetti cupcakes your grandmother bakes with love on your birthday. Continue reading »


04.14.2009 / Loading a Remote Style SWF

This post has been replaced by Loading a Remote Module into a Local App. Enjoy!


03.30.2009 / I Don’t Have Time

Whether it’s at work, church, or home, I’ve seen far too many times where the phrase “I don’t have time” has led to misunderstandings and/or arguments. Why? Because it means something different to each person.

Let me illustrate. Picture in your mind a man in his mid-thirties sitting on a couch watching the boob tube while licking his fingers clean of Cheeto residue. What if he said he didn’t have time? Would you agree? Seriously, go ahead and answer. Continue reading »