Thursday, May 05, 2011

Flex/AIR Mobile Color Picker

I have been writing a new application the last few days and ran into an issue.  The old mx color picker has no counterpart in Flex Mobile Development.  After some quick research, I decided to make a view that can be reused by others.

The source code can be downloaded from http://www.22ndcenturyofficial.com/ForBlogDoNotDelete/ColorPickerView.mxml
 (right-click on PC, Control-click on OS X and select "Save Target as..." or something like that).  PS - this is my band's official web site so while you're there take a listen to our music!

The controllers are simple Spark Horizontal Sliders that have ranges from 0-255. Each slider has a change event handler registered to the same function.


The logic is included to lay these out for both portrait and landscape modes.  A visual reference to the current color is represented within a Spark rect.  The Button calls a blank function to be used to take whatever action you want to set a color.


As you move the sliders, the color changes.

  


The setColor function does not return anything.  All it does is grab the values and convert them to be used either as Hex (for example, "0X0f3eff") or uint formats.  A click handler is registered against the button to set the color, which can be done from the setLineColor() function.


A small utility class is used to prevent incorrect values from being written when ranges are less than one character long.  The checkLength() function has comments and is self explanatory.  This is to prevent '0f0f0f' from returning "fff" if the values are all 15.


If you use this and find any way to improve it, please consider sharing via this blog post.

Tuesday, May 03, 2011

Duane's World #33 - Ben Watson on CEM/CX

This episode of Duane's World was filmed in Barcelona, Spain with Ben Watson.  The talk focuses on Customer Experience Management (aka CEM) which is an emerging architectural discipline focusing on a customer experience view.  While previous user experience (UX) work has been done by architects in the context of a single application, Customer Experience Management spans the experience over the complete lifetime of a relationship and over multiple channels of interaction (examples: telephone, email, web, in person etc).



If you are not yet convinced that CEM matters, here is some great additional reading on the topic:

"How to Approach Customer Experience Management". Gartner.com. 2004-12-27.

Debor, Jessica (2008-02-20). "CRM Gets Serious". CRM Magazine.

Peppers, Don and Martha Rogers, Ph.D. (2008), Rules to Break and Laws to Follow, Wiley, pp. 24, 164, ISBN 978-0470227541

Strativity Group (2009), 2009 Global Customer Experience Management Benchmark Study, Strativity Group, Inc.

Peppers, Don and Rogers, Martha; Don Peppers, Martha Rogers (2005), Return on Customer, Doubleday, division of random House, Inc., ISBN 0-385-51030-6

Shaun Smith and Joe Wheeler.; Shaun Smith, Joe Wheeler (2002), Managing the Customer Experience: Turning customers into advocates, Financial Times Press, ISBN 978-0273661955

Rae, Jeananne (2006-11-27). "The Importance of Great Customer Experiences". Business Week.

Bernd H. Schmitt.; Bernd H. Schmitt (2003), Customer Experience Management: A Revolutionary Approach to Connecting with Your Customers, Wiley; 1 edition, ISBN 0-4712-3774-4

Lopez, Maribel D. (2007-11-12). "Operators Thrive by Building and Enabling Experiences". Forrester.

Monday, May 02, 2011

Adobe MAX 2011

The new site for Adobe MAX 2011 is now live at http://max.adobe.com/.  You can already register and will get a substantial break by doing so this early in the game. The early bird pricing ends July, 2011.

Adobe MAX awards:

If you have done something really cool in the last year using Adobe technology, consider applying for an Adobe MAX award.  The MAX Awards provide an opportunity to gain industry visibility for you or your clients' projects. The contest will open on Wednesday, June 1, 2011 and close on Friday, July 29, 2011, at noon (Pacific Time).

The categories for 2011 are: Advertising and Branding, Digital Publishing, Enterprise, and Entertainment. Finalists are selected in each category by the Adobe Judging Councils. The top three finalists in each category will be invited to showcase their work prior to and during MAX 2011 to support online voting for the category winners. Online voting will open one week prior to MAX, and the category winners will be announced live at MAX. Award entrants are also eligible for Honorable Mention recognition.

The information you provide in your MAX Awards application will be used internally by Adobe for purposes of judging the awards and may be reproduced, publicly displayed, or used in press releases by or for Adobe for the sole purpose of promoting the MAX event and MAX Awards. Your contact information will be used by Adobe only and will not be distributed or shared.

