Bringing together Flex, J2EE, PDF and BPM - Flex Developer’s Journal Article

•August 19, 2008 • No Comments

Yakov Fain, managing principal of Farata Systems, recently wrote a great article on Adobe LiveCycle ES (Enterprise Suite) where he discusses LCES, Flex, PDFs, Rights Management, creating processes, etc.

Article: LiveCycle ES 8.2 is a solid platform for business process management

It’s great to see an article spanning all of these products as a single solution!

If you are new to LiveCycle ES, I encourage you to check out the following:

MAX 2008 Birds of a Feather - Call for Sessions

•August 19, 2008 • No Comments

In addition to the great list of general sessions and labs being offered at MAX this year, we’re also putting together several “Birds of a Feather” sessions.  These sessions are much less formal than the regular MAX sessions and are more of a “led discussion” than a staged presentation, so they become much more interactive and fun.

We need YOU to suggest this year’s session topics and speakers.  Go submit your suggestion(s)!

Submissions will be accepted until September 30th.

Here is last year’s session list to give you an idea of the types of sessions that take place.

Adobe MAX 2007 Flex Team BOF
Adobe MAX 2007 Flex Team BOF

Flex SDK 3.1, Learning Flash, AIR, CF and other new content posted today to Adobe Developer Connection

•August 18, 2008 • No Comments

A simple AIR app for watching Hurricane Fay

•August 18, 2008 • 2 Comments

All of us in central and southern Florida are doing our yearly ritual of watching the weather channel and preparing for this year’s first hurricane threat, Hurricane Fay.  As you can see on the map below (as of 5pm EDT today), I am very near the projected path.  This past weekend, we started going to the National Hurricane Center website regularly to see how things are shaping up.  I had a little spare time last night and decided to write a little AIR app for my family and Florida friends.  At first, I had no intent of blogging about the app since it’s really just a simple tab interface to 4 mx:html components…but after finishing the app and seeing the reaction, I decided that it might be worth sharing since it was so easy to build.

I basically wrote this thing in less than an hour using the following steps:

  • I located the images I wanted to show - most of which are from the National Hurricane Center page
  • I created a new Flex project in Flex Builder and chose “desktop application” as the app type
  • I chose the TabNavigator component combined with a HBox and a VBox to lay things out accordingly
  • I used an HTML component for each of the tabs
  • I created a simple ActionScript timer and supporting method to handle auto-refresh of the html components and a countdown timer
  • I then added a few useful options like “quit”, “always in front”, etc.
  • I chose a simple move effect and wrote a little ActionScript ot handle the slide-in, slide-out effect when the window is clicked
  • I took a screenshot of one of the hurricane center images and created the required icon files, 128×128, 48×48, 32×32 and 16×16
  • I created a quick install badge using http://labs.adobe.com/wiki/index.php/AIR_Badge
  • I then did a little copy/paste from my previous article on adding auto-update capabilities
  • I then emailed a few family and friends to share my little app

You can try the app here:

As new hurricane’s come into focus, I can simply create a replacement app and push it out.

Source Code

Suggestions welcome :)

Adding auto update features to your AIR application in 3 easy steps

•August 16, 2008 • 2 Comments

Most modern desktop applications, browser plugins, OS’s, etc. automatically check for updates periodically, and some of them even handle the update process with a single click so it’s easy to stay current.  When building AIR applications, it’s also important to provide a good auto-update feature.

During the past several weeks, I’ve been managing a project to build an internal AIR application.  I wrote the original requirements document but forgot to include a simple bullet about auto-updating.  A few days ago, I was handed the source code and other assets and quickly realized my oversight.

Thankfully, adding this capability is dramatically simplified by the Adobe AIR Update Framework that appeared on Adobe labs a few months ago.  There have been several blog articles about the new framework but I thought I would provide a very simple example of the most common update model.

The code below checks to see if a new update is available every time the program is run.  If an update is available, it simply prompts the user to install the new update with the following default UI:

I implemented this using the following 3 steps:

  • I downloaded the AIR update framework from http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework and copied the included applicationupdater_ui.swc to my project’s lib folder
  • I created a file called update.xml (see tab 3 below) and uploaded it to the server where my .air file lives.  This file identifies the currently available version, the location of the .air file and provides the description shown above as “release notes”.
  • I added code to my existing init() method to initialize the updater.  Once initialized, I triggered an immediate update check via a one-liner event handler.

Every time my application runs, it performs a quick check to see if the version number in the update.xml on my server is different than the version number in my app config file (UpdateSample-app.xml).  If it’s the same, the user sees nothing.  If it is different, the dialog above displays.  The update framework takes care of the dialog, downloading the new air installer and the installation of the new version.  If there is no connection to the server, it silently continues running the existing version of the application.

There are many other options included in the framework, including the ability to have the update check occur every n days.  For more details, see the included documentation and the included samples.

Try out the results

