Thursday, September 27, 2007

Special Characters in a Xcelsius Table View

by Ryan Goodman

When binding components to cells, specifically the table view component, it will inherit the cell formatting from Excel. This includes the font, color, borders, alignment, and values. Once those cells are bound there is no way to dynamically change that format during runtime. This is unfortunate, specifically for conditional color formatting and value format. In many cases users want to display some type of visual indication within a table view. There is however a way to inject special characters into a table view. If you tried this before you may know that those characters do not display by default. There is a modification to your XLF that will enable these characters to show up.

In Xcelsius, go to File>Font>and click Unicode Font Options. This will allow you to use device fonts instead of embedding the font in the SWF. By default, Xcelsius will actually embed the Verdana font in your SWF which adds about 60K to the SWF file size. By using device fonts, you will now have the opportunity to leverage special characters within a table view. You will also notice the fonts will look sharper since the Flash player will not have to render the anti-alias fonts. There is only 1 pitfall to using non-embedded fonts… an inability to render text vertically. This will affect the X axis in some of your charts when labels are long, or chart y-axis labels. Otherwise you can leverage characters like the arrows I demonstrate below.

Download Source Files

Wednesday, September 26, 2007

Flash Variables in Xcelsius

by Ryan Goodman

Within a Adobe Flash application, or in this case Xcelsius, you can bind variables that are utilized through out the application during runtime. The benefit of Flash variables within an Xcelsius generated SWF is an ability to push values into the model when embedded inside of a HTML page. In most use cases, you would want to use Flash Variables to push global session variables that you may want to consume and re-use. Examples include: Session tokens, user IDs, and parameters passed from other embedded scripts or controls.

First we will define a variable within Xcelsius.

  1. Once Xcelsius is loaded, go to File>Export Settings.
  2. Click on the “Define Variables” button. In this case, I named my value sessionID.
  3. Define your variable name and bind it to a cell
  4. Generate your SWF.
    Now your SWF file is configured to consume a Flash variable

There are two ways to push the variable into the SWF.

  1. The Adobe Flash player enables a SWF to consume data directly from the HTML for which it is loaded. In a scenario where you are dynamically generating your HTML page, you can pass variables into the SWF on load. You can also use Javascript to dynamically change the variables during runtime, enabling other HTML embedded controls to pass data into the SWF without reloading the HTML page. An HTML nested flash variable would look something like this within an OBJECT tag:




2. The Adobe Flash player also enables a SWF to consume data directly from defined parameters within a browser or path for which it is loaded. This works great for passing parameters from one SWF to another if they are loaded on separate HTML pages.

You can try the example below by entering a value, then launching another HMTL page where we consume the variable. You will be launching a URL that looks something like this:
http://ryangoodman.net/blog/flashvar.swf?sessionID=test


Friday, September 7, 2007

Planning for a Successful Dashboard Project

Over the years I have seen a many dashboard projects succeed, but some have failed for many different reasons. We learn the most from things that do not succeed because it is only then that the appropriate time and energy is truly expended to understand what was accomplished and what went wrong.

Starting on the right foot
There is no perfect formula for an optimal design that will work 100% of the time for all cases because requirements are always a moving target that revolves around delivering and meeting expectations of users who may not know themselves exactly what they want to accomplish. With that said, there are a few commonalities for the user experience that have helped propel me down a successful path:

  • Create a user interface paradigm that is easy to grasp
  • Provide enough visual direction to how the end user will navigate the application:
    This is achieved through effective layout design and positioning of elements on the screen. If it is not evident how the application should be used by an end user, you need to re-evaluate your design.
  • Present information in an order of magnitude creating an intuitive workflow
  • Be prepared to be flexible and committed to evolving the application even after deployment
  • Avoid scope creep by starting with a simple deliverable in a phased approac
  • Use technology for the UI that lends itself to minimal screen refresh and loading time.

Measuring Success
The measurement of success can vary, but at the end of the day, it is user adoption that will drive other success measures like ROI. You can build the perfect dashboard or application, but if it is not adopted for what ever reason, your project is a failure. The user experience design itself is one of several elements that could impact the user adoption rate. There are other contributing factors to any dashboard application’s success that are just as important as the visual interface itself. The coolest and sexiest dashboard won’t save you if you have any major problems with the following.

  • Communication breakdown between end user stakeholders, IT, and designer
  • Data quality
  • Query response time
  • Stability
  • Security

Securing the Necessary Skill Sets
There is several skill sets required to create a compelling, useful, and easy to use dashboard. At the end of the day, a dashboard should connect business information and present it in a medium that enables an end user to drive action. To date I have never worked on a dashboard project where less than 2 individuals were needed because of the business, technical, and design expertise required. A dashboard project should be a collaborative process combining business performance measurements, data access, and visual presentation. If you can’t assemble a group to collectively execute on of all of these points, or have a significant weakness in any area, you could be putting your project at risk. You will need to secure resources who:

  • Understand the business process, strategy, problems, and end users needs
  • Define and prioritize performance measures and metrics aligned to the business
  • Know the IT infrastructure and location of required data to populate the dashboard
  • Have technical competency to collect aggregate and provide data to data visualization
  • Have experience in information design and visual design

Please feel free to share your experiences.