There is also a Community Pavilion this year again.

Community Lounge

The Community Lounge offers a comfortable forum where designers, developers, and others in the Adobe community can mingle with peers, share ideas, and network. This is your opportunity to spend one-on-one time with these product experts.
Unconference discussions

Unconference discussions are participant-driven presentations and discussions centered on a theme that are open to all. Attendees have the opportunity to sign up and present on topics of their choice. Last year these discussions were very popular. From project post-mortems to open panels, these discussions provide an opportunity for sharing and receiving information and connecting with your community. Multiple discussion themes similar to last year are in planning stages — stay tuned for more details on the Unconference discussions.
MAX Playground

Hang out in the MAX Playground and try your hand at the latest video games. If you prefer classic games, check out the retro area featuring cool games from the past.

I'll be there!  See you there!

Thursday, April 21, 2011

What is Customer Experience Management?

Customer Experience (CX a.k.a CEM) is the sum of all experiences a customer has with a supplier of goods or services, over the lifecycle of their relationship. This covers several phases including awareness, discovery, attraction, interaction, transaction, use, service, cultivation and advocacy.
These are not simply sequential, but rather a continuum of phases existing within the context of CX.

CX is not something you just bolt on to your existing enterprise architecture.


So why does CEM/CX matter? The simple answer is for retention of your existing business customers. Your competition is a click away and studies show people are 3 times more likely to tell others about a bad experience than a good one.  People declaring a bad experience with you are ripe for your competition to steal.
With social media, bad CX stories can escalate virally and ruin the reputation of a business in weeks or even days.  People notice BAD experiences and get emotional!  They want a good customer experience.






Wednesday, April 20, 2011

Adobe Resource Synchronizer CS5.5

Yesterday I installed the 5.5 version of Creative Suite Master Collection. To my dismay, there was no 5.5. version of Soundbooth, which I had uninstalled as per the instructions. To recap, on Mac OS X it is very important to use the Uninstall feature for earlier versions of CS instead of merely dragging them into the trash.

After installing CS 5.5, I grabbed the media to re-install the previous version of Soundbooth (CS 5), which I use regularly for Duane's World. During the installation, an error message came up stating something like "Unable to continue - close the following applications: AdobeResourceSynchronizer". I searched for a while and did not find any application with such a name but did find the process.

If you run across this issue on a Mac, launch the "Activity Monitor" (it is under /Applications/Utilities/Activity Monitor.app). By default, the activity Monitor will only show Active Processes and you will not see the AdobeResourceSynchronizer. In order to stop it, you have to select "All Processes: (Step 1 below), then highlight the process "AdobeResourceSynchronizer" and then hit Quit Process (Step 3 below).


After that you should be able to resume the installation of Soundbooth.  When done, restart your Mac and the AdobeResourceSynchronizer will heal its wounds and restart.

Tuesday, April 19, 2011

Flash and the City - NYC Better than Ever!


This year once again I will be speaking at Flash and the City in New York, June 9-12.  This year I will be teaching a 6-hour hands on code camp for anyone wanting to become a Flex or AIR developer.  

The event website is here.  Please register early to ensure you get a space.
In addition, Flash and the City will be part of Internet Week NY, a very popular and highly marketed festival that attracts citywide attention. Internet Week is a week-long festival of events celebrating New York's thriving Internet industry and community.   Internet Week New York is presented by the International Academy of Digital Arts and Sciences in cooperation with the City of New York and The Mayor's Office of Media and Entertainment.


Monday, April 18, 2011

Extending LiveCycle ES 2.5 for Java Developers

The full courseware that Scott MacDonald, Gary Gilchrist and I delivered during MAX 2010 is now available online.  Anyone may use this material as a self-paced tutorial to understand how Java Developers can extend the native capabilities of Adobe LiveCycle ES.

