Ted Patrick > Flex Evangelist > Adobe Systems


IconEngine support for V1 and V2

I have been working to integrate IconEngine to be compatible with V1 and V2 components, here is an update on my progress.\0

Below is the iconEngine integrated into V2 components, button, menu, list, accordion, datagrid.



The requirements for the implementation are as follows:

1. No additional library assets other than the V2 components, pure ASCII.
2. Icon usage is done via documented component methods without modification.
3. No edits to any Macromedia code (EULA compatible).
4. Forward compatible with support for V3 and FLEX components.

If you see any problems in the rendered swf, please let me know in the comments. Assuming compatibility testing goes well, version 1.3 of the IconEngine should be right around the corner.

Much to come.

Cheers,

Ted ;)

OT : No Power in Kingston, Jamaica

In third world light, we encounter the occasional power outage. This one started at 9:20AM and lasted to 5:15PM.\0

The power goes out in Jamaica with regularity. Typically the outages last about 3 minutes, so today I decided to wait it out. 2 hours later, I called my wife and arranged a long afternoon lunch. Leaving the house, I assumed the power would be back on when I returned. I only really got worried when on my way to lunch, I passed a large JPS (Jamaica Power Service) repair truck driving slow. 4 JPS workers were on the back of this firetruck sized vehicle, all of them staring at the power lines as the truck drove 2-5 MPH. The troublesome part is that 2 of the workers were smoking spliffs during their search for the broken spot. I instantly knew that this would be an all day affair, if not longer.

During my stay in Jamaica, my patience has improved 1000%. There is nothing more grounding than being told "Soon Come" when you ask how long something is going to take. In Jamaica, "Soon Come" can mean a few minutes, a few hours, or never, it is all in the way it is said.

I can't wait to move back to Washington DC in July!

A big thanks to Apple Computer, my ipod batteries lasted the entire day!

Cheers,

ted ;)

Debugging Central Applications

You can use the Central Debug Panel SWF outside of the Flash IDE making a perfect standalone debugger.\0

The debug panel swf works perfectly in the standalone player and allows you to see trace commands without swiching apps. Simply copy this swf file and make a standalone player using File>Create Projector from the standalone player.

Mine was located here:

C:\Documents and Settings\Administrator\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\WindowSWF\Central Debug Panel.swf

Perfecto! 1000% better!

This should be a Central application!

cheers,

ted ;)

Working with the Central installer/updater is confusing, yet it is critical to successful deployment of your application.\0

Key concepts and problem areas for installing and updating Central applications:
-----------------------------
1. Central applications are deployed to a URL with a domain name. The URL cannot run on your local machine or on a local web server "localhost". Central apps are installed locally based on the domain name as the root of the file system.

2. The Central Installer/Updater works only with the product.xml file. If you change files on the web server but not update the product.xml, Central will NOT know files have been updated. The only users that receive these updates will be on new installations of the application.

If product.xml is not modified, Central will not update. (See 5 for specifics on version property of product.xml)

3. I have encountered problems with relative path urls within the product.xml file. As such I use the full URL path within the product.xml file. Central documentation clearly says otherwise (this is used within the sample apps in the SDK), but I tend to do what works in practice. Call me crazy!

4. I version all files by filename within the product.xml. This makes updates work perfectly. Here is a sample:

http://www.powersdk.com/icon/explorer/product.xml

Note that each swf file for apps or pods are always named per version. If I am working with version 1.2, the application src will denote a file "main12.swf". This avoids caching errors and makes absolutely sure my updates take when an update occurs.

5. For Central to update a deployed application, the following values must be modified by a full .1 in value. Changing versions by .001 or .03 will not force Central to update anything. These values are essential in the product.xml file as follows:

product.version
product.application.version