To demonstrate this capability for this blog post, I created a tiny AIR program.  Download UpdateSample.air 1.0 and install it.  It simply displays a small window with the current version number displayed.  When you run it, it will immediately tell you that v1.1 is available and prompt you to install it so you can see the end-user experience.

Source Code

Below is the source code to UpdateSample.air and the update.xml that resides on the server:

P.S. I will be doing a short article about the code viewer SWF used above that I wrote in Flex.  I’ll also explain how I got it to work on the WordPress hosted service, wordpress.com, which doesn’t allow flash in blog post (at least not directly).

5+ hours of free Flex training videos now online…

•July 30, 2008 • No Comments

The Adobe Developer Connection now has over 5 hours of Flex training videos available for viewing and even more videos coming soon!

Here is a quick copy/paste of available videos:  Comparing Flash, Flex, Flash Player and AIR; Introducing Flex Builder; Creating a Flex Builder workspace and project; Using pre-built Flex controls; Understanding MXML; Binding data between controls; Handling user events; Introduction to the event object; Adding EventListeners with ActionScript; Retrieving data via HTTPService; Displaying data in the DataGrid; Working with containers; Creating custom MXML components; Implementing value object classes; Creating custom events; Creating custom event classes; Customizing item renderers; Exploring Flex Builder tips; Validating data; Requesting and sending data with RemoteObject; Formatting data; Dragging data between List components; Filtering XML with E4X; Deploying Flex and AIR applications.

Additional videos are coming soon under the categories, “Adding Visual Appeal” and “Architecture and Advanced Topics”.

As you can see, it is getting easier every day to learn Flex!  The above videos, Adobe Developer Center, Lynda.com training, Flex.org, Adobe TV, The Flex Component Explorer, numerous books and tons of other online sources will take you from “Hello World” to full applications.

Adobe MAX for the Enterprise

•July 28, 2008 • 1 Comment

Adobe MAX 2008 is gearing up to be a great event this year with hundreds of great sessions on everything Adobe.  As you would expect, there are a lot of sessions on media design, creative products, video, etc., but did you know that there are many sessions specifically for enterprise business application developers?   Adobe has many products, including LiveCycle ES, LiveCycle Data Services, AIR, and Flex, that are very relevant to the enterprise and becoming more relevant every day.

I thought I would take a few minutes and highlight some of the sessions specifically targeted for Enterprise developers:

.

Steven Webster (technical director of Adobe Consulting), and his team have put together some great sessions that will be presented by members of Adobe consulting from North America and Europe:

The Technical Marketing team has put together some great introductory sessions:

Several members of the Platform Evangelist Team are also presenting some enterprise-focused sessions:

Other Enterprise-related sessions:

For a complete list of Adobe MAX sessions, please visit the MAX Session Locator.

If you spot sessions that you feel are enterprise-related that I have not mentioned above, please leave me a comment or send me an email.

I’ll see you in San Francisco!

Have you seen Flex.org this week?

•July 28, 2008 • No Comments

Flex.org has been upgraded to a new look with new features, many of which are community focused.  If you are new to Flex.org, don’t miss the Flex showcase!

More information about the new features can be found at http://www.flex888.com/732/the-new-flexorg.html

The menu bar across the top says a lot about the new features :)

“AIR for Flex Developers” on Lynda.com

•July 28, 2008 • No Comments

Two weeks ago, I blogged about “AIR for Flash Developers” on Lynda.com. This week, another great video series has been added — “AIR for Flex Developers” by David Gassner.

You can view the first few chapters for free.

LiveCycle Data Services 2.6 Documentation Available

•July 18, 2008 • No Comments

Documentation for the recently released LiveCycle Data Services 2.6 is now available here.   API documentation is available for Java classes (Javadoc-format) and ActionScript classes (ASDoc-format).

More information about the improvements in the documentation is available on the Flex Documentation Team Blog.

Release notes can be found here.

More information about LiveCycle DS 2.6 can be found on the Adobe.com LCDS home page.

Adobe MAX 2008 Session Grid Spreadsheet

•July 14, 2008 • No Comments


The Adobe MAX 2008 site has tons of great information about MAX including a cool session locater/browser but sometimes it’s nice to have everything on one page.

As the manager of the LiveCycle developer sessions, I have access to the internal session database for the entire MAX event.  After asking permission from a few internal folks, I created these grids so you can sort, filter, search, etc.

NOTE: Sessions are subject to change so you should always go to http://max.adobe.com/na/sessions/browser for the “official list”.  The data I used is from a snapshot taken on 7/11/2008.

Flex 3 Component Explorer - a must for Flex beginners

•July 12, 2008 • 3 Comments

If you are new to Flex or if you are just curious about the capabilities of Flex, the Flex 3 Component Explorer is a great place to learn by example.   Click on a component in the list, see a working sample on the right with the code below it.

The explorer has been available for awhile but I have met several Flex developers that were unaware of its existence.

Flex 3 Component Explorer

Other Flex resources:

“AIR for Flash Developers” now at Lynda.com

