February 03, 2009
Special Olympics Needs Your Help

The 2009 Special Olympics needs your help. In just a few days, athletes from all over the world will compete in winter games in Boise Idaho.
This event is unique not only for the special people participating, but also because it is larger than the Olympics for us, so-called, "normal" people. That's right. The Special Olympics is a LARGER event.
Did you know it was happening? Not a single television or print ad has been seen. NBC, "proud sponsor of the Olympics" isn't even going to cover it!
Sadly, these athletes have to compete under sub-par conditions. They need $1 Million dollars. To-date, they have just over $14,500 raised! That's right, only 1.45% of the goal - and they need this in 4 days from today.
Millions of dollars have been spent on advertising alone at the Super Bowl. But not one of these multi-million dollar pros can give some money to help the Special Olympics?
This is where you can come in and be a star. Support the Special Olympics by clicking on the Donate button on the home page:
Thanks for your time and support.
Posted by pent at 04:03 PM | Comments (0)
January 29, 2009
Adobe AIR passes 100 Million Installs
Adobe has just announced that the AIR platform has passed 100 Million installs. You can read more about this on the Adobe AIR Blog.
In addition, Flash Player 10 has been installed on 55% of computers worldwide.
The article describes how these numbers were determined.
Posted by pent at 09:35 AM
November 17, 2008
Adobe AIR 1.5 Announced at MAX 2008
Adobe has announced the availability of Adobe AIR 1.5. The new version of AIR also includes all of the capabilities of Flash Player 10.
More details can be found on the Adobe AIR Blog
Posted by pent at 04:31 PM | Comments (2)
November 11, 2008
Genesis at MAX 2008
If you planning to be at MAX, make sure you head to the Genesis session. As you may know, I'm part of the team working on Genesis.
Follow this link to learn more about Genesis:
The presentation will be given by Matthias Zeller who will introduce Genesis and explain its purpose and capabilities.
Posted by pent at 08:58 AM | Comments (5)
October 30, 2008
MAX North America
It's only a couple of weeks away - Adobe MAX North America.
Nov 16 - 19, 2008, in San Francisco, CA.
With over 4,000 registered attendees, you can't miss this opportunity to connect with others and share your experiences. MAX gives you the chance to learn about Adobe products and gain insight into what's coming down the road from Adobe and other leading-edge web, application, and service companies.
MAX is probably the best investment you can make to get the most out of your Adobe products.
Check out the MAX site at http://max.adobe.com.
Posted by pent at 09:47 AM | Comments (0)
August 30, 2008
A month of iPhone
I've had my iPhone for about a month now, so I thought I'd chime in with the rest of the iPhone reviews flooding cyberspace.
I've been reading about the various problems people have been having and I've got to say that I haven't experienced these problems yet. I have been updating the software when the updates become available, so perhaps that's been keeping me clear of the issues.
I live in an area that gets excellent 3G coverage. This past weekend I was in Philadelphia and the 3G coverage was also good with just a couple of exceptions. One thing I did have trouble with was the Maps application in a moving vehicle. I found that if I had my position identified when the vehicle was stopped, I could then track my progress for quite some time. If I stopped Maps and attempted to do this while moving, then Maps had trouble.
I previously had a Windows Mobile "smart" phone. The iPhone is so much better than that. The two just do not compare (so I will). The iPhone starts faster, is more responsive, has better call quality, and is so much easier to use. The Windows "smart" phone was like using an old ASCII terminal (yes, I am that old). Poorly designed with poor software, I couldn't wait to get rid of it. The thing didn't even know about daylight savings time until I downloaded a hard-to-find patch for it!
But the iPhone isn't perfect yet. It definitely needs stereo bluetooth, better battery life, and a memory expansion slot. I like the keyboard, actually, and am pretty good at typing on it. That "smart" phone had a terrible keyboard. And who thought overlaying numbers on the keyboard was a good idea? At least the iPhone can draw whatever keyboard it needs at the appropriate time.
I also dislike the earbuds it comes with. I guess I have little ears because on the plane trip they made my ears sore and kept falling out. But I did feel sorry for the woman seated next to me who kept juggling all of her equipment - I just had my iPhone for entertainment (watched a movie - perfect for an airplane) as well calling home when I arrived. I've now ordered some new earphones that come with an assortment of tips.
I love the fact that it is expandable and there are so many apps for it. I have this terrific tip calculator that is positively ingenious. I also have the Pandora app. Plus you can get apps to stream radio and podcasts.
Oh, and the very first app I downloaded was "Remote" - turning the iPhone into a remote control for iTunes. I have my Macs upstairs, but downstairs in the living room I have an Apple Airport Express plugged into the stereo. Now with the Remote application I can control iTunes from the sofa without having to run up the stairs. This app is awesome - it is so 'real time' that adjusting the volume on the phone instantly adjusts the play volume. Whoever wrote this deserves a huge bonus.
The bottom line is that I love this phone. It does everything I want and if I want something more, someone has, or will, write an app to do that, too. The iPhone 3G was definitely worth the wait, for me.
Now if Apple will just merge Apple TV with the Mac Mini...
Posted by pent at 08:47 AM | Comments (5)
July 10, 2008
(re)Genesis
I started a whole new career path in November 2004 when I joined the Flex Support team at Macromedia. In the 3+ years since, I have answered a lot (and I mean, a lot) of questions from Adobe customers. Starting on Monday, July 14 2008, I will be joining a new team on something we call Genesis.
Visit the Genesis Blog at http://blogs.adobe.com/mashup.
You can read more about Genesis in this article at IT World: Adobe readying new mashup tool for business users.
I have enjoyed working for the best managers (Eric Anderson, Jim Schley, and Judy Ricciarelli) and with the best teammates (Woojin Choi, Kurt Mossman, Lin Lin, Brandon Purcell, Kyle Quevillon, Patrick Simon, Nick Watson, Peter Watson, John Zhao). Customer support is a team effort and I think the Flex Support team has proven that with the best-in-the business product support.
My new adventure with the Genesis group turns me back into a developer working on an exciting product sure to find a home in any coporation. Everyone needs a change of pace now and again and I'm delighted to be able to stay with Adobe and work with the best people in the business. I just hope I'm up for the challenge.
I'm still going to keep blogging and making Flex and AIR more accessible. Stay tuned for more articles.
Posted by pent at 08:23 AM
July 02, 2008
Adobe Reader 9 is Here!
Adobe Reader 9 adds new capabilities, better performance and stronger security. Here are the highlights:
Improved launch speeds
Looking for faster launch speeds? Adobe has enhanced general performance and, in particular, has reduced launch times with Adobe Reader 9. Try it: You'll notice the difference.
PDF Portfolios
Packages, introduced in Adobe Reader 8, have been greatly enhanced and renamed. Portfolios provide easy navigation when you work with multiple PDF documents and other document types. They also enable you to work with a collection of materials such as drawings, e-mail messages, spreadsheets, and videos as a single file, which makes distribution, storage, retrieval, and collaboration easy for end users.
Native Adobe Flash support
Adobe Reader 9 can natively display rich media content, which you'll notice immediately with Portfolios. Interested in viewing SWF and FLV files? Adobe Reader 9 is the answer.
Acrobat.com (beta)
In addition, Adobe Reader 9 includes easy access to Acrobat.com (beta), an exciting new set of online services from Adobe. With Acrobat.com, you can create PDF files online; create and coauthor documents with others; host live web meetings; upload and share PDF files and other types of documents and control who has access to them; and even embed a rich, interactive preview of your document in a web page. All of these services and more are provided online, so you can access them from anywhere. And you'll find easy access points from within Reader 9. As an added convenience, Acrobat.com leverages Adobe AIR, so you can interact with Acrobat.com from your desktop. Acrobat.com on Adobe AIR is a small application that is included with your download of Adobe Reader 9. Available in select languages.
Security enhancements
Adobe Reader 9 provides new digital signature functionality for an improved user experience. The new version also adds support for 256-bit AES encryption and new advanced security capabilities.
But, that's not all. Adobe Reader 9 offers a new PDF Standards Pane, improved CAD and geospatial functionality and accessibility enhancements.
So, download Adobe Reader 9 now! Or, distribute Adobe Reader 9 in your enterprise or bundle it with a CD or computer!
Posted by pent at 09:51 AM
June 25, 2008
MAX North America Site is Up
Please visit the MAX NA Experience site:
http://max.adobe.com/na/experience/
It is a 100% Flash based website with interactive landscapes (click the background). The backgrounds were created by several of the best digital design agencies on the planet. If you can figure out the puzzles, you discover who built them.
After the site launches, click on the background. When it appears, click again. There are three backgrounds - the one in the middle, one to the right, and a very cool tropical one to the left.
Posted by pent at 10:21 AM
June 17, 2008
itemEditors - Part 3
The previous article in this series discussed item editing events. Using events can make your application respond to what the user enters and help the user make fewer mistakes.
This article is about using itemRenderers as itemEditors - one class to do both display data and edit the data. I tend to think of it more as an itemEditor used as an itemRenderer. But that's just me.
Download source for these examples.
Further, I have to be honest and say I am not a big fan of the renderer-as-editor; I think renderers should present data and editors should edit it. There are a few occasions when I think it is a good idea to use a single class for both, but those times are very few in my opinion.
Examples
Here is an example of over-using the itemRendererAsEditor. The DataGrid on the left is a nice, clean DataGrid. All of the cells are editable and when you click or tab into a cell its editor appears. The DataGrid on the right uses itemEditors to render the cells and edit them. All you see are the editors: TextInput controls for some columns, a ComboBox for another, and a NumericStepper for the last. Lots going on, very busy to look at.
![]() |
![]() |
| itemEditors only | itemRenderers as itemEditors |
Here is an example of using the CheckBox as both an itemRenderer and an itemEditor. I think the CheckBox works really well for this. It is clean, simple control and you can readily see whether a value is true or false. Plus you can just click it to change it. Straightforward implementation, good user experience.