6. DO NOT EDIT THE INSTALLER BADGE!!! Just drop the badge swf file(s) adjacent to the product.xml and this will create a perfect installer. This also allows you to share this installer URL so your application will install from other sites for marketing/promotion purposes. This is the logic behind using absolute paths in product.xml as in certain cross domain installations, relative path urls will fail. ;(

http://www.powersdk.com/icon/explorer/installer.swf

The badge dynamically imports the product.xml file and loads the icon and text content automatically regardless of where you call the application.

7. Every application deserves its own directory. I also recommend adding a index.html file so just the path will provide access to the installer.

http://www.powersdk.com/icon/explorer/

8. The product id inside of product.xml defines the application licensing. Sample applications ship with a common product id and thus when Central attempts to install one, it will overwrite the other application for licensing reasons. This product id is the same in the Central SDK sample applications:

CND100-062234-167221-651442

This is ok to use for development, but when you go to deploy these product ids will cause problems if they are not changed.

9. Within your swf make sure that this actionScript executes only 1 time:

Central.initApplication(this, this)

This code initializes your Central Application. When it doesn't execute, Central will not execute onActivate and you will thus not receive argument references to the shell and other good stuff.

10. For your first application, upload a sample app to a URL. Install the application within Central. Navigate to the locally installed path inside of the Central path, this is typically:

C:/Documents and Settings/{UserAccount}/Application Data/Macromedia/Central/#Central/{RANDOMKEY}/{domain}/{path}/{files}

I am not sure of the local install path on Mac.

//UPDATE

Mac path is as follows:

{Hard Drive}/Users/{USERNAME}/Library/Application Support/Macromedia/Central/{domain}/{path}/{files}

Special thanks to Sean Voisen for the Mac path info.

//UPDATE



Once you locate the installation directory, if you modify any of these files and simply restart Central, your application will change. This is a great way to develop as you can do iterative build and test locally without posting anything to a web server. This has saved me hours of hassle, time, and frustration.

11. THE SAMPLE APPS ALL NEED TO BE COMPILED!!! None of the Central apps are compiled in the Central SDK and for first timers this can be overwhelming and exhaustive. Here is the HelloWorld Sample app for review. This version has been modified to make deployment easier. I flattened the file system on the example to make it easier to understand. Also the badge and badge html is included in the example. Just post compiled.zip a valid domain name and call the URL, successful install!

Compiled HelloWorld Application(Only deployment Files)
Source HelloWorld Application(All Files)
Install HelloWorld in Central

This alone might explain developer frustration in getting first applications working. This isn't rocket surgery, lets keep things simple. ;)

12. I have also encountered problems with Central debug panel installed in MX2004Pro. On many occasions, the trace events simply do not occur at all and monitoring a Central application within FlashMXPro is frustrating switching between apps.

13. The icon tag in product.xml must be listed within the product.icon and application.icon otherwise it will fail to install locally in the badge, Central Installer dialog, and the application icon in the toolbar. The HelloWorld app in the Central SDK contains this error and the icon will not load for the product. This has been corrected in the version above.

----------------------

At first glance all these gotcha items seem overwhelming, but don't let that stop you from working with Central. Once you get your first application installed, you will discover just how simple Central is to work with.

Take the plunge and deploy your first Central app today. Central simply rocks! ;)

Cheers,

ted ;)

Icon Explorer 1.2 and Icon Engine 1.2 Released

I have updated the Icon Engine and added format changes to Icon Explorer 1.2. \0

Version 1.2 Changes:
1. Icon Format supports unlimited colors
2. Icons Format supports a header (name, created, copyright, x,y)
3. Icons Format supports positioning via x, y header properties

The format design changes made the engine simpler and thus much faster at runtime. In basic testing the performance improved about 30% on average. In additon the format changes make format conversion easy, including ICO, MAC Icons, GIF, PNG, JPEG. Also the changes allow for icons to carry header information inside the icon format. Icon Format 1.1 is not compatible with Icon Engine 1.2 but it is easy to convert with a text editor or Icon Explorer.