•July 11, 2008 • 1 Comment

David Tucker announced today on his blog that his new Lynda.com series, AIR for Flash Developers is now available on Lynda.com’s online training library (and soon to be released on DVD).  You can view several of the tutorials for free.

If you are a flash developer with ActionScript 3 experience, you should check this out.  Building desktop applications in Flash opens up a whole new universe!

LiveCycle ES Update 1 Documentation now online

•July 9, 2008 • No Comments

The LiveCycle ES Update 1 (LiveCycle 8.2) documentation is now online at http://www.adobe.com/support/documentation/en/livecycle/


What’s New Document for LiveCycle ES Update 1 released

•July 7, 2008 • No Comments

The LiveCycle documentation team just released a document detailing what’s new in the 8.2 release - also known as “Update 1″.

You can download the 24 page PDF from here.   Topics include Workbench ES, Foundation, Process Management, Forms, Output, Data Services, PDF Generator, PDF Generator 3D, connectors for ECM, Content Services, Rights Management, Digital Signatures, Reader Extensions, and Doc converter.

Other information about LiveCycle ES can be found in my earlier LiveCycle articles

Nikon D700, D300, D3, D2Xs, D80, D60, D40 - confused?

•July 5, 2008 • 20 Comments

I’ve been too busy in my “day job” during the past couple of months to keep up with the Nikon rumor mill so when Nikon announced the D700, I was surprised AND a bit confused as to where this new camera fit into the D-series lineup.

I own a Nikon D70, D200 and D300. As expected, the the higher the model number, the more capable the camera. This makes sense! However, if you look at the entire collection of D-series model numbers, it gets very confusing. For example, the D40 is newer and more capable than the D50 or the D70. The recently announced D60 is even newer and more capable. Now, Nikon skips from the D300 to the D700? I feel like I need a decoder ring!

I decided to capture several of web pages for offline reading (using Adobe Acrobat 9 of course!) from dpreview.com, kenrockwell.com, and wikipedia and study them on my recent flight from London to home. I had some time to kill and was ready for a break from the job after a long week of meetings. After studying each of the 19 Nikon D-series cameras, I now understand the entire lineup much better than before. From looking at some of the popular photography message boards, I noticed that many others share my confusion so I felt that my research was blog worthy.

I created a simple grid showing every Nikon D-series camera sorted by release date of the camera. I’ve selected a handful of attributes to put in the columns of my grid. I don’t propose that these are the only attributes worth considering when evaluating a digital camera so don’t base any purchase decisions solely on my grid! The attributes selected are used to illustrate the high-level differences between each camera model.

* The D300 and D700 will do 8 FPS if used with the battery grip
** Higher ISO speeds are available via “boost” but quality suffers dramatically

Here are my conclusions on the basic numbering scheme of the Nikon D-series (feel free to correct me):

  • Dx = Pro-level camera. The priority is in features and ruggedness, not size and weight. Check out the frames per second (FPS) on the D3 compared to the Dxxx and Dxx models. It’s obvious that this camera is for hard-core photographers. Take a look at the photographers on the sidelines of an NFL game. You’ll see a lot of D3’s. These photographers need very fast frame rates, huge storage capacity and a camera that can survive an occasional 300lb collision! Nikon focuses on giving professional photographers what they want and spare no expense to deliver. Take a look at the price of the D3 and you’ll see what I mean! It ain’t cheap! I want one but I can’t justify the cost. I do just fine with my D300.
  • Dxx = Entry-level camera. Although these cameras are categorized as “entry-level”, they are extremely capable and solid cameras. Entry-level describes pricing more than capabilities. Many of these cameras are used by pros, sometimes as a backup camera. I know a professional photographer that carries a D70 as a backup to his D2Xs. He knows that if the D2Xs fails, he can keep doing his job and deliver good images using the D70.
  • Dxxx = High-end amateur and pro. These cameras fill the gap between the previous two categories. Their specs are very good and many pros find them more than adequate (including myself).

Below is a illustration from wikipedia that further breaks down the categories:

DX vs. FX

The Nikon D-series cameras followed a long line of 35mm film SLR cameras. The size of a 35mm film frame is about 36mm x 23.9mm. When the D-series was launched, Nikon and others wanted to use a similar size digital sensor because it would allow all of the lenses to have the same angle of view as they did with the 35mm SLRs. Unfortunately, a sensor this size was not practical at the time so Nikon went with the smaller 23.7mm x 15.7mm sensor (now known as the DX format). Photographers using lenses from the their 35mm cameras had to re-calibrate their brains when thinking about focal length to adjust for the difference! The DX sensor is smaller so the image projected by the lens is cropped. As a result, photographers using their existing lenses had to multiple focal lengths by 1.5 to estimate the new results. For example, with a 35mm film frame, a 200mm lens provides 4X magnification, but with the smaller DX sensor, the resulting image is equivalent to a 300mm lens (200×1.5) resulting in a zoom of 6X. Although this sounds like a nice bonus, it made wide angle lenses not so wide when used on a DX camera.