Here is another example of using an itemEditor as a renderer. This List control represents a shopping cart. In it are all of the things you have added to your cart while shopping online at your favorite grocery store.

As you can see, the quantity of each item in the cart is represented by a NumericStepper. All the user has to do is change the quantity and the cart is updated. A delete button would also be a good idea here, too.
Shopping Cart
This complex editor/renderer class works as follows:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" paddingRight="4" paddingLeft="4" >
<mx:Script>
<![CDATA[
public function get quantity() : Number
{
return itemQuantity.value;
}
]]>
</mx:Script>
<mx:CurrencyFormatter id="cfmt" precision="2" />
<mx:Label text="{data.name}" fontWeight="bold" fontSize="12"/>
<mx:Spacer width="100%"/>
<mx:NumericStepper id="itemQuantity" value="{data.quantity}"
minimum="0"
maximum="100"/>
<mx:Label text="{cfmt.format(data.price*itemQuantity.value)}" width="66"/>
</mx:HBox>
As with every itemEditor, this one has a property used as the editorDataField. In this case it is the quantity property getter function. The function retrieves the value setting of the NumericStepper (with id itemQuantity).
As an itemRenderer, this component must also display the current quantity (as well as the product name, price, and sub-total). These values are displayed through data binding. The sub-total is actually an ActionScript expression, multiplying the price by the value of the NumericStepper. As the NumericStepper is changed so does the sub-total.
Now you are probably wondering how to get the grand total below the shopping cart to update as the NumericSteppers are changed. Simply changing the sub-total and the quantity field of the itemRenderer/Editor will not update the grand total. Remember that the editor does not commit the new value into the data provider until after the edit completes. In other words, if you increase the value of the NumericStepper for the Snow Peas row, the grand total will not update until focus leaves the Snow Peas row. This is so you can validate the information as shown in previous articles.
For a shopping cart like this, you want the grand total to update as the user changes the NumericSteppers. So you have to force the situation a little.
The first thing you do is have the itemRenderer class implment the IDropInListItemRenderer interface. This gives you access to the listData which contains a reference to the list itself and, through that, to the dataProvider.
The code demonstrating this is available in the download. Look for the ShoppingCartRendererExtra.mxml file.
Once you have the listData you can have the change event on the NumericStepper force an update on the dataProvider:
private function forceUpdate() : void
{
// Access the collection - listData.owner is the List and from there you have its dataProvider.
var ac:ArrayCollection = (listData.owner as List).dataProvider as ArrayCollection;
// update the quantity field from the numeric stepper. This is what the List will automatically
// do when editing completes, but since you want to see the grand total change as the NumericStepper
// changes, you have to force things a bit.
data.quantity = itemQuantity.value;
// finally, tell the collection the data changed. this will cause the collection to
// dispatch its own change event which is then picked up by the main application.
ac.itemUpdated(data);
}
When the NumericStepper's change event triggers this event handler, the ArrayCollection has the item updated immediately, rather than waiting for the List to complete editing the cell. If the main application is listening for a COLLECTION_CHANGE event on the collection, the grand total can be calculated:
<mx:ArrayCollection id="shoppingCartDB"
source="{shoppingCartArray}"
collectionChange="updateCartTotal()" />
...
private function updateCartTotal() : void
{
if( cartTotal ) {
var total:Number = 0;
for(var i:int=0; i < shoppingCartDB.length; i++)
{
var record:Object = shoppingCartDB.getItemAt(i);
total += record.price * record.quantity;
}
cartTotal.text = cfmt.format(total);
}
}
Conclusion
Take care when turning an itemRenderer into an itemEditor. The user should have a straightforward interface with a single purpose when editing a cell or record. I personally prefer to separate the functions, but there are times when using an itemRenderer as an itemEditor can make sense, even if you have to go the extra mile as with this shopping cart grand total example.
Posted by pent at 12:22 PM | Comments (9)