Here is an example of the pixel shifting with cursors via the icon header x, y. Notice the cursor snaps to a pre-defined location on the pointer not the (0,0) coordinate:

source code

You can also easily override the default header setting by passing a coordinate during drawIcon:

//draw an icon and shift it horizontally -10 and vertically -12
_level0.myIcon.drawIcon(icon,-10,-12)

Icon Explorer Central Installer


Special thanks to Mario Klingemann for helping with the format. Thanks Mario! ;)

Cheers,

ted ;)

Icon Engine 1.02 Proposed Changes

Having working with the Icon Engine and Icon Format all week, I am seeing areas for improvement. Here are the proposed changes for version 1.02 of the format and engine.\0

Proposed changes to Icon Engine:

1. Change CLUT limit from 26 colors to unlimited color values.
2. Improve performance and simplify engine design.
3. Add Header to support Meta Data within Icons like Author, Created, Modified, Copyright, Company.

The biggest of these is the CLUT changes as these imply moving from the Alpha mapping to a numeric mapping. We are also looking to add a delimiters to the pixel Block values to speed processing and enable future format additions in a structured manner. The key weakness in the format is runtime processing, anything we can do to make the Icon Engine faster is worth the time and effort. Ideally, Icons of various sizes should be easy to render and burden the player minimally. The shift from Alpha to numeric color values makes processing much faster as colors are referenced directly vs calculated from an Alpha value.

The header addition is also very important as it allows metadata to be added into the icon. This is especially true in regard to copyrights and author credits. This will also make the icons portable allowing IconExplorer, Icon Professional or other Icons IDEs or tools to read and display this critical information.

Special thanks to Mario Klingemann for so eloquently voicing his issues with the format. I am especially encouraged that many in the Flash community are embracing the format. I am hopeful that we can establish an open standard for icons for the Flash platform.

Please voice your concerns about the format changes in the comments here. Icon Engine will formally moved to version 1.02 next week along with a new release of Icon explorer and the included icons. I will also be releasing a free tool to convert your icons from 1.01 to 1.02 and add header information.

Cheers,

ted ;)

Icons can be cursors too!

I just added 10 new cursors to Icon Explorer.\0

These cursors are drawn using the Icon Engine and the Icon File Format. Feel free to use these cursors in your next project. Also take a careful look at the drop-shadow cursors, they use alpha transparency for the cursor shadow allowing you to see color through them.



Cursor Source Code



Cheers,

ted ;)

Pixel Fortune Cookie

Here is a Pixel fortune cookie using the Flash Drawing API. Sure beats a pixel taco!\0




The source for these icons is available within Icon Explorer along with several others. I am making an effort to get 1-2 icons a day completed outside of Icon Pro development. Actually this is part of development as I need icons to be able to develop the IDE with editing, loading, saving, sharing. I am also working with WebSupergoo Image tools to port the Icon Format to other image formats in a generic way. From your online icon account, you will be able to share icons and download them in several formats. Plus the drawing tools make icon development 500% faster than with Icon Explorer not to mention, undo/redo, save, load and share.



cheers,

ted ;)

As Icons are ASCII, they can be passed as parameters in HTML. One generic swf player, many icons and buttons.\0

The player (swf) is passed drawing instructions and layout parameters to render icons/buttons in your HTML. Simply add the free player(swf) to your site and go make some icons.

Pac-Mac Characters Property of Namco Corporation

Sample Icon Layout

Player Source & Samples

The player accepts the following parameters via FlashVars:

icon: icon ASCII text
align: how to align the icon within the player bounds.
TL - Top-Left (default)
TC - Top-Center
TR - Top-Right
CL - Center-Left
CC - Center-Center
CR - Center-Right
BL - Bottom-Left
BC - Bottom-Center
BR - Bottom-Right
x: move icon x pixels
y: move icon y pixels
url: make the icon clickable with a URL link (Activates hand cursor)
target: target a browser window
scale: percentage scale of icon (default = 100, 200 = 200% of original, 50 = 50% of original)