In 2003, Nikon introduced DX lenses. These lenses projected an image that matched the size of the DX format sensor. A list of Nikon DX lenses can be found here.

The Nikon D3 is the first Nikon digital SLR to use a sensor that is the same size as the original 35mm film frame. This new format is called “FX”. There are several advantages of a larger sensor, one of which is that the non-DX lenses work as expected. However, if you use a DX lens on the Nikon D3, it only projects the image on the middle 5.1 megapixels of the 12.2 megapixel sensor.

The new Nikon D700 is the first Dxxx series Nikon SLR to provide a FX format sensor. Now it starts to make sense! The Nikon D700 is basically a lower-end version of the Nikon D3 providing a more affordable alternative to the Nikon D3 for photographers that desire the FX format. The Nikon D300 is basically a DX format equivalent of the D700.

My assumption is that there will be more DX format DSLRs and will most likely be named the D400, D500, etc. I suspect that D700 was chosen as the FX model number to some room for future DX additions.

FYI - I’ll personally skip the D700. I’m still very happy with my D300 and my Nikon 18-200mm DX lens. I do own a few non-DX lenses, including one of my favorites, the Nikkor 50mm f1.4, but I don’t have a real need to switch to a FX format camera, especially considering the cost of the upgrade.

If you are a photographer looking to purchase your first Nikon DSLR, don’t let the whole DX vs FX debate frustrate or confuse you. You’ll be happy with either format. My recommendation is to go with one of the Dxx models and later get yourself a higher end Dxxx. I often recommend the D60 or D40 to friends as a first DSLR. If you are on a very tight budget, a used D50 or D70 is a fine choice. All of these take fantastic pictures. Most are sold as a kit that include a decent starter lens.

If you want to read more about DX vs FX, I’d suggest the following:

By the way, although I am obviously a “Nikon guy”, there are equivalent cameras in the Canon lineup that are fantastic choices as well. I’d like to see a similar breakdown of the Canon DSLR models to the one I provide above. I did find a timeline of Canon DSLR articles on Wikipedia.

To learn more about any of the cameras mentioned above, visit one of these great sites:

Other good comparisons:

NEW - Nikon D700 brochure (10.5MB PDF) - http://nikonusa.com/Assets/Digital-SLR/25444-Nikon-D700/PDF/25444_D700_brochure.pdf

NEW - dpreview.com has a great side-by-side comparison tool.  Below are 3 sets of comparisons:

NEW - http://www.nikond700.com - tons of information about the new Nikon D700 including the following D300 vs. D700 size comparison:

Below are a few pics I’ve shot with multiple Nikon cameras (and one Fuji - sunset out plane window). To see high-res versions and the EXIF data to see which camera shot what, go to http://gregorywilson.smugmug.com. Dpreview.com also has sample images for all of the cameras mentioned above.

Adobe Reader 9 - Still free but MUCH more valuable

•July 1, 2008 • No Comments

Adobe Reader 9 is now available!   You’ll want to grab this so you can take advantage of the very cool features that Acrobat 9 created PDFs contain (see my previous article) and to take advantage of the faster load time.

Steve Gottwals, Sr. Product Manager at Adobe details the new features here.

As I mentioned in my recent Acrobat article, I plan to post some PDFs soon to demonstrate the new possibilities of PDF.   It will surely broaden your perspective on what PDFs can do.

On a related note, it is now possible to embed a PDF widget directly in your HTML page using a feature from Acrobat.com.  This allows your users to view a PDF inline without having to wait on the PDF to download.   Lori Defurio has a great example in her latest blog post.

The above image is NOT the embedded PDF because WordPress does not allow flash content on their hosted site… YET.  Click the image to see the real thing on Lori’s blog.

Acrobat 9 is ready for you to download now - You’ll be amazed

•June 25, 2008 • 1 Comment

Acrobat 9 is now available for immediately download from http://www.adobe.com/tryacrobat.   If you are rolling your eyes because you can’t get excited about a program that simply allows you to print to PDF,  you are behind the times!  Acrobat 9 does SO MUCH MORE.

The Acrobat team has put together a collection of video presentations/demos that show you what I’m talking about.  Go to http://www.adobe.com/designcenter/video_workshop (alternative link here).  There are 16 videos so you might feel a bit overwhelmed.  If your time is limited, I personally recommend that you at least watch the following titles (you’ll have to click them from the link above):

  • Overview of PDF Portfolios
  • Document Collaboration using shared reviews
  • Using Adobe Presenter to augment PPT presentations
  • Protecting your PDFs using a password
  • Exporting PDF files to Office formats
  • Archiving email as PDF from Microsoft Outlook (you MUST watch this - surprisingly cool! - check out the teaser screenshot below - it’s a PDF portfolio and it’s searchable, etc.)

Email archived to PDF

  • Co-navigating PDF documents using acrobat.com (the screen shot below is two people co-navigating a PDF):