The course is available as a ZIP file here (right-click and then select Save target as ...")

http://www.web2open.org/courses/LCES4JavaDevs-CourseArchive.zip

This course covers the following topics:

Extending LiveCycle ES for Java Developers

TABLE OF CONTENTS
OVERVIEW
EXERCISE 1: UNDERSTANDING CUSTOM COMPONENTS

EXERCISE 2: DEVELOPING THE CUSTOM COMPONENT .
Task 2‐1: Start Eclipse and create a new project
Task 2‐2: Add the required Java library files
Task 2‐3: Defining the service interface
Task 2‐4: Defining the service implementation
Task 2‐5: Defining the component XML file

EXERCISE 3: DEPLOYING YOUR COMPONENT
Task 3‐1: Package your component into a JAR file
Task 3‐2: Importing the component using Workbench ES2

EXERCISE 4: USING THE COMPONENT WITHIN A PROCESS
Task 4‐1: Create the EncryptManyDocuments/EncryptManyDocuments process and invoke it from
Workbench.
Task 4‐2: Programmatically invoking the EncryptManyDocuments process.

Solution code is provided as well as extra notes on the code for the programmatic invocation: 

Friday, April 15, 2011

New Open Source Mobile Application

This mobile application demonstrates how to retrieve XML data from a server, return the results, and work with the data objects and display them.  There will be a video posted on this blog post very shortly with the instructions for building it along with best practices.  In the meantime, you may download the source code directly from http://www.web2open.org/adc/XMLService.fxp (On a PC, right click and select "Save link as..."; on a MAC, control-click and select "Save link as...").

Now for some words of caution.  First, loading XML into a mobile application is generally a bad idea.  It is far better to use AMF with a 3-tier architecture (hello LiveCycle Data Services!!).  Nevertheless, small XML files can be worked with in this manner!  Enjoy.

Tuesday, April 12, 2011

One Most Excellent book on Ontology Science

It is a pleasure to be able to write to announce what I consider to be the premier book on
the Suggested Upper Merged Ontology (SUMO).  I also wrote the forward for this book and thought I would share it via this blog.  This is a great practical guide to applied ontology projects. Click on the book to see the TOC and to purchase!



Normally within the forward of a book,  writers use generic terms like “fascinating” and
“intriguing” coupled with an array of positive compliments. After all,
the purpose of a good introduction is to set the stage for the reader in
a manner that the reader is highly motivated to read the rest of the
book. While tempted to follow this scripted behavior, I found myself
wanting to take an alternative route for the forward.

Before talking about the book itself, I would like to introduce the
author. My first personal experience with Adam Pease was at an industry
event around 2003 where we sat together on a panel and discussed the
impact of semantics on various industry standards. I was intrigued by
Adam’s knowledge and his enthusiasm to share with others yet there was
something else that made him easy to listen to. He carried with him
wisdom, yet he did not force it upon those in the room. He merely
revealed the knowledge, bit by bit, as the conversation allowed it to
enter. This is very unique in a computer science discipline where
zealotry prevails. He modestly imparted his opinions on the roomful of
people only to the degree it answered the specific question before. This
inevitably brought up another question that Adam usually had an answer
for too.


The result of this behavior was quite infectious. Adam, Kurt Conrad and
I ended up in a late night sushi restaurant somewhere near Menlo Park,
CA discussing how to map SUMO concepts to Mandarin, Japanese and
Cantonese, how WordNet can reference SUMO and why First Order Logic
(FOL) constraints are generally a cool concept to have in advanced
computer systems. An upper-level ontology, such as SUMO, is a common,
shared conceptualization of a domain. SUMO itself, being an upper
ontology, conceptualizes our existence in our three dimensional,
sequentially temporal lives largely bound by gravity upon one major axis
(I think the geographical and geo-spatial extensions to SUMO actually
acknowledge the moon’s secondary axis of gravity which can be seen
manifesting itself as tidal behavior in large bodies of water). During
this discussion, the simple and beautiful truth came to me. SUMO, or
something akin to it, is one of the missing pieces of a large segment of
technical work I have done in my life. If it had been explained any
differently, I would have missed it. Adam’s delivery was the key for
understanding and seeing the value in ontology work. This missing piece,
the shared conceptualization, was the cause of many a failure to design
a proper XML dialects or the resultant mess the old Electronic Data
Interchange (EDI) formats represented. It was not specifically the SUMO
format that was lacking, it was the general lack of an upper ontology
that could provide the basis for mid level ontologies and other domain
specific metadata dictionaries or lexicons.


Up to that point, I had largely worked as a software systems architect
who inevitably ended up dealing with the meaning of some XML dialect.
Defining XML dialects for just about everything under the sun had been a
relatively popular activity in our industry for the 5 or 6 years leading
up to my meeting with Adam. During the entire time I had been in
standards meetings either creating a dialect, analyzing someone else’s
or thinking about software that could work with it, I had never seen
anyone approach the problems from a place of a common shared
conceptualization of the domain prior to embarking on writing the
language. In retrospect, the advent of XML has both benefited humanity
as well as stifling it by allowing people to create specific XML based
languages who could instead benefit from the discipline required to do
the formal modeling work using an upper ontology.


Before my work at Adobe, I had founded such a company, XML Global
Technologies, in 1997. This company proceeded to work with a wide
variety of XML languages and it was evident that reconciling the
semantics between data elements of those languages was a monumental
task. When XML Global was acquired by the Xenos Group in 2003, some of
the original founders and I began a new company called Yellow Dragon
Software in Vancouver, British Columbia. This company had a metadata
registry-repository where we attempted to work again on the
reconciliation of disparate semantics in XML languages. This effort was
Herculean and the need for an ontology was apparent. SUMO was the
logical choice due to its compact size and the fact it has been reviewed
and tested by multiple experts. When Yellow Dragon was acquired by Adobe
Systems in late 2003, I went to work for Adobe (where I still work today!) and have been able to
continue my research into ontology, semantics and enterprise
architecture in that capacity. SUMO has given me the basics for seeing
logic in a multitude of applications and the gaps where software vendors
like Adobe can benefit from the adoption of an upper ontology. Adobe’s
XMP (XML Metadata Platform) is in fact extendible by nature and could
embrace SUMO at some future stage. This is but one example of the
application of SUMO that would potentially be then used by those who
work with common software applications such as Acrobat and Photoshop.


SUMO gives those who use data modeling techniques a common footing to
stand on before they undertake their tasks. It provides a level setting
for our existence and sets up the framework on which we can do much more
meaningful work. SUMO provides order for one level of our chaos.


In 2008 I finished writing a book for O’Reilly Media on Web 2.0
Design Patterns with co-authors James Governor and Dion Hinchcliffe. We
wrote some material about the impact of semantics and ontology within
that book. One such part discussed the phenomena of folksonomy, a loose
and informal set of declarations about resources using largely natural
language tags. While professors and other academic types toil in the
abstract world of ontology, the general population races to set tags to
things. While not a formal approach to creating a semantic web, it has
seemed to work well amongst the multitude of sites implementing the
Collaborative Tagging (folksonomy) pattern


We felt that SUMO could potentially offer a huge amount of guidance to
folksonomies. Imagine folksonomies coupled to an upper-level ontology to
classify tag terms that represent multiple concepts? By mapping SUMO to
terms in WordNet, ambiguities are avoided in cases where words have
multiple meanings. Imagine searching for the term Washington. You would
get results for George Washington (a president), Denzel Washington (an
actor), Washington, DC (a city), the Washington Monument (a large
monument), Washington State University (a school), and more. If
folksonomies can be mapped in a similar manner it might be a valuable
mechanism to advancing semantic web interests. Of course, disambiguation
is only one of the benefits of using SUMO and there are hundreds of
other applications that can embrace it.


Now that I have covered the bases, it is time to bring about the
compliments for the book.  This is going to be short by contrast!


Chances are if you’ve already picked up this book, you have an immense
interest in the topic. This book represents the finest body of knowledge
on SUMO and will be a valuable reference for decades to come. It is a
pleasure to be chosen to introduce the book and it will remain one of my
nearest reference materials while I continue to work in the field of
computer science. I hope you share this view and become involved in the
official SUMO list server (at http://sigmakee.sourceforge.net) where
discussions on SUMO continue. Enjoy the book and keep it nearby for
reference for once you have crossed the chasm of knowledge, you will
start relating everything to ontological terms.

My final word?  If you are interested in this subject matter, you owe it to yourself to pick up a copy of the book and consider the sheer genius of Adam Pease.  You will not be disappointed.

Friday, April 08, 2011

Security Breach!

Today, I applaud Marriott for sending a notice that stated:


Dear Marriott Customer, 

"We were recently notified by Epsilon, a marketing vendor used by Marriott International, Inc. to manage customer emails, that an unauthorized third party gained access to a number of Epsilon's accounts including Marriott's email list. 

In all likelihood, this will not impact you. However, we recommend that you continue to be on the alert for spam emails requesting personal or sensitive information. Please understand and be assured that Marriott does not send emails requesting customers to verify personal information. 

We take your privacy very seriously. Marriott has a long-standing commitment to protecting the privacy of the personal information that our guests entrust to us. We regret this has taken place and apologize for any inconvenience."

Data breaches are inevitable.  This was not Marriott but a third party used by them.  I applaud Marriott for being timely and honest with their news.  This is what I call good customer service.  I will continue to use Marriott.  In fact, I just left one this morning in Mexico City and have another one booked for next month.


Monday, April 04, 2011

Flex Mobile Development - Transform Gestures

The example code below provides a quick look at how to register an event handler for TransformGestureEvent.TRANSFORM_ZOOM.

Line 11 adds the event listener to the BorderContainer (line 41).  The Transform event is passed to the onZoom function on line 14, which has a member variable of type Sprite.  By reading the scale of the event's scaleY property, you can enforce a minimum size as shown by the if-else statement on lines 17-26 and assign the new values.  Note that the minimum scale size this can go to is 1.  This is to prevent users from scaling the Sprite too small to place both fingers on it to zoom again.

The code may be downloaded from here.  You will need Flash Builder 4 and AIR 2.5 or later to run this.


Friday, April 01, 2011

Adobe Launches new CEM Software!


After being under the embargo until Mar 31, I can finally talk publicly about Adobe CEM!  Part of the next evolution of enterprise architecture, Customer Experience Management (CEM) is a principle that applies to the user’s experience over the complete lifecycle of their relationship with an enterprise.  Opposed to UX (User Experience), CEM covers more than one system.  Architects who apply UX principles often only work with one system or process at a time, hence are not able to gauge a customer's overall experience.  This covers a continuum of phases, which may be non-sequentially or even concurrently in effect including awareness, attraction, interaction, transaction, servicing, collaboration, and advocacy.  The result of a great customer experience is a positive advocacy while the result of a negative experience is a negative advocacy.

The underlying technology is built on a new markup declaration named UXML (User Experience Markup Language, a markup based on the W3C XML format.  UXML is also built off a new First Order of Logic (FOL) model that helps companies recognize where overlap in interactions occur.  Using this data-centric modeling approach, you might notice, for example, that your web-based forms are sometimes asking customers for information you already possess on them.  Not asking the customer for the same information twice again means a better experience for your customers.  This in turn makes them more likely to be positive advocates for your enterprise.

Another aspect of the core technology behind CEM is the SCHISM engine.  The Social Content Holistic Index Sharing of data and Metadata (SCHISM) helps enterprises reconcile data from several disparate systems or even non-system silos such as call center metrics.  The context engine helps preserve the true semantics of the data so that knowledge workers using the Complex Binary Shell (Complex-BS) have the correct data to serve customers in a way that will make them smile.

While this sounds all very confusing and abstract, the software is easy to install.  You simply insert the first DVD shown below and hit “install” and CEM will do everything for you.  Your customers will become rich, famous, and instantly good looking and thank you for it.   You will be rich, famous and featured in People Magazine as a direct result.  Everybody will be happy.



To find out more about this exciting product visit by the end of today, April 1: http://blogs.adobe.com/experiencedelivers/about-us/

Wednesday, March 30, 2011

Adobe MAX 2011 - Crowdsource Request!

Adobe MAX 2011 will probably once again be the best place and time you can be all year long to learn about Adobe LiveCycle ES.  We've already started assembling ideas for topics internally but I would really like to seek input from the LiveCycle Developer Community.  Specifically, please send me an email to dnickull at adobe dot com and tell me what topics you would like to see taught at Adobe MAX in Los Angeles, October 1-5, 2011.


Monday, March 28, 2011

Adobe MAX 2011!

Adobe MAX - Save the date!

This year's MAX will happen October 1-5, 2011, once again at the Los Angeles, CA convention center.  I will be there!

If you are not familiar with Adobe MAX, it is a once a year dream to be up close and in person with those who drive Adobe, from product management to engineers to sales & marketing. Adobe MAX showcases the latest tools and technologies that are shaping the future of digital experiences. Learn directly from industry leaders and Adobe experts and connect with peers. Make sure you get MAX updates as they are announced and sign up for the mailing list today.

Other action items:

Follow @AdobeMAX on twitter

Hit us up on Facebook

Follow @duanechaos on Twitter - (Hint - there may be some exclusive offers coming from my account!)



Friday, March 25, 2011

Government 2.0 Architectural Patterns

Having co-authored a book for O'Reilly titled "Web 2.0 Architectures", which largely focuses on patterns of things deemed to be "web 2.0", I have turned my mind towards specializing many of these towards government.

The scope for this work would be IT systems that provide services to citizens.  There are several concepts that seem to be no-brainers when you look at them at a high level. However, there may be red tape or other legislative or legal reasons why they cannot be simplified.

A white paper is in order, however here are some preliminary thoughts:

1. Please don't ask me for information you already have!  Governments should avoid asking their users for information they already have.  Practical:  I fill out income tax forms every year in which I have to enter data that is used to calculate my personal taxes.  The reality is that my government already has most if not all of this information.  My employer has to file my income with them, charities already have filed copies of receipts and the government knows exactly how much money they have deducted already for federal and provincial taxes.  Why am I being asked to enter that information into a form again?  Perhaps figuring out a confidential way to send me my completed tax return and then allow me to file "adjustments" would be more efficient from a user perspective?

2. Open Data.  The Government of Canada has recently made several sets of data open for the people who paid for the data (citizens) to access.  (http://www.data.gc.ca/default.asp?lang=En&n=F9B7A1E3-1).  I applaud this move and now we have a responsibility to help them specialize the way data is published at the next level.

3. Allowing multiple channels of communication to be reconciled.  The Canadian government again had a great program for electronic passport applications and renewals, which reconciled electronic forms data and "in person" interviews.  More government departments need to be savvy and adopt this sort of system.

4. Use of Social Media!  I've seen some government departments shun social media.  Sometimes this is based on a fear or perception that the conversations will be antagonistic towards their department.  Guess what?  It is far better to be part of a conversation than to be defined by it.  Get over your fears and get involved with social media.  Use it as a tool to figure out where the common practices are that annoy end users and how to best fix them.  Find out what is working well and what is not.  Find out what the public does not know and use social media to help convey solutions to us.  Use social media to get citizen input and ideas.  Vancouver City council has done this! (http://talkgreenvancouver.ca/).  This involves letting go of ego and recognizing that good ideas can come from anyone.

5. Electronic records.  The Ministry of Health in BC has started moving to EMR (Electronic Medical Records).  This is a huge step in the right direction.  I trust this far more than having all my records sitting in a single doctor's office in paper format.  

6. Use SOA!  Services to citizens are core.  If you can take services and allow 3rd parties to provide them, this could make all our lives simpler.  With this comes great responsibility for things such as ensuring records are not breached or files compromised, however I believe this can be done in a manner that serves the greater public interest.  The use of services could be applied to many contexts including Government to Government, Government to Citizen and Government to Industry (Business).

7. Protect my data!   Please take steps to protect my personal data from hackers or accidental leaks.  Adobe makes a great product called "Rights Management" (part of the LiveCycle ES platform), which can mitigate the impact of disasters, even after they have occurred.   

8.  Use technology to become more open and transparent.  Allow the decisions made, data available and rationale being closed voting to be publicly accessible.  This would be easy to implement by using a Robert's Rules XML schema to mark up data that would allow anyone to find out who attended meetings, who voted on various topics, and categories and more.  The public would love it more than finding out later or worse, being critical based on false beliefs.  Transparency should be a cornerstone.  Isn't this what democracy is all about anyways?

9.  Accessibility by Joe Average.  Typically, access to senators, heads of state and other high ranking public officials has been perceived as impossible for the average person.  Using the collaboration tools available via the Internet, governments can easily allow citizens to have better access to information and individuals charged with the fiduciary duties of public office or as public servants.   Products like Adobe Acrobat Connect could be used to have a citizens briefing once a week to allow individuals a platform to engage with government on various topics.  Obviously this wouldn't work in a general setting (e.g.: Obama allows any citizen to discuss any topic), however scoping this to narrow issues such as local municipal politic issues could have a huge impact.

Anyways, these are some initial ideas I had.  If you think they are bunk or have others, please leave a comment.


Tuesday, March 22, 2011

WebVisions Hands on Mobile Android Code Camp!

If you are in Portland, OR on May 25-27, you must come to the Oregon Convention Center for the WebVisions Event. WebVisions is a nationally recognized conference that explores the future of Web design, technology and business strategy.

I have been invited to give a hands on development course that will lead people through the process of building a mobile application that deploys to the Android and BBos platforms.

Title: Hands-on AIR 4 Android Development

Desc: This hands-on Boot Camp is for developers to build an applications targeting the Google Android O/S.  Adobe Sr. Technical Evangelist Duane Nickull will prepare attendees ahead of time to complete this course using their own laptops.  Attendees will learn the basics of AIR 4 Android/BlackBerry O/S such as:    

- basic application architecture
- creating a new application project and how to use the emulator    
- invoking services and binding result formats including some best practices    
- switching between multiple views    
- invoking system actions via intents    
- touch screen gesture control         
- packaging the output as *.APKs to publish to the marketplace

Due to the short time of this session, all attendees will be given source code samples and resources to take away for self paced learning.

Thursday, March 17, 2011

Android 50% Faster than iPhone on the Web?

Today I came across a blog post that tested load times between iPhone and several Android devices.  As written: (see original post on Wired)

"Android phones whisk users across the web more than 50 percent faster than the iPhone, according to a study that compared the two top mobile OSes performance when downloading web pages.


The study, conducted by mobile website optimization company Blaze.io, involved more than 40,000 downloads of web pages belonging to the Fortune 1000 companies. Android loaded pages 52 percent faster when rendering full web pages than the iPhone. On average, Android phones took 2.1 seconds to render non-mobile optimized web pages, while the iPhone took 3.2 seconds.


Android bested the iPhone on site loading time a whopping 84% of the time."

Having run Gingerbread (a.k.a. Android 2.3) for two weeks now on a Nexus One, my general observation is that it is indeed faster that both FroYo (Android 2.2) and iPhone iOS for loading pages but I am pragmatic.  I would urge everyone to be pragmatic about these results.  They only show a single test (loading a web page) and the environment did not appear to be properly controlled.   The headline is hence somewhat misleading and sensationalistic.   What would be better is to do these sorts of tests in a closed environment and break the results down into HTTP request creation, transfer time, request bandwidth, server processing time, response transfer time, response bandwidth and client side parsing and display (assuming HTTP get).  Isolating the actual HTML/JavaScript parsing, processing and presentation is the real critical factor in making such claims in my opinion.  This test should not be done by loading a Fortune 1000 company's website on the open web as this represents a large an uncontrolled factor for the tests.  A counter argument would be that 40,000 loads does establish a fairly reasonable chance that the test results are somewhat accurate but no one can guarantee that the server itself was not busier when the iPhone requested the pages.  Let's look at what is behind each side of this competition.

iPhone's Safari also uses the WebKit open source browser engine, the same code base as Google Chrome and the Android browser (according to Wikipedia).  To me this seems somewhat relevant information.   WebKit's JavaScript engine, JavaScriptCore, based on KJS, is a framework separate from WebCore and WebKit, and is used on Mac OS X for applications other than web page JavaScript.  Unlike iOS, Android is open so anyone can add a browser to the marketplace.  I can write a basic web browser that supports CSS, AJAX, JS, and some HTML5 features in about ten lines of code using Adobe AIR, which in turn uses the Webkit implementation so if I choose, I can have the same browser as the iOS more or less.  Nevertheless, Android offers many different browser choices.  Some of these are:

Dolphin (hardware acceleration for Honeycomb (Android 3.0+))
Opera Mini (claims to be fastest)
Skyfire (supports Flash, 2,000,000 downloads)

and many more.  Here is an article on an Android browser shootout.

My second phone, the Samsung Galaxy S, runs Android 2.2 and is very stable.  The ability to view Flash is an important factor for me for both of these devices, which is why I gave my iPhone to my sister.  The one item I do miss is the iTunes Synchronization however I am debating getting out of the iTunes/Appstore altogether and find a replacement.  Any recommendations for  OS X music management software would be appreciated (please leave a comment).

The long and short of this is that while my perception is that Android is indeed faster at loading web pages, the key thing that wins my approval is multiple choices.  YAMMV! *

* Your actual mileage may vary  

Wednesday, March 16, 2011

How the architect looks at Customer Experience (video)

What does Customer Experience Management really mean, abstract of how it is implemented? THis blog post should really be entitled "CEM for Architects".   This was what I considered when being interviewed in Barcelona earlier this year. The goal was to explore what "Customer Experience" means in terms of how enterprise architects might think.




The idea of "user experience" itself is not new. Most competent architects consider the users' perspectives during any interaction with a system or systems they are designing. Customer Experience is unique and represents an emerging discipline of modern enterprise architecture covering many aspects of the logical, data and process views of any enterprise, spanning more than one system. Customer Experience (CX) is the sum of all experiences a customer has with a supplier of goods or services, over the duration of their relationship. This duration may cover several unique stages including awareness, discovery, attraction, interaction, purchase, use, cultivation and advocacy. CX as a term covers multiple contexts (the lifetime of a relationship down to an individual transaction. (Source = Wikipedia).

To give a more concrete example, an individual may have a history with an enterprise. This history may encompass several of the stages mentioned above including discovery (data may be stored in website interaction analytics, browser cookies, and tracking), interaction (data may be stored in CRM systems), use (data may be stored in the state of a business process instance), and advocacy (data may be stored in tweets, Facebook posts, and other social media).

The question that looms before any architect is how to reconcile the various data and historical interactions so your enterprise can deliver the best possible experience. Even the term "Customer" here is probably too prescriptive. The experience factor can also cover users that are within your own domain such as employees. Now factor in that this customer may have multiple concurrent channels of communication open and the problem comes into focus very quickly. How can you reconcile social media trails with CRM data? How can the telephony system be reconciled with the users' web browsing data and process interactions? The graphic below illustrates this challenge.



The idea of converging the data required in any specific channels of interaction so you can deliver that experience is really powerful in terms of the experience it can deliver. If I call a company and the person who picks up the phone can immediately have full access to all my data, chances are high that they will serve me better.  The more they know about me, the less they have to query me at the very least.  It always agitated me when I would phone the credit card company and had an automated attendant ask me to key in my CC number, only to be forwarded to a human operator who had no visibility of the data I just entered, so I had to provide it to them again (or having my call forwarded to another department of an enterprise and having to repeat an entire conversation from start to finish).  An important thing to note here is that companies that successfully mitigate this have a huge advantage in garnering customer loyalty over those who ignore it.  Even though customers may not be able to distinguish the exact reason one company offers a better experience over another, the experience will be felt.

So where does Adobe fit in?

The development of LiveCycle ES as a service oriented platform, essentially what the industry calls an Enterprise Service Bus (ESB), enabled data to be aggregated from various sources and gave enterprises the ability to access data and orchestrate data and services into processes, both short and long lived.  The acquisition of Omniture gave Adobe the leading web analytics suite.  The acquisition  of Day Software completed the technology for delivering CX and integrating social media channels however the integration of these technologies will really shine in the next evolution of the LiveCycle ES platform.  Additionally, the acquisition of Demdex provides the next evolution of our enterprise platform with the ability to enable clients to aggregate and manage their strategic data assets as well as make data actionable in a broad range of third-party advertising technologies.  Even the latest beta release of Flash Player 10.3 is rife with new media measurement features that allow deeper access of analytics data.

The mainstream press seems to have missed the agile Adobe acquisitions in terms of where the company is heading and what it will be able to deliver to enterprise customers in years to come. Some analysts like RedMonk, Forrester and, Gartner seemed to have taken notice though.  We've quietly built ourselves into a superpower in terms of being able to deliver CX to our customers.

To sum this up, architects MUST consider the view of overall customer experience over the lifetime of the relationship between their enterprise and the customers.  The alpha architects will need to consider how to successfully integrate RIA data with back end systems and distributed web data, sometimes in the form of a trail of digital breadcrumbs.  When they consider the many aspects and challenges of this view of architecture, it will become apparent who has positioned themselves as the leader.

Enjoy the video!






Friday, March 11, 2011

Flash Player 10.2 for Android release date set

OK – earlier this week we announced the “Beta” release of Flash Player 10.3.    Today we are announcing that Flash Player 10.2 (for Android) will be available for download via Android Market on March 18 (one more week). This new release of the mobile version of Flash Player 10.2 is a production GA (General Availability) release for Android 2.2 (Froyo) and 2.3 (Gingerbread) devices that meet the Flash Player hardware system requirements.  What is very cool is that this is also initially a beta release for Android 3.0 (Honeycomb) tablets.


Adobe has been working very closely with Google to ensure tight integration between Flash Player 10.2 and new OS and browser capabilities in Android 3.0.  The March 18th beta release of Flash Player 10.2 in conjunction with Google’s first system update to Android 3.0  (version 3.0.1) currently underway for the MOTOROLA XOOM™ will deliver the first phase of our work together.


Next week's release will feature Stage Video which will provide a superior playback experience for video on mobile devices.  There are also some other changes but the majority are deeper under the hood.  

Wednesday, March 09, 2011