Hopefully you will find it useful, especially since you don't need to open Flash to make this work.



Cheers,

Ted ;)

Pixel Taco anyone?

Here is pixel taco drawn using the Flash Player drawing API. Too fun!\0

TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">

Pixel Taco Source

Authored with:


Cheers,
ted ;)

Central's Value

Having written my 5th Central app yesterday, I am feeling a bit more enlightened about Central's value.\0

I guess until you write an application, it is hard to see value in Central. I struggled with this on the Central Beta but I now think I get it. Central is about deployment, Central is a platform.

Prior to Central there was no way to seamlessly install and update a local cross-platform application from the Internet especially in a Try/Buy format. Not to mention Pods, Notices, Auto-Update, Content Caching, Web Services, RegEx and an excellent set of UI components. Central is a platform in a platform(MAC/PC) that allows software to be written, deployed, and licensed in a common format via the Internet.

So what does it cost to develop Central applications, not a dime if you own Flash! Only when you deploy commercial apps are fees involved and fees for Try/Buy apps are taken from profits, not out of pocket. As far as Try/Buy licensing, many have struggled with the 80/20 profit split but the fact remains 80% is 100% more than I was receiving yesterday from software licensing. If you then consider the value of cross-platform, install/update, and wide deployment/compatibility (Flash), the odds of a successful release are much higher and are limited to your creativity. From my perspective the balance seems to favor the application developer.

Central == Deployment Technology == Platform in a Platform

Now go write a killer app with Central and actually get paid for your hard work!

Cheers,

Ted ;)

Icon Explorer is a Free Central application to explore the Icon File Format and the Icon Engine. Both are Open Source under a BSD license.\0

Icon Explorer explains the details of the ASCII Icon File Format and lets you build icons in real time. All of the loaded icons within Icon Explorer are editable in real time within the application.

1. Install Icon Explorer
2. Select an icon from the list.
3. Select Design View or Source View.
4. Edit the format and the icons change in real time.

Icons produced with this tool are usable in all parts of the Flash Player. Simply add the IconEngine.as to your application and you can render icons to any MovieClip within the player as follows:

#include "IconEngine.as"
_level0.createEmptyMovieClip('myCursor',1)
myCursor.drawIcon('0xFF0000,06|A<05|A3<04|A5<03|A7<02|A9<01|A11<A13<*5<*4<*3<*2<*1<*0')

Personally, I think it is much better than messing with the Library or with the GIF/JPEG file importers. On a prior project, we put placeholder icons in our application during development and when art was complete, the icons and cursors were swaped. As icons are ASCII text, they are very easy to manipulate even at runtime!

The Icon format contains a color look-up table or CLUT. The CLUT maps colors to a pixelmap that defines the drawing. Since the two are separate, you can modify icon colors without disturbing the pixel map. This provides great compression are colors are defined once and used many times within the pixelmap.








Hopefully Icon Explorer will peak your interest about the Icon Format and Icon Engine. I will be updating the application as the Icon Engine or Format is modified. The format will be backward compatible at all times so icons assets remain usable from project to project.

I will be posting additional cursors and icons within Icon Explorer today for review. Simply reload the application while online and Icon Explorer will update.

Also I want to get some user feedback on the application. We initially had some problems with the Central API as the application was not initializing within Central. I updated the release and everything is working great.

Cheers,

Ted ;)

Icon Explorer 1.01 Released - A Pixel Icon Editor

Build pixel perfect icons for use with Macromedia™ Flash™ and explore the Icon File Format via this free Central application.\0

Icon Explorer is provided to help you make the most of the Icon File Format and Icon Engine. The software presents the details of the ASCII Icon File Format and lets you design icons interactively.








PowerSDK Software Corp. will be releasing a commercial icon editor "Icon Professional 2004" based on the Icon File format and Icon Engine in the coming month. Icon Explorer is provided to assist you with using the Icon format within your projects. The commercial editor will provide:

Pixel based drawing tools
Online Icon Storage
Online Icon Sharing
Conversion to other icon formats
Playback support for other media (HTML, Macromedia™ Director™, Macromedia™ Flex™)

In Icon Explorer, there is a URL to icons online. If you send me pixel icons pasted from the source tab, I will post them in the Central application.

Icon HomePage

Please forward me feedback via email at mailto:ted@powersdk.com. Feedback is always welcome.

Enjoy,

Ted ;)

I added line based compression to the Icon Engine. Icon size dropped 50% to 200% depending on the design. \0

The Icon engine works like an old manual typewriter. Starting at 0,0 of the target MovieClip, a horizontal line is drawn, return (KaChing!), and then the next line is drawn, return (KaChing!). This happens again and again until the icon is complete. Icons are rendered through the drawing API top to bottom by horizontal lines. When I reviewed several icons that I had made, many horizontal lines were duplicates. I modified the Engine to support duplication of existing lines later in the icon thus reducing the size down to original lines and reference copies. In many cases, this make the Icon format more efficient that GIF or ICO, not to mention that AS compression only amplifies the effect.

To duplicate a line, simply type '*0'. Asterisk represents the copy command and 0 refers to line 0 of the icon. Lines are a 0 based array. Say I wanted to make a blue box 10x10.

Old Format (old format is still supported!):
//ColorA,line1<line2<line3<line4<line5<line6<line7<line8<line9<line10
0x0000FF,A10<A10<A10<A10<A10<A10<A10<A10<A10<A10

New Format:
//ColorA,line1<copy1<copy1<copy1<copy1<copy1<copy1<copy1<copy1<copy1
0x0000FF,A10<*0<*0<*0<*0<*0<*0<*0<*0<*0

Although it doesn't provide much compression in this example. More complex line designs will compress well.

The new 1.01 version of the Icon Engine is available here:

Current Version 1.01
Version 1.00
Version 1.01

Updated Examples

New Plus Icon:










More to come...

Cheers,

ted ;)

Pixel icons in VectorLand. Why?

Why would you render pixels in a vector based format? Crisp pixel perfect icons and cursors!\0

I got this question allot yesterday and it makes sense. Who, of sound mind, would make a pixel format for a vector based medium. It seems weird at first but the benefits are manyfold.

1. Crisp pixel perfect icons!
2. Making pixel icons within the Flash IDE is tedious work. The drawing tools are vector oriented not raster oriented and thus are not designed for the task.
3. Using attachMovie with Library assets is limiting. You cannot use attachmovie across loaded swf files without duplicate library assets. A string format can easily be written cross swf at runtime regardless of movieClip location or url. One set of Icons, many uses in all parts of the Flash Player.
4. Simple to render and re-render. Icons clear the drawing API of the target before writing, thus icons can be overwritten to provide state. Overwriting Icons is easy and avoids dealing with factors like MovieClip depth and attachMovie.
5. Compatible with Flash Player 6 or higher. Icons in this format are deployable today.
6. They make your projects look 100% more professional and much more application like.
7. You can load icons at runtime allowing visual elements to be globally changed on demand.
8. Pixel art provides an aesthetic feel that is tough to achieve with vector based tools.
9. Fun!

I am putting together a white paper on the file format. I will post this on Monday along with Free Icon Editor. ;)

http://www.powersdk.com/icon/

Cheers,

Ted ;)

Creating, sharing, reusing, pixel icons in Flash is difficult. As a pixel icon fanatic, I hope to change that!\0

Since the early days of Mac, icons have defined software. Although things have changed, icons remain critically important within all major software products. Icons and cursors provide visual feedback to the end user and can dramatically improve or erode both usability and perceived quality.

On a recent project, I wrote an ASCII file format and engine for using pixel icons in Flash. The icon file format is rendered through an engine (function) allowing you to draw icons and cursors on any MovieClip within the Flash Player.