Co-navigating a PDF

Once Reader 9 is out, I will post some PDFs that take advantage of some of these features.  I am especially eager to illustrate how professional photographers can utilize these features.  I already have some ideas for my own photography business!

To learn more about Acrobat 9, go to http://www.adobe.com/products/acrobat

Adobe Acrobat 9 eSeminar Thursday

•June 23, 2008 • No Comments

Lori Defurio, product manager and evangelist at Adobe, will be presenting a one hour online seminar on Acrobat 9 Thursday, June 26th at 9:00AM PT/12:00PM ET and again at 12:00PM PT/3:00PM ET.   Click here to register.

The title of the seminar is “Redefine the Way You Communicate” - Lori will discuss how Acrobat and PDF help you be more productive in your day-to-day tasks. She will cover quite a range of topics including Acrobat’s built-in workflows for collecting feedback - either feedback in a fillable PDF form, or feedback on documents as part of a review.

Topics:

  • Web capture - reviewing, archiving, and sharing information, you can stay a lot more organized.
  • Customized PDF Portfolios - quickly add navigation, multimedia files, and even custom branding to all your combined documents.  See my example below.
  • Adobe Presenter software - create recorded presentations you share as a PDF document.
  • Create interactive forms in a few simple steps, so you can quickly collect and track all your information.
  • New collaboration capabilities such as synchronized reviews, you can keep everyone on the same page.

This will be a great intro to the new Acrobat 9 features.  To whet your appetite, here are a few links to get you going:

Below is a screenshot of a portfolio PDF I created using Acrobat 9 from a few high-res digital images.  I customized the headers, layout, colors, etc.  I can now share this PDF with anyone running Acrobat 9 or Reader 9.  This is a great example of how Flash has been integrated into PDFs.  This and other capabilities will be covered in Lori’s session.  Check it out!

Great LiveCycle ES article at The Intelligent Enterprise

•June 21, 2008 • No Comments

One of my google alerts stumbled on a article published Friday by Bruce Silver of the Intelligent Enterprise Blog.

Opening line - “Did you know Adobe had a business process management suite (BPMS)? Most people don’t, even though with more than 5,000 customers they could be considered a major player.

Read the rest of the article here.

LiveCycle Enterprise Suite Update 1 Announced

•June 17, 2008 • No Comments

Earlier today, Adobe announced LiveCycle ES Update 1. This update introduces content management, PDF 3D support, 64bit platform support and numerous tool enhancements. LCES Update 1 (also known as 8.2) is due to ship next month. I wrote an article summarizing the new features on the Adobe Developer Connection website at http://www.adobe.com/devnet/livecycle/articles/update1_whatsnew.html

My previous articles on LiveCycle ES can be found here

Other articles about this new release:

If you are unfamiliar with LiveCycle ES, I recommend you start with this 14 minute video - an introduction to LiveCycle ES for developers:

To AIR or not to AIR - Pizza Hut

•May 28, 2008 • 2 Comments

I read some posts over the weekend about PizzaHut’s new AIR application, “Pizza Hut Shortcut“. I quickly downloaded it, installed it and made myself hungry.

My first impression was good - it’s a neat looking app:

What I like about it:

  • Good concept - frequently needed, useful, practical, etc.
  • Good looking artwork, icon, etc.
  • Great use of branding - bringing brand to the desktop
  • If all pizza lovers install AIR, we’ve won!

Disappointments:

  • Other than some locally saved options and the ability to receive pushed ads, it doesn’t really take advantage of any AIR features such as local file access, local database, drag and drop, etc.
  • The actual ordering interface is just a tiny web browser - too tiny! - and lacking in any RIA features. It feels like a mobile phone browser! The Pizza Hut regular web-based ordering UI is actually much better than this AIR version. This is the opposite of what I expected! I was really hoping for a cool, graphical, drag-n-drop pizza-building interface! Talk about a Rich UI opportunity! Oh well… maybe in v2.0? :)
  • The application is set to automatically start at boot time and to “Alert me with new coupons and deals“. Although this does take advantage of some AIR features, it concerns me and could become a terrible trend that will give AIR apps a bad reputation. The last thing we need is a reputation of creating more advertising noise! I’m always interested in good pizza deals, but I don’t need them pushed at me! I’ll check for deals when I’m in a pizza mood!

So, this raises the big question - When should applications be written for AIR vs. left as a browser application?

Technical Considerations:

An application is a good candidate for AIR when any of the following are true:

  • Offline capabilities are required. This is the classic requirement that makes AIR ideal. AIR apps can detect network presence and react accordingly. AIR provides a SQL database and local file access allowing sophisticated data-related features to be implemented.
  • There is true value in leaving the application running in the background independently of the browser - such as notifying the user of status changes, alerts, etc. A good example of this is the FedEx Desktop - it provides real-time status updates for shipments. AIR even provides the ability to create taskbar/OS X Doc icons.
  • Local data provides significant performance gains, reduced server load or added privacy (allowing the user to add data that is not stored on the server). A great example of this is Matt Giger’s Earth Browser.
  • Desktop integration simplifies the application. The classic example is file drag-n-drop interfaces such as upload/download. There are many other good use cases for this feature such as allowing the user to select specific data/objects to drag to the desktop or another application.
  • Operating system integration is required. AIR provides OS integration that is just not possible with a browser application, such as creating file associations, tracking user presence (this can partially be done in a browser app), auto-launch, etc.
  • Multi-monitor support provides needed screen real-estate. Large dashboard-type interfaces can benefit from this. I’ve yet to see an AIR application utilize this.

(All of the doc links above are part of the Developing Adobe® AIR™ Applications with HTML and Ajax LiveDocs. Similar pages for Flex developers building AIR apps are available here.)

Non Technical Considerations:

There are also non-technical aspects to choosing AIR. Developers should ask themselves the following questions:

  • Will the AIR application truly be more useful than a browser version of the app? If not, why not leave it in the browser?
  • Will the desktop advantages be obvious to the user? It better be obvious or your app won’t stick around.
  • Am I making an AIR app primarily to put my logo on the user’s desktop without offering any real value over a web-based app? (If so, DON’T DO IT….PLEASE!)
  • Do I really need a desktop presence? Why?
  • Most important: Will the user agree that I need a desktop presence? This is critical. Users have a very different “policy” when it comes to installing software. It’s more “personal” than hitting a web page. There have to be clear advantages, otherwise your app becomes trash quickly.

There are plenty of great reasons to deploy AIR desktop applications. We’ve only just begun to see the true potential. The Pizza Hut app has some fun potential and could easily become a showcase AIR example. I hope v2.0 is already in the works!

Here come the real AIR apps! - FedEx Desktop

•May 10, 2008 • 6 Comments

As excited as I have been about Adobe AIR, I’ve been a bit frustrated at the lack of real-world, useful applications that take advantage of some of the amazing features that AIR provides. Recently, I’ve started seeing some great progress! Here is a great example:

FedEx just released FedEx Desktop, an AIR application for tracking packages. At first I was skeptical. I was afraid that it was just an AIR version of a web-based tracking app which just doesn’t impress me. However, after installing the app and playing with it, I found that it is a great use of AIR.

What does this application allow me to do that web-browser-based tracking does not?

  1. Local data - The FedEx Desktop app provides a feature called “Nickname Shipments”, which allows a nickname to be assigned to each package such as “My anxiously awaited Nikon D300“. Also, tracking history is cached locally and searchable by tracking number, nickname, etc. There are also filters that can be applied to see delivery exceptions, completed deliveries, etc. (see image to the right). If you manage a lot of FedEx shipments, this is extremely useful stuff!
  2. Drag and Drop / Desktop Integration - As shown in the screenshot above, shipments can be dragged from the main app to the desktop. This “placard” is automatically updated as the shipment progresses.
  3. Notifications - the app can be left running in the background and will auto-notify you as the status changes.
  4. Branding - the entire application is clearly branded FedEx from the color scheme to the desktop icon.

The app runs on Windows, Mac OS and even appears to work on the beta version of AIR for Linux! Without AIR, it would be a huge undertaking to deliver a desktop application with this level of features, especially to multiple platforms. Since AIR apps can auto-update, software distribution and updates are much easier to manage. Lastly, installation is a no-brainer with AIR - no complex multi-platform installers are needed.

For more information and to download the application, go to http://www.fedex.com/desktop

I’m eager to see more applications like this. I know of others in the works already. Stay tuned!

Students and Teachers - get Adobe Flex Builder Pro Free

•May 7, 2008 • 2 Comments

Several weeks ago, Adobe announced that it was giving away Flex Builder Pro to students, faculty and staff of eligible educational institutions. Recently, I’ve met a several students and teachers that were not aware of the program so I thought I would do a quick post.

So… here’s the deal. You can download Flex Builder 3 Pro today from http://www.adobe.com/go/flex_trial. The eval license is good for 60 days so you can start using it immediately.

Then, go to http://www.flexregistration.com/, complete the form and attach a scan of your student/faculty/staff ID. Within a few days, you will receive your permanent serial number.

Then, go to http://www.adobe.com/devnet/edu/ and start learning and building cool Flex applications. You can also use Flex Builder to create desktop applications for Windows, Mac and Linux (Linux in beta now) that run on Adobe AIR.

You’re getting a $699 product ($669 on Amazon) for FREE so this is definitely worth checking out.

Note: This is not just for students…it’s for teachers and staff too! Whether you are the comp sci professor or the campus night watchman, you can take advantage of this.

Other links:

Interactive Demos of ILOG Elixir Flex Components

•May 7, 2008 • 4 Comments

If you need to add sophisticated data visualization to your Flex and AIR apps, check out ILOG Elixir. You can read about it here - but I recommend skipping the text and going straight to the interactive demos here (or simply click the thumbnails below). A trial version is available for download from here.