Here is an example:

_level0.test0.drawIcon('0x000000,A20')
//draws a 20 pixel line in black.
//icon = 56 Bytes, Engine=606 Bytes










_level0.test1.drawIcon('0x0000FF,A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20<A20')
//draws a blue box.
//icon = 67 Bytes, Engine=606 Bytes










_level0.test2.drawIcon('0x000000|40,A20<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A<09|A')
//draws a T in black with 40% alpha.
//icon = 71 Bytes, Engine=606 Bytes










_level0.test3.drawIcon('0xFF0000,06|A<05|A3<04|A5<03|A7<02|A9<01|A11<A13<01|A11<02|A9<03|A7<04|A5<05|A3<06|A')
//draws a diamond red with 40% alpha.
//icon = 112 Bytes, Engine=606 Bytes










_level0.test4.drawIcon('0x000000,0xFFFF66,0x808000,07|A4<06|A|04|A|0|A<012|A2<0|A3|07|A3<A|B3|A6<A|B8|A<A|B8|A<A|B4|A9<A|B3|A|C8|A<A|B2|A|C8|A<A|B|A|C8|A<A2|C8|A<A10')
//draws a 3 color open icon
//icon = 135 Bytes, Engine=606 Bytes









*Although these samples are simple, the format is very deep and supports most any icon you can think of.

As the file format is ASCII text, Icons are easy to change and easy to share cross projects. The format is especially easy to use within V1 and V2 components. If stored as a variable within a project, the icons can be updated later in development or imported dynamically from a file or database.

The Icon File format and engine supports the following features:

1. Full RGB color palette supporting alpha transparency
2. Compression using block writing and line wrapping
3. CLUT processing (Color Look-Up Table) allowing for color changes without editing the pixel map
4. Optimized drawing instructions reduce number of steps to render an icon
5. Dimensionless format with no width or height specified. Rendered icons can be manipulated like MovieClips using _x, _y, _xscale, _yscale, _rotation, etc..
5. Supported in Flash Player 6 or higher
6. Engine == 606 Bytes total added file size

The Icon file format and engine are released under an Open Source BSD License. The license allows the software to be included in commercial products without restriction.

Below are some samples for review. I would really appreciate your feedback on the format. Feel free to use the engine and the included icons in your own projects.

Icon Home
Icon Engine and Examples (ZIP)
Icon Engine ActionScript








Icon Professional 2004 is a commercial Pixel Icon editor that will ship in February. The application is a commercial Central application with a 30 day trial. The software lets you create icons and share them online. Below is a link to an alpha preview of the editor that will install within Central. This version of the editor lacks Save, Open, Share functionality and is intended for review only, as such it is licensed as free Central application. This will let you review the drawing tools and better understand what is possible with the format and editor in combination. The editor itself uses the icon engine for rendering all icons, cursors, and tool selections.

I would truly appreciate any feedback you could provide on the editor, the icon format, and icon engine. I hope you enjoy using the tools as much as I enjoyed making them.

Cheers,

Ted ;)

The JabberD 2.0s1 Server is patched in the current CVS distribution resolving this error. Thanks to the Jabber team for addressing this issue so quickly especially in regard to Flash compatibility.

Cheers,

Ted ;)

JabberD 2.0 Server Error within <flash:stream> Protocol

There is an error in the 2.0+ jabberd server release for support for protocol (Flash support). The error will disconnect the flash client unexpectedly during high message loading or low bandwidth conditions. This error may extend to certain other XMLSocket servers also. \0

XMLSocket object within the Flash Player is a light API for accessing a raw socket on the client machine. When you send data to mysocket.send('send this'), the data is pushed into the socket and is delimited with a null byte. During heavy use or low bandwidth conditions, Flash buffers the messages pushed through the socket if the socket is sending a message. Depending on the server-side socket implementation, the server may receive a block of messages or each individual message. Within Jabberd, if the server receives a block of messages under adverse network conditions, the server will fail to parse out the null delimiter thus crashing the XML parser leading to a disconnected Flash client. The problem is made worse in that JabberD log files display a null byte as space character in ASCII so they are very easy to miss.