Here are a couple of demos that show off the functionality:

Why I switched to a Mac after 20 years of Windows PC

•April 30, 2008 • 50 Comments

I’ve been a Microsoft Windows fan since 1987 and have used Windows 286, Windows 386, Windows 3.0, Windows 3.1, Windows for Workgroups, Windows 95, Windows 98, Windows XP, Windows 2000, Windows 2003 and Windows Vista. As you can see, I have a long, loyal history with Windows. I pride myself on my deep understanding of Windows and have mastered tweaking everything from network settings (MTU, TCP-Window, etc.) to maximize high-speed broadband, to customizing cache settings to maximize I/O performance. I can fix nearly any Windows-related problem you can throw at me. This familiarity has given me great comfort over the years.

Windows 3.1 Desktop

Windows 3.1 Screenshot

During the past 15 years, I’ve consistently made fun of anyone around me that uses a Mac and brushed them off as a “non-serious computer user”. I made exceptions in this humor for artists and writers but everyone else was fair game!

Macintosh System 7 Desktop

Macintosh System 7 Screenshot

Recently, I started noticing some of my friends defecting to the Mac, including friends that are extremely technical and very hard-core software developers. This opened my mind a bit and got me exploring. Meanwhile, I continued to get frustrated by little things in Windows and found myself asking the following questions version after version:

  • Why does it take so long for Windows to boot?
  • Why does the boot duration increase over time, even though I don’t install new software often and regularly defrag my hard drive (including MFT, swap file, folders, etc.)?
  • Why do most serious Windows users accept the fact that at least once a year (more often for some of us), it’s necessary to do a complete re-install of Windows to regain performance and stability? (I call this a Windows enema!)
  • Why does my machine work one day but have problems the next day with NO software changes. What happened!?
  • Why does it take so long to shutdown Windows? Like boot-up, this seems to get worse over time.
  • Why does standby not work consistently? I have tried it ever since it was introduced and have yet to get consistently good results. For some reason, the stability of Windows decreases quickly every time standby is used.
  • Why did 64-bit take so long!? It’s not even fully realized yet for most of us.

I could go on and on…. device driver crap, conflicts, corrupt registry, adware, random blue screens, blah blah blah.

Don’t get me wrong, there are good reasons for some of these challenges - Microsoft has worked hard to maintain backward compatibility and it’s a miracle IMO that things run as well as they do considering the long history and customer demands. We’re all screaming for 64-bit yet Microsoft needs to also support a few 16-bit leftovers! Also, when you buy a Dell or IBM or HP or whatever, you are not only getting Windows, you are getting device drivers written by multiple companies so the complexity increases exponentially. Because Apple is a bit more proprietary, they can focus more on stability with their finite mix of hardware devices. I’m typically very against anything proprietary when it comes to technology, but in this case, it does make some sense.

About 11 months ago, to my dismay, and against my advice, my wife bought a classic white MacBook. I told her that she was terminating our support agreement that had been in place for 20 years and that she was now on her own! For several days, I would walk by her and ask, “how’s your new iPod doing?”. With very few exceptions, she’s done just fine without me. She takes advantage of the Genius Bar at our local Apple store, and signed up for Apple’s $99 One-on-One training program. Basically, you pay $99 per year for weekly one-on-one training on practically any Mac-related topic. At first, I couldn’t figure out how Apple could provide this level of support for only $99/year. If a customer takes full advantage, they can get 52 sessions at about $2/session! I quickly realized how Apple was able to pull this off when she kept coming home with new Apple accessories, software, etc. Clever marketing huh? Weekly up-sell opportunity! They actually do a great job.

After several more months of investigating and interviewing friends, I took the plunge. I was comforted by the fact that underneath the slick Mac OS exterior was real Unix….including Perl, Vim, bash, X11, etc. I spent many years of my career neck deep in Unix so it did help to see some old familiar things. Oh, and by the way, don’t tell me about the various Windows Unix-like shells - it is not the same! I can’t do “real” unix stuff like named pipes and I can’t do things like, “runapp | grep -i error | tee error.log” or run programs in the background (&), etc.

The Transition:
A few years ago, Gartner published an article titled, “Understanding Hype Cycles”. It was written to describe the maturity and adoption cycles of new technology in general, but I’m going to use the same phases to describe my experience - I think it fits well.

Phase 1: Technology Trigger
For me, the trigger was the fact that several friends that I have huge respect for switched. I knew there must be something to it. Another trigger was that my Windows machine was starting to show performance degradation– it was almost time for my semi-annual Windows enema and I was tired of doing this! I needed 64-bit so I could use more memory so I was already facing a few minor software compatibility problems.

Phase 2: Peak of Inflated Expectations
I heard from numerous friends and co-workers that Macs never need rebooting, are always fast, never get a virus, never lockup, etc. I have to admit, I was getting a bit excited about the concept. I had only experienced this type of stability with Unix and Linux.