What you will see happen from the client is that Jabber will pass an invalid XML error message then close the connection by sending a
closing tag. In most cases, I thought I had made a protocol error, but that was not the case as the same XML packets would work sometimes and fail other times. This error is also frequently seen with short messages like <presence/>.

You send this:
mysocket.send('<presense/>')
mysocket.send('<iq/>')

The server sees this:
<presense/>\0<iq/>

\0 if not removed will cause the server to disconnect the Flash client.

Not fun. :(

I have send emails to the JabberD team and the error has been confirmed. When I find out about a patch I will post the info. This is most likely the main reason we have seen so few successful Flash Jabber projects. Hopefully this will change things as JabberD simply rocks as a server!

Cheers,

Ted ;)

I am working with a client on a consulting project and we are looking for a solution to a troubling problem. We are using Flash as the GUI for a hardware device. The device is controlled via a C Application communication with Flash via XMLSocket allowing Flash to display feedback and control the device via a simple UI. All software executes on a single machine without a network.

During certain procedures the Flash Standalone Player will not release CPU after XMLSocket execution and tends to accumulate resources without restriction. We need to restrict CPU utilization and memory consumption at the player level to allow the C application resources to execute without contention.

In tests, the CPU utilization seems to be coupled with the parsing of XML and memory tied to XML / XMLNode objects not being garbage collected after 'delete'. The player simply refuses to release resources after parsing XML. Even in the simplest non-GUI (no movieClips/components) examples the player will accumulate large amounts of memory and CPU during parsing XML. Worse still the CPU is not returned to the machine after parsing is complete. CPU and memory release occur at random and is not predicable or controllable in Actionscript or within the player itself.

Ideally in ActionScript we will optimize to avoid the CPU spikes and memory consumption and in combination implement a resource ceiling at the player level. Ideally this will lower the hardware requirements of the production device and allow for much better system performance.

We will be porting the application to a Unix variant so all changes must work on WIN and Linux compatible standalone players.

1. Restrict Flash Standalone Player CPU utilization
2. Restrict Flash Standalone Player Memory consumption
3. Restrict resources in a portable manner usable on Linux and Windows

If anyone has encountered a similar problem or solution, please do not hesitate to contact me directly onlist of offlist.

As always, thanks in advance. ;)

Ted ;)

I got an IPod for Christmas and simply love the UI. What I find interesting is the use of persistence in the menu. \0

The IPod UI is a tree with forms/feedback placed at the leafs of the tree. The thing that makes this wildly different is that the tree and the controls are persistent providing the application an intelligent feel that is lacking in similar products. Essentially if you navigate down the tree, the tree is marked with your selection at each node, if you navigate to another node, then return to a original node, the default selected item is your last default selection. Here is an example:

I navigated to:

Navigate to / Browse / Artists / Phish / All
Press Play on "Bouncing around the Room" //clearly a solid choice! ;)
Press Menu *5 to return to /
Navigate to / Extra / Clock
//here is where it gets interesting...

When I navigate back to / Browse the menu defaults to Artists (not so cool being the first item) but selecting Artists, the selection then defaults to Phish. Actually at each node in the tree each level persists the last selection. Even cooler is the fact that if I turn the IPod off and turn it back on, the GUI returns to the exact state including tree persistence.

This makes the IPod 1000 times more usable as I have fewer decisions to make as prior decisions are by default selected. Clearly someone at Apple should be applauded for the design. For a product that I am using more and more, the IPod seems to mold to my habits as if by magic. Less think, more music!

GUI persistence matters!

Cheers,

ted ;)



Jobs


Flex Jobs
city, state, zip


© 2008 Ted On Flex