I got advice from several co-workers on which machine to get, what software to install, which accessories to add, etc. I then ordered my new machine, a fully loaded MacBook Pro with 4GB of memory, 200GB 7200RPM drive, Mac OS X Leopard, extra battery, etc.. When the machine arrived, I quickly pulled it out of the box, plugged it in, turned it on and stood in awe of the incredibly bright LED-lit screen, simple back-lit keyboard, fast boot time, etc. Things were good!

Phase 3: Trough of Disillusionment
After I got through playing with my new MacBook, I needed to get back to work. This is when the frustration kicked in and the honeymoon abruptly ended. It started when I configured Entourage (Office 2008’s equivalent to Outlook) and started catching up on some email. I immediately felt unable to type! The following keys were missing: PgUp, PgDn, Home, End, Ins, Backspace and more! These all have easy equivalents but I didn’t know what they were! I hit the maximize button (which was on the “wrong side” of the window border by the way) but it didn’t maximize the way I expected. Later I closed the window but I noticed that Entourage was still running. I didn’t know how to “right-click”. I didn’t know how to switch programs at first and when I finally stumbled on command-tab, it didn’t work the way I expected. I was lost! What the heck was Apple thinking when they designed this interface? It ain’t right!

I then installed Flex Builder 3, copied over my projects and was relieved to see that they worked as-is, but navigating the IDE was very clumsy for me since I didn’t know how to do some basic keyboard stuff. I didn’t even know how to take a screenshot. I didn’t know how to install new software (what is a .dmg file!?). I knew at this point that the transition was not going to be trivial.


Phase 4: Slope of Enlightenment

I took a step back and decided to approach this with a little more structure…hacking was only leading to frustration. I found Apple’s “Switch 101” page at http://www.apple.com/support/switch101, which offers some very good advice to get a PC guy started. I also picked up a copy of “Switching to the Mac: The Missing Manual Leopard Edition” by David Pogue. This is a MUST-HAVE book. I read it cover to cover and started feeling much more comfortable. Don’t try the switch without this book! I finally got my head around some of the important shortcuts…such as command-Q to quit a program, command-H to hide a program, command-tab to switch applications, command-~ to switch between windows of an application (very cool once you are used to it). I learned how to use the dock, how to quickly get to my applications, how to open a terminal window, how to use spotlight (VERY cool feature), how to boot from a USB device, etc

Phase 5: Plateau of Productivity
It’s been two weeks and I’m completely moved in. To my surprise, I’m finding that I’m more productive than before. The machine boots incredibly fast. Network connections occur almost instantly, including wireless connections. Sleep mode actually works so I rarely shutdown. The keyboard is incredibly responsive and well laid out. I think I’m at about 90% efficiency on it…. but I still find myself occasionally forgetting how to move the cursor to the end of a word or sentence, etc. I think I’ll be at 100% within another week.

Microsoft Office 2008 - I was using Office 2007 on my PC and had only recently adjusted to the dramatic difference from Office 2003. I was disappointed to find out that I was going to have to go through another major adjustment. I am able to use Word, Excel, PowerPoint and Entourage (Outlook’s replacement) but it takes a bit of hunting through dialogs to find things. This will take a bit to adjust to.

I’m very frustrated by the differences between Outlook 2007 and Entourage 2008. Each has features that the other product does not have. Do these development teams ever meet? The needed features are there…but…well…it’s just different. One huge disappointment is that Entourage will NOT import a PST file! How can this be!? I had to purchase a 3rd party converter to make this happen. I was starting to feel a bit alienated by my good ol’ friend Microsoft.

VMware Fusion- I spend a lot of time talking about and demonstrating Adobe LiveCycle ES, which does not run on MacOS (at least not as a supported environment). However, it runs very well on a VMware image. I have three VMware images that go with me everywhere. Image 1 is a stripped down Windows XP image that I use when I absolutely have to have IE. Unity mode lets me run Windows XP programs side-by-side with Mac OS programs. Image 2 is a Windows 2003 image with the full LiveCycle ES install. This is my demo server image. Image 3 is a Ubuntu Linux image that I’m using to test AIR apps. See my earlier post, “1 MacBook running 3 OS’s and 3 AIR Apps simultanously” for a good example of the power of VMware Fusion.

Adobe Creative Products - I’ve installed the entire Creative Suite 3 on my new MacBook. There was very little transition time required for these since they basically work the same. I have noticed that Lightroom is much faster on my new MacBook, even faster than my dual-CPU Dell workstation. Both versions are 32-bit so I suspect that available memory is part of the reason it runs faster. Photoshop is basically identical with one exception. Over the years, I’ve developed a habit of using the keyboard to open menus. For example, to open the highlights/shadow dialog box, I simply hit ALT-I for the image menu followed by “A” for adjustments menu followed by “W” for shadow/highlight… never touching the mouse. This doesn’t work on Mac OS. Menu items don’t have this type of selection shortcut. There are shortcut keys to many dialogs, but you ca