Wednesday, December 23, 2009

RIA Architectures: An Exclusive Interview with Adobe's Duane Nickull

DZone recently caught up with me to discuss RIA's Web 2.0 and SOA as well as other trends in enterprise architecture. In this interview, recorded at Adobe MAX 2009, we revisit the notion of 'Web 2.0' and discuss the architectural patterns behind it in the context of the O'Reilly book "Web 2.0 Architectures". We also discuss some of the new architectural and human interaction patterns that are shaping the way in which we build Web applications today as well as some of the new Flash authoring tools for the iPhone, the Open Screen Project, as well as the impact HTML 5 will have on Flash adoption.

The complete transcript of the interview has been provided here.

Saturday, December 12, 2009

12 Ideas for an Environmentally Efficient House

I got an email asking about solar and wind options for housing. Since I am planning to build an energy efficient house north of 49 degrees (in Canada) and have done a lot of thinking on this topic, I decided to share the following and now make it available as a blog post.

1. House design is essential. I plan to re-route all hot air evacuations (bathroom fan, kitchen fan, clothes dryer (if we get one) exhaust etc.) into either a thermal bus or to tie them directly to a year round greenhouse to use the thermal energy for growing food.

2. IMPORTANT: Always do the “Net” energy calculations. For example – having cheap, Chinese made solar powered, LED lights to power your walkway instead of investing in a proper system is a waste of time and an affront to the environment if you have to throw out something that broke in one year and took 25 times as much energy to make as it saved. For example, I bought these little solar powered lights at Home Depot, which lasted only about 250 days. When I took them apart, I discovered the culprit – a single AA rechargable battery was the only power source. These usually do not last more than 250 charging cycles and if you connect one to a daily charge routine, it will burn out in less than a year. Net result: I actually polluted more by buying cheap goods to save energy.

3. I also plan to use wood heating with a proper catalytic converter (avoids most carbon pollution) to warm the house on winter days as we have ample wood for cooking etc. The house we are choosing has a small horizontal footprint and is 2.5 stories high, which allows thermal energy to be more efficient.

4. I'm putting the shower and kitchen on the top floor then using a diverter valve to reroute the entire waste water into the flooring for either keeping the house cool in summer or heating in the winter.

5. After the electrical inspectors give the final OK, I am moving to 12 or 24 VDC power for all lighting in the house and possibly some USB outlets. All lighting will be 12/24 VDC LED indirect. This saves tons of energy over trying to convert a 12/24VDC battery array into 110 AC (or in your case 220 VAC, which would be less efficient). Most solar and wind systems use 12 or 24 VDC as the charging output. Energy can neither be created nor destroyed and it is a lossy process to convert energy. The biggest culprit is usually thermal energy as an unwanted byproduct (think of hot transformers). If you must convert, try to capture the byproduct (place the converters in a place that needs heating).

5. My wife and I are investigating thermal heating systems. These seem to make a lot of sense as they can be used in both the summer and winter. In North America, there is an relevant organization that has members; there might be a similar system in the UK -

6. In order to use wind energy in a micro manner, there are lots of manufacturers and the kits are not that hard to figure out. The first thing you have to do is check out the MET office to find out if it will work in your location. Wind speed must be at a minimum of 5 metres per second to work. The Canadian map showed us that in our case, we have sufficient wind.

7. Solar kits are also not that complicated. Study up on it and note the major components – collectors/charge controllers, battery array/inverters or converters then do the calculations. You have to figure out what you want to use the property for before you can plan a system. In our case, assuming we only go there on the weekends, we can go with less collections and a bigger battery array as the battery array will recharge during weekdays. If we lived there full time, we would have to use more collectors. Most manufacturers of repute (Siemens, etc/) will have all the calculations available. There are some good resources online for this too. Here is one:

8. Look into evacuated solar tubes. These work in very low temperatures (as low as –40 degrees Celsius) and can deliver off grid water at 65 degrees Celsius. They work by having no gas (a vacuum) in between the outer tube and the inner collector. This collects energy radiated from the sun without the atmosphere moving the heat away and harvests it via the manifold. These can take care of big things like hot water tanks.

9. If you use your property for weekends only like me, you might want to consider a Linux micro kernel running a small routine that can be used to “wake up” the house. For example, if you have a grid tied-hot water system, you could invoke a cron job that turns your hot water heater on and off remotely so you’re not paying for energy you don’t need. Another option is to move to a EU style JIT hot water heater (tank-less system).

10. For certification, The SRCC (Solar Rating and Certification Corporation) is the key solar collector certifying body for the US and Canada. Make sure everything you use has passed the minimum criteria for this.

11. My thoughts on this are that when I buy my supplies, I want to do it with a company that has been around, been certified and is backed by a manufacturer with a warranty and good history, and someone who has a physical office I can identify and walk into. Too many snake oil vendors on the web.

Thursday, December 10, 2009

50 Free Citrify Licenses!

Remember - you heard this here first! My buddy Zee sent me an email and offered 50 free licenses (a $39.95 value), to the first 50 people who go to this URL:


Citrify is photo editing software built using Adobe AIR. It runs on Linux, Mac and Windows. Very cool use of AIR!

Submit the form with this promo code in the message body: duane1209

Here are some screenshots of our key features:

Here is more information about our team:

Thursday, November 26, 2009

Flex Builder Linux Alpha 5 release

The Flex Builder for Linux alpha bits posted on Adobe Labs have been updated to extend the hardcoded timeout period. The current FB Linux Alpha 4 product will expire on Dec. 1st, 2009, so if you are currently using Flex Builder for Linux be sure to download the updated Alpha 5 bits from Adobe Labs prior to Dec. 1st. There are no changes to the functionality of the product in these new bits; however they have been tested on later versions of Linux distros. Please see the release notes posted on Adobe Labs for complete details.

Tuesday, November 10, 2009

How to deploy Axis2.war to JBoss 5

In order to use LiveCycle Data Services 3, I decided to upgrade to JBoss 5. When I attempted to add in the axis2.war file to the {JBoss_Home}/server/default/deploy directory, I got a whack of errors when I started up the server. The main complaint was that the server barfed up the “Failed to create a new SAX parser” and several subsequent errors. The issue is that there are older versions of certain jars within the axis2.war file that won’t work and cause a java.lang.ClassCastException. In particular, the org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

So how do you solve it? It is not too hard but a bit tricky. First, open up the axis2.war file. On Mac OS X, you can do this by using Just navigate in finder to the directory containing axis2.war, control-click, select “Open with…”, and then choose ~/Applications/ This will expand the WAR file in the same directory.

Within the directory, there are two files you have to get rid of. I first tried to delete xml-apis-1.3.04.jar and xercesImpl-2.8.1.jar thinking that should work. This is shown below.

It actually did but lead to another problem (later). To get all the files back into a war, you have to do two things. The first is to use the command "jar -cvf ". Since I wanted to rename the output to axis2.war, I navigated to the directory holding the META-INF, WEB-INF, etc. files and rant the command "jar -cvf axis2.war *". This made the war file, which is essentially a *.jar file.

After this, on a Unix-based system, you have to change the permissions to ensure the file is usable by the app server. Use the chmod 775 command for that as shown below.

Figuring I had this problem licked, I started up the appserver. It started fine, however when I went to navigate to the http://localhost:8080/axis2/ URL, I got another error. This time is was a mismatch in impedance between the JSP servlet jars. The error comes out as "The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory". The problem is that the build of axis2 I downloaded had an older version that did not have the same method. Once again, to rectify this, open up the axis2.war file and remove another file called "servlet-api-2.3.jar". Repackage the war file and chmod it so that it is executable by the app server.

JBoss 5 should start up perfectly and you should now see the happy axis page when you navigate to http://localhost:8080/axis2/ as shown below. Problem Solved!!

Sunday, November 08, 2009

Flash Builder 4 Tutorial - AMF

This tutorial is from Adobe Developer Connection and it shows how to use Flash Builder 4 beta 2 with BlazeDS AMF endpoints. The concepts are simple and if you download and start up the Vancouver build of BlazeDS (here), you can run this. You will have to ensure you have Java installed and configured properly as described in this tutorial. Have fun! This project has to be built from scratch as the source code will have paths specific to my system.

Wednesday, November 04, 2009

Video Tutorial - Flash Builder 4 Graphics

This video shows how to use the MXML syntax and the graphics package in Flash Builder 4 to create a rectangle using the new Spark graphic packages. This is part of the new fx package for declarative graphics. You can use Rect or Ellipse to make most shapes. A circle is a specialized type of ellipse with a constant radius, a line is a Rect with a very small value for one of the thicknesses, and a square is a Rect with 4 equal sides. As with all of these tutorials, if you want the source, email me: dnickull at adobe dot com.

Tuesday, November 03, 2009

Best Duane's World Episode ever

Thanks to the great acting of Marc Thiele, Serge Jespers and Tom Krcha, this turned out to be a great episode. The code and tunes bits involve Marc's German Metal band Spoiler (well worth checking out) as well as Flex 4 Data Paging using PHP on the back end.

Monday, November 02, 2009

Fastest Broadband Service in the UK?

Ahh – life as an evangelist. Conferences, fun, parties, music, snowboarding, code camps, cutting edge software *bla-bla-bla* not enough words for the fun I have in my life. Lately, I’ve been working in the UK quite a bit and want to get all the comforts of home. I’ll be there again Nov 7-11, right after my stint at SAP in Walldorf. As an Adobe Evangelist, working remotely is hard. I often forget to bring files with me or download software from a high bandwidth site. Last Thursday while waiting at the airport, it really sunk in. You can’t just depend on most Internet companies to provide a good quality of service. Fifteen minutes to upload a simple blog post really sucks. When you forget the latest build of LiveCycle ES and try it over a normal wireless while VPN’d, forget it! At over 2GB, it just doesn’t work.

When I travel for Adobe, I expect some minimal comforts. Good hotel, good food, good car (if applicable) and more. Good Internet is the least I expect so I set out on a quest to find the best broadband in the UK. Finding a good high bandwidth hotspot is hard though. Nevertheless, my googling fetched an availability checker. All you do is hit in your postal/zip code and get an immediate response with the best deals and offers for broadband service for individual ISPs. The availability checker coughed up a list of multiple, fast broadband connections, prices, terms etc. I checked out a broadband comparison between ISPs, read a couple of reviews. Finally found one that suits my needs (namely does not compromise on the speed).

If you live in the UK or are passing through for a couple of days, you may want to try the broadband availability checker.

Monday, October 26, 2009

Nokia Sponsors "Web Professional Minute" with me

Here is a very short interview I did with Bill Cullifer (always a treat to work with him!) during the recent Adobe MAX event in Los Angeles, CA. The entire interview can be heard or downloaded here. Thank you once again Bill!

Saturday, October 24, 2009

A tribute to my Great Uncle - one of the smartest people ever!

This is reprinted from the memorandum article from UCLA. Kenneth MacKenzie was my great Uncle and one of the world's greatest scientists. He came from very humble beginnings and taught himself a lot of what he knew. I plan to write a punk rock song about him as he was far more punk that Blink 182 ever will be.

Kenneth Ross MacKenzie
Professor of Physics and Astronomy, Emeritus
Los Angeles

Kenneth Ross MacKenzie, who made contributions to nuclear physics, particle accelerators and plasma physics, died July 3, 2002 at age 90, following complications resulting from a series of small strokes, at his home in Los Angeles, California.

Ken was born in Portland, Oregon. The family moved to Victoria, British Columbia when he was 10 years old. He received bachelor’s and master’s degrees from the University of British Columbia, and began further graduate study at the University of California, Berkeley, in 1937.

The longstanding vacancy in the periodic table at element 85 ended in 1940. Carson, MacKenzie and Segre, in the Physical Review, reported "Artificially Radioactive Element 85". They bombarded Bismuth-209 with alpha particles to produce what was suspected to be element 85-211. Physical, chemical and even physiological evidence confirmed the assignment. After a reminder to do so, in a 1947 Nature article, they named the element "Astatine", which means unstable in Greek. All 31 of the isotopes of Astatine are unstable.

When Ken began working in the Radiation Laboratory, the 60-inch cyclotron was nearing completion. He became involved with the radiofrequency (RF) system which produces the D-voltage. With this beginning he became an authority on RF systems. He made a major contribution to the design of the system for the 184-inch cyclotron which was completed in 1947. It was the first machine capable of producing mesons. He also made significant contributions to the system for TRIUMF, the meson factory which was completed in 1974. RF systems can be temperamental. Ken had an uncanny knack in getting them to perform properly.

Ken contributed to the development of cyclotrons from day one. He was in Berkeley when the first tests of large-current Uranium mass spectrometry were made in late 1941. He participated in the full scale tests which were made in the recently completed 184-inch magnet, beginning in mid-1942. An accelerating voltage had to be held constant with great precision. The system developed, involving RF signals, is described in a chapter which he contributed to a book in the National Nuclear Energy Series, Manhattan Project. Ken also went to Oak Ridge where he participated in the process of getting the production plant into operation.

In 1964 Ken wrote a paper titled "Space Charge Effects and Cyclotron Beam Enhancement." Cyclotrons had been in operation some thirty years and this effect had been overlooked. Near the center of a cyclotron there can be appreciable loss of particles which are near the surface of the circulating current due to repulsion by those particles within the body of the beam. Once the effect was recognized, steps could be taken to reduce it. As a result, several large synchrocyclotron laboratories were able to increase their research output.

McMillan and Veksler, during World War II, predicted means of increasing the upper energy limit of cyclotrons. The first test of the proposal was made in Berkeley in 1946. The 37-inch magnet was modified for the test. Ken participated, not surprisingly, in the design of the RF system, which now involved frequency modulation. The prediction was confirmed.

After World War II, UCLA was interested in establishing a program in nuclear physics. It was decided to move the 37-inch frequency-modulated cyclotron to UCLA to begin the new program. After a year at the University of British Columbia, Ken joined the UCLA faculty in 1947. Over the next 10 years he and his students performed positron-electron scattering experiments, stopping power measurements, precision range-energy relationships and a final increase of the "37-inch" energy to 20 Mev protons.

In about 1960, Ken initiated the UCLA Department of Physics program in experimental plasma physics. Over the next 15 years, with various colleagues, he published some 20 papers in this field, many involving various aspects of large quiescent plasmas. Early on, Ken and his students lined the walls of a vacuum chamber with permanent magnets of alternating polarity to suppress plasma electron losses. "MacKenzie buckets" are now universally used as plasma sources. He initiated an introductory undergraduate course in plasma physics and an accompanying laboratory (which used a restaurant size cooking pot as an ion bucket). He invented simple physical pictures for a number of plasma wave phenomena usually described in complex mathematical terms.

Ken can be given much credit for the impressive status of experimental plasma physics at UCLA today. Studies of plasmas in the ionosphere (Alfred Wong); the physically largest Electric Tokomak (directed by one of Ken's students, Robert Taylor); and physically large plasmas for wave studies (Reiner Stenzel and Walter Gekelman) are examples of important work in progress.

For a period of about two years Ken was the president of a small company, Meva Corp, which was formed to build cyclotrons. After producing one for an undergraduate laboratory at Pomona College, the company was sold to Hughes Aircraft.

After retirement, Ken continued a long standing interest in Special and General Relativity. Some results are described in an unpublished monograph titled Einstein's General Relativity in Three Dimensions. He also wrestled with the dark matter enigma.

Ken made very significant contributions to the Department. In a broad sense, being one of eight new faculty appointments following World War II, he participated actively and fully in every aspect of the Department's development. Over the years he saw to it that the electricity and magnetism laboratories were kept up to date. He introduced the plasma physics curriculum. He took the course in “Physics for Non-Science Majors” seriously, devoting a great effort to make special relativity understandable. In the mid-70s he served as chairman.

What kind of a physicist was he? He could of course use mathematics to formulate and solve problems. Beyond that, he could see through the most complex situations to their conceptualization and solution. As a person, he was gentle, kind, understanding, pleasant and modest to a fault. He rarely, if ever, raised his voice. He had a considerable range of interests outside of physics, both physical and intellectual. Verna, his second wife whom he married in 1981, gave him great care during his decline. Other survivors are his children, Robert, Maryann and Wallace. They miss him dearly as do all who knew him well.

Thursday, October 22, 2009

New Video - Blitzkrieg live by 22nd Century

Thank you to Jason Alby for sending this one in!

San Jose Parking ticket scam?

I get the feeling that there are some crooked public servants policing the streets of San Jose, CA issuing parking tickets. Now don't get me all wrong before you judge. I have received parking tickets in the past. Plenty of them. I paid every single one of them because I deserved them. I have only fought 2 tickets that I can remember and both successfully (one was in error, another relied on a public servant judging my car too short for a "tall vehicle only" stall). I'm not the guy to cry over a simple ticket, except in this case.

What happened in San Jose, CA in July 2009 is an illustration of how flawed parts of the US justice system are. After a recent business trip, I was surprised to get a letter from Hertz in the mail claiming that I had received a parking ticket. My surprise came as the car had been driven from San Francisco to San Jose directly to the Fairmont valet stand and parked until the day I left. The day I left, I picked up the car and drove to return the car (after refueling) to the airport. The car was NEVER parked for even a second on any city street while in my possession. The valets also attest that it was parked underground the entire time.

My first impulse was to suspect that the valets had taken the car out but when I examined the time, it turns out that was not possible. Rather than repeating the facts, here is the letter I wrote to the City of San Jose:

"Re: Citation Number 90018947

Dear Sir/Madam:

I am writing to dispute a parking citation apparently issued to a car I had rented. This alleged violation was stated to have occurred on July 23, 2009 on or around 9:49 AM at or nearby South 125 Market Street. The vehicle in question was rented to me by Hertz and was in both my possession as well as the possession of the Fairmont Hotel Valet staff. It was never parked where the incident allegedly took place and I am writing to ask you to formally review this ticket and to formally dispute this matter.

I first saw the violation notice upon my return from a trip to Germany the week of September 14, 2009. I have enclosed a photocopy of my return flight boarding pass as per our conversation.

On the morning the alleged violation took place, here are the chronological sequence of events:

9:25 (Approximately) – I called the valet service to request the car be ready for me. They informed me it would be available in the underground parking lot of the hotel (NOT on the street level).

9:36 AM – I check out of the hotel via the front desk. I have attached a copy of the email verifying this from the hotel manager. I immediately walked out the south door to grab breakfast.

9:38 AM – I paid for my breakfast after ordering a toasted bagel. The clerk put the bagel into the toaster. I have attached the receipt for your perusal. The original is on file with Adobe systems as part of my expense reports.

9:44 (Approximately) I received my order and started to eat it.

9:47 (Approximately) I finished breakfast and walked to the valet station and took possession of the rental vehicle. You can verify this by requesting the video footage from the Fairmont Hotel.

After taking possession of my car, I drove directly out of the hotel parking lot, stopped at the red light to turn towards the Park Avenue, then proceeded to the 101 freeway via Guadalupe. I drove directly to Burlingame where my next stop was recorded before returning the vehicle to Hertz at San Francisco Airport. At no time did I stop or park this car. At no time did anyone put a parking ticket on the car. I was in the car the entire time. You can verify this by requesting video footage form the front facing cameras from the Fairmont hotel.

9:49 is the time of the alleged parking violation. The car was never parked.

10:27 (Approximately) I had stopped at the Burlingame gas station (34.7 miles from the hotel) to refill my rental car before returning it. I arrived, walked inside, provided $40 cash to the attendant, went back outside, fueled the vehicle, then returned inside to pay. To cover the distance between the Fairmont Hotel and the Gas station, the calculations reveal a person averaging 45-50 MPH would take approximately 45 minutes to cover the distance. At 60 MPH, a person would cover 45 miles in the same time. Keep in mind the time – post rush hour on a weekday on the 101 and the fact there were traffic lights at each end. 45 minutes is probably a BEST CASE scenario. It is highly unlikely anyone could make the trip faster, which is what would have been required should parking a car be included.

10:33 I paid for the gas AFTER refueling. The receipt (enclosed) shows a time stamp of 10:33 AM July 23. It took approximately 5 minutes to refill and the fact this was in post morning rush hour traffic.

~10:50 The car was then returned to Hertz at SFO.
I never stopped anywhere during this trip as I was focused on making my flight to return home to my family.

I also took the time to contact the hotel to see if perhaps one of their staff temporarily parked the car outside on the street. They reviewed their security tapes and have verified the car was only in the hotel basement. In any event, they store the cars underground in the valet parking area so it would not have been on the street.

You can see why a prudent individual might question the validity of this ticket. I wish to ask you to please investigate this matter further and let me know what you can find out.

I also hereby swear and will swear under oath that I did not park the car anywhere on my trip to the airport, other than to stop at red lights. I certainly would not have picked up the car only to park it somewhere on the same block I had just walked past. It does not make any sense.


Duane Nickull"

Please note that copies of all of the receipts with the time stamps were sent back to verify the times. The result? I got a letter saying "We are unable to verify your claims the alleged infraction never occurred". Idiots!! First off, according to most law books, is the onus not on the accuser to prove the allegation? How can someone logically defend themselves from something they did not do? If I was not there, what possible evidence can exist to allow me to clear my name (other than receipts at the same time showing that I was in different areas, which I had sent)? It only shows that the city of San Jose parking enforcement division is staffed with simians who fail to comprehend basic logic. I really hope someone grasps this concept and can turn things around. How can the people of San Jose let their public servants drop to such a low standard???

If I had to try again to defend this, I guess I could start with the basic items that come to mind. First, there was NO PARKING TICKET placed on the car. Yes - this is true and was admitted to me by the city of San Jose. Apparently the person issuing the ticket was not able to place the ticket on the car. Hmmm - could this be a strong indicator that the car was never parked and was in fact in motion??

Second, perhaps we should examine this from a "what if" point of view. If I had forgotten something at the hotel and wanted to go back, what option would I take?

1. leave my car on parked on the street outside the hotel where it risks getting a ticket; or....

2. Give it back to the valets, who would look after it and not charge me anything for such a service as I had just paid them? I am a President's Club member at the Fairmont too.

My bets would be on number 2. Since the car was never parked, this is all moot anyways.

Third, would it be conceivable that some public servant in San Jose is issuing bogus tickets to rental cars as they drive out of the hotel driveway so they can fulfill their daily quota then simply lay around in the sun the rest of the day and not work, thus wasting taxpayers' money? Would that be a likely scenario?

I leave it for you to judge. In the mean time, I have a bitter taste in my mouth after realizing the effort and expense to fight this is not worth it and I have to pay.

It's the perfect system:

- Guilty until you can prove conclusively you are innocent (logically impossible).
- The cost of exposing the truth is far too expensive compared to the cost of admitting to do something you never did. (inconvenient at least).
- The truth will never be exposed since no one is likely to look into it.

Land of the free? I hope someone from the city of San Jose reads this and decides to investigate the person who issued the ticket.

I was not even allowed to discuss it with them. I have no rights in the United States of America. After all - I am a Canadian.

Wednesday, October 21, 2009

RIA Radio, Live at Adobe MAX - Duane Nickull - InsideRIA

Here is an interview I did with the InsideRIA guys (Garth, Zach, Leif et al). This is probably the best and funnest interview I have done lately. I hope you enjoy it. RIA Radio, Live at Adobe MAX - Duane Nickull - InsideRIA

Monday, October 12, 2009

New Video: 22nd Century performing in Los Angeles, CA

This video was shot Oct 6, 2009 when 22nd Century played at Adobe MAX 2009 in the LA Live Plaza. This was a great night for us to be privileged to perform at such a great venue in front of thousands of people. The song in the video is called U Generation, an assault on the lost generation between baby boomers and Gen X. The sound is totally raw (recorded on a video camera with one mic) but it turned out not too bad.

The first CD is starting to pick up in sales @ Only buy it if you really want to support the band. You can also download the 22nd Century MP3s from our MySpace (free). The CD offers far better quality in AIFF format.

Either way is cool with us. We don't do music for money but totally appreciate people who support the band via buying CDs.

22nd Century - U Generation (live) v2

22nd Century|MySpace Music Videos

Thursday, October 08, 2009

Video Tutorial - 3D effects in Flex/AIR in 5 minutes

This is a very focused video tutorial to help developers understand the basics of X, Y, and Z axis rotations of graphical components while programming in Flash Builder 4 (Flex 4 framework) and using AIR.

Tuesday, October 06, 2009

Adobe MAX Sleeper News? RIM!

While many people were focused on the iPhone announcement yesterday, a bigger story was emerging. Both Google and RIM not only joined the Open Screen Project, but RIM and Adobe announced they will bring support for Adobe's Flash Player to the Blackberry platform. This is a huge story for business users as RIM is still the SmartPhone of choice for many business users.

Via the OSP, 19 out of the top 20 mobile handset manufacturers are now collaborating with Adobe to integrate Flash technology into their devices. MAX's mobile story gets even better when you consider Adobe and Nokia are jointly announcing the funding of more than 35 multi-screen applications as part of the Open Screen Project Fund.

Now to go and teach the 4 hour AIR/Flex Boot Camp!

Monday, October 05, 2009

Flash - iPhone announcement.

So today at Adobe MAX a huge announcement came out. We now have special tooling that allows you to use the Flash Platform to build applications for the iPhone. Flash developers will be empowered to use their existing skills to construct applications for iPhone that can be distributed through Apple’s App Store. No promises but the betas of this (CS5) should be available by the end of this year.

This caps a long running stealth like program code named "notus" within Adobe. While we just announced this today, there are several apps available today via the App Store. There are details published at

Does this mean iPhone supports Flash? No. Apple has not yet announced support for Flash on the iPhone. So what does this really mean? It means there are hundreds of thousands developers who can use their existing skills to build iPhone apps via CS5. From a consumer/user perspective, these applications appear and work just like any other iPhone application. Users cannot easily determine which applications were built with CS5, native objective C code, or even using something advanced like Nitobi's PhoneGap.

Will we use this exclusively? No. Many developers use whatever makes them productive. Another major announcement today was the addition of an iPhone mobile client for Adobe LiveCycle ES. This was built using objective C. Developers who have ActionScript skills though will be able to build applications using a language and IDE they are familiar with and not be forced to learn another application programming language. This is huge IMO and will help both the Apple and Adobe developer ecosystems.

Adobe has not yet made any breakthrough WRT to getting Apple to put the Flash player natively on the iPhone. I don't work with the people who are having the talks but I get the feeling (mine - not necessarily the truth) that Apple and Adobe haven't made much progress on this front. I do know there are tons of people who want this so I am not sure what is going to happen. I have heard that much of the issue is licensing. By the same token, PhoneGap also ran into issues with licensing. I hope Apple listens to their developers.

I am going to build an application later this month to try it out. In the meantime, if you go out and build one, please leave a shout here to tell others.

Sunday, October 04, 2009

List of Adobe Evangelist Twitter handles

Adobe Evangelists (this list is not complete so please add yourself via comments and I will check back and update). List is filed in alphabetical order by handle (except Ted who likes to use non-alpha numeric characters).

@ashorten - Andrew Shorten
@Beatlejase - Jason Levine
@BenForta - Ben Forta
@duanechaos - Duane Nickull
@ddura - Daniel Dura
@garazi - Greg Rewis (Web Standards)
@gregorywilson Greg Wilson
@jlward4th - James Ward
@karlsoule - Karl Soule' (Video)
@LeeBrimelow - Lee Brimelow
@mcorlan - Mihai Corlan
@markadoherty - Mobile and Devices
@Mesh - Mike Chambers
@parkerkrhoyt - Kevin Hoyt
@pburnett - Paul Burnett
@rufusd - Rufus Deuchler
@RyanStewart - Ryan Stewart
@SJespers - Flash Platform
@_ted_ - Ted Patrick
@tomkrcha - Tom Krcha
@tpryan - Terry Ryan
@adrocknaphobia - ColdFusion

LiveCycle ES Pre-Conference Session at Adobe MAX

Every MAX is come with a belief that I will achieve at least 5 hours of sleep per night. Inevitably, the one last drink turns into two then suddenly it is 2:00 AM and sleep is limited to less than 4 hours. Normally I just roll with the punches but today I really wished I had been up an hour earlier to do the entire LiveCycle ES training. I missed the first hour. This class is nothing short of excellent!

The room is SRO with 80 strong in attendance. This session has more attendees than Russell Brown's Photoshop session! This goes to show that Adobe's enterprise story is stronger than ever and starting to really pick up in the mainstream.

Oh - if you're not coming to MAX, you can still get the materials from the course. Stay tuned here for more updates. Gotta get back to Workbench now.


Friday, October 02, 2009

Rules for denying people fun!

Surely a little breathing wouldn't hurt?? I guess you are expected to stand absolutely still and keep your eyes fixed straight ahead?? I really like how it starts out. Can you define "Enjoyable for everyone"?

Thursday, October 01, 2009

SmartForm from Avoka

One of the coolest things we are witnessing at Adobe is the community and ecosystem growth around LiveCycle ES. With major announcements just days away, I wanted to bring people's attention to a new entry from a well-established company called Avoka.

SmartForm Composer is a web-based Flex application that makes it really easy to build high quality forms. With Composer, you simply select one of the pre-defined Smart Templates, and you’ll end up with an intelligent and interactive Adobe XFA compliant PDF SmartForm that looks great, no matter what your design skills. SmartForm Composer makes SmartForm creation:

- Easier – people without programming skills can create them
- Faster – form creation time drops from days to hours
- Cheaper – driving SmartForm costs down by an order-of-magnitude

SmartForm Composer will be demonstrated at the Adobe MAX User Conference October 4–7, Los Angeles, CA. If you are planning to attend MAX this year, come and see SmartForm at booth number 434 for a demonstration.

For more information about Composer visit:

For video demos, please visit:

Wednesday, September 30, 2009

Flex/AIR Video Tutorial - working with Audio

This tutorial will show you how to build a simple MP3 player in Flex and manipulate an audio stream by coding play, pause and stop buttons. For the source code or project, please email me at dnickull at adobe dot com.

Tuesday, September 29, 2009

Pixel Mesh on "Why MAX"

Mike Chambers has been busy.

Thursday, September 24, 2009

Duane's World Episode 23 - Adobe MAX Part 2

Season II continues with part two of the special series on Adobe MAX. This episode features interviews at Adobe MAX with Bola Rotibi (Macehiter Ward-Dutton) and Steve Jones (Capgemini). Steve discusses using SOA patterns and Adobe AIR to increase user experience, something Capgemini has repeatedly excelled at.

The code and tunes segment features a new tutorial on Flash Builder 4's Wizard to connect to Web Services using the Flex 4 framework. (Flash Builder 4 is the new revision of the product formerly known as Flex Builder. Flex 4 is the new generation of the framework).

Thursday, September 17, 2009

LiveCycle Sessions at MAX Update

There are a lot of changes and a few surprises for this year's Adobe MAX in Los Angeles. The biggest and coolest of which is that the LiveCycle ES pre-conference session has SOLD OUT faster than Russell Brown's Photoshop session! Not to diss Russell (he is a very talented individual) but this really shows that LiveCycle ES is getting serious marketplace interest.

This blog post is intended to be an update to reflect some of the latest news. For starters, I want to highlight a sleeper session that I think will be really cool:

Harnessing the Value of User-Centric Applications

See how Deutsche Telekom is using Flex + Adobe LiveCycle in combination with its enterprise systems to streamline and improve HR communications with over 100,000 employees and retirees. Learn about Adobe’s vision for user-centric computing and see an in-depth demonstration that illustrates how the Flash Platform + LiveCycle ES2 together improve customer experience and employee productivity.

Why is this cool? Nothing tells a story like a customer use case. An independent third party who can share their triumphs with LiveCycle ES. I'm going if I do not have conflicts.

The LiveCycle numbers continue to grow, and we now have more sold out sessions. Yes, a VERY NICE surprise for us after 3 years of constant promotion.

LC Pre-conf training:


But in the famous words of Douglas Adams, "Don't Panic"! There are still plenty of sessions left. Just don't leave it too long if you don't want to have to wait until next year to find out why LC ES skilled developers are in super high demand. Register today!

LiveCycle Developer Sessions (repeat twice) with spaces left as of today:

What’s New in LiveCycle ES Next
Effective Form Design for Developers
How to Architect Adobe LiveCycle ES into your Enterprise Solutions
Understanding the Building Blocks of Adobe’s Solution Accelerator Program
Developing for Information Assurance with LiveCycle ES
LiveCycle Community Resources Uncovered

LiveCycle Developer Labs (repeat twice) with spaces left as of today:

Developing Applications using LiveCycle ES Workbench Next
The Next Generation of RIA’s in the Enterprise (UPDATE: JUST SOLD OUT!)
Advanced Process Design using LiveCycle Workbench ES
LiveCycle Guides Next – A Common Data Model Applied
Developing Enterprise Solutions using Adobe Solution Accelerators

LiveCycle Envision Sessions with space left as of today:

Harnessing the Value of User Centric Solutions
Enterprise Apps that Work the Way People Work
Next Generation Clinical Trial Apps
Business Value of User Experience
Partnering to Deliver User Centric Solutions

SOA and Services Camp Developer Labs with spaces left as of today:

LiveCycle ES for Service Orchestration (Hands on Lab)
Building AIR LiveCycle Desktop (Hands on Lab)

SOA and Services Camp Developer Sessions:

Enterprise Cloud Computing: LiveCycle Express
Adobe Services, SOA, and Cloud Roadmap

Flex/LC DS Developer Sessions:

High-Performance Real-time Messaging with Flex and LC DS
Introduction to BlazeDs and LiveCycle DS
Integrating Spring with BlazeDS  and LC DS

Flex/LC DS Bring Your Own Laptop lab:

Making Real-time data Come alive with Flex Data Services

Flex/LC DS Developer Labs:

Model-driven Development with Flash Builder and LC DS:
BlazeDS and LiveCycle DS in the Cloud

Flex/LC DS Pre-conf Lab:

Using Data Services to Power Flex Applications

Accessibility Developer Session:

Building Accessible LC Forms

ColdFusion Developer Session:

Making the most of CF and LiveCycle
Platform Roadmap: Flash Platform Servers and Services: 25

Register today! Come to MAX. Learn, drink, party!

Tuesday, September 15, 2009

Duane's World Season Two Opener!

The first episode of Duane's World Season II is out. This special two-part episode covers Adobe MAX in Milan, Italy, and San Francisco (will be featured in part 2) plus interviews with RedMonk founder James Governor. Code and Tunes features a tutorial on how to use BlazeDS to build a 3-tier architecture and invoke services using AMF from a Flex front end.

The interview with James is very cool as he is very modest about RedMonk's accomplishments. RedMonk has been voted a major force in the IT industry and has re-written a lot of the rules of how the analyst industry works in IT.

Lee Brimelow Adobe MAX promotion

Like Lee says - "It's about the beer!" I think I talked to that PR guy once. LOL!!!

Friday, September 04, 2009

Adobe MAX promotional offer

I have been given a code for anyone to use when registering for Adobe MAX 2009 in Los Angeles this year. For anyone doing business with or using Adobe technology, this is the once a year chance to meet the company in a fun environment and learn all about what we are focusing on, learn new skills and more. If you are registering between today (Sept 4) and Sept 11, you can use the following pass to save money.

Regular pricing is here:

Promotion code: DAN992

Discount Price $1095 for full conference and $1595 for LiveCycle

Expiry: The program lasts for one week and you must use the code by September 11.

Terms & Conditions

The following general restrictions apply to all special Adobe MAX 2009 registration promotions:

Offer good for new Adobe MAX 2009 registrants only. Offer good for Adobe MAX 2009 full conference pass registration only. Offer cannot be combined with any other offer, package or registration code. Offer expires at 11:59pm PST on September 11, 2009. Offer is not transferable and valid only for intended recipient. Void where prohibited. Terms and conditions for Adobe MAX registrations will also apply.

Instructions for Redeeming Discounts with Promotion Codes

Adobe MAX 2009 takes place October 4-7 in Los Angeles, California.

Learn more about Adobe MAX worldwide online at

Follow these steps to receive your Adobe MAX 2009 registration discount:

Step 1: Visit the MAX 2009 registration site at

Step 2: Select the button for "Yes, I have a promotion code."

Step 3: Enter promotion code DAN992

Step 4: Complete the steps for online registration.

Step 5: Come to MAX and party with us!!! Don't forget to come to the special MAX bash and see the band 22nd Century play live!

Wednesday, September 02, 2009

New Video Tutorial - Drawing Lines in Flex

This is an application based on the James Ward and Bruce Eckel book "First Steps in Flex". The tutorial shows you how to build a simple program to scribble all over your screen as shown in the graphic below. This is done by using the class to track mouse movements and then feeding coordinates to the graphics package and invoking the lineTo(event.localX, event.localY) method.

I never realized the irony until now that I had scribbled over the nice lines Eddie Van Halen had hand painted onto his EVH Frankenstein (the guitar I am playing in the photo below). This was by far one of the best guitars I have ever played in my life.

If you want the full source code for this, please email me dnickull at adobe dot com.


Tuesday, September 01, 2009

The First new Flex 4 book!!!

Peter Armstrong, Flex expert and author of Flexible Rails, is working on a simple Flex 4 beginner book: Hello! Flex 4 <> . It's a intro manual to get up and running on Flex 4 without getting bogged down in too much technical detail. Along the way, Peter walks the reader through building their own Flex app called SocialStalkr, which is a mashup of Yahoo! Maps and Twitter.

The book is currently in the Manning Early Access Program <> , which enables readers to get the book as it's being written. If you or someone you know is eager to get started with Flex, this would be the perfect primer to pick up.

Here is what the site says about the book:

Table of Contents Resources

1. Getting started - FREE
2. ActionScript 3, XML and E4X - AVAILABLE
3. Hello Spark: Primitives, Components, FXG and MXML Graphics and Video - AVAILABLE
4. Beyond Basics: Spark Containers and Layouts, View States, Effects, Styling and the Component Lifecycle - AVAILABLE
5. Halo Flex 4: Using Halo Components like DataGrid, ViewStack, TabNavigator Accordion and Title Window - AVAILABLE
6. Building User Friendly Forms using Flex Formatters and Validators - AVAILABLE
7. Building a Real Application using Cairngorm: SocialStalkr, A Twitter plus Yahoo Maps Mashup - AVAILABLE


With Flex 4 you can easily add color and life to your web applications by introducing dynamic user features, slick transitions, and eye-catching animations. Flex also provides powerful data handling capabilities so you can build industrial-strength applications. And it's open source, so you can get started without forking over a lot of your hard-earned cash.

We think it should be just as much fun to learn Flex as it is to use Flex. Hello! Flex 4 shows you everything you need to know to get started with Flex 4 without bogging you down in obscure detail or academic edge cases. In this entertaining, hands-on book, you'll quickly move from Hello World into the techniques you'll need to use Flex effectively.

You'll start by progressing through 26 self-contained workshop items, which include everything from small one-page examples, to a 3D rotating haiku, to building a Connect Four game. Finally, in the last chapter you'll build a full Flex application called 'SocialStalkr': an interesting mashup of Twitter and Yahoo Maps that lets you 'stalk' your friends by showing specially formatted Twitter tweets on a Yahoo map.


  • Create engaging animations and transitions
  • Handle and manage user input
  • Access and display data
  • Communicate effectively with the server
  • Build a complete Flex 4 application

Whether you're a weekend developer or you have great plans for Flex, Hello! Flex 4 is a great place to start.

Tuesday, August 25, 2009

Video Tutorial - drawing circles in Flex 3


This is a simple tutorial on how to draw circles using the flash.display.* package. The tutorial will show you how to build a simple application that will enable you to place a circle anywhere you want and understand the code behind it.

If you want the source code, please email me dnickull at adobe dot com.

Get to Adobe MAX 2009 to see more like this at the 2009 Adobe AIR and Flex Boot Camp being taught by James Ward and myself. Register before the August 31 deadline for the special prices detailed here:

Monday, August 24, 2009

I am back from Sabbatical, MAX 2009 update!

It's been a great summer - off work for more than half of it to take care of some accumulated vacation days plus a 3 week sabbatical where I almost never touched a computer (except a few tweets). I feel great and now am returning with a new perspective on many things. Via riding long distances on my bike (yesterday's ride was 195 km), I really got time to think things out.

I have a lot of email to wade through, phone calls to return and tons of promises to get back to people on various things. Please forgive me if I don't do this all at once. This image tells the story (this is just my gmail account, not my Adobe account).

I will be primarily focusing on Adobe MAX 2009 for the rest of this week. I have tons of great talks and the Services and SOA camp will be largely hands-on workshops and labs this year. Here is a smattering of what we are offering. If you are interested in any of these, please register now.

MAX 2009

Building Flex and Adobe AIR Service Clients 2009

Learn how to build service clients with Flex and Adobe AIR. In this hands-on lab, you will build various service clients using the WSDL Import Wizard, hand-coded ActionScript 3.0, and REST-based services. Attendees should come prepared to write code or to partner with someone else writing code. The following projects will be built: RSS feeds, SOAP endpoints, AMF endpoints (LiveCycle Data Services ES), REST style XML over HTTP, ColdFusion Server (via CFC), PHP, performance (Flash Remoting), fault detection, and best practices.

Speakers: Myself, Duane Nickull

Adobe AIR Boot Camp

Attend the updated version of the most popular lab at MAX 2008! Attendees will go from Flex 101, an advanced Hello World, to move through 7 to 14 subsequent applications. Each application project is carefully designed to maximize learning in a short period of time, covering 2 to 4 new concepts of development within Flex and Adobe AIR. The course will cover major topics including setting up your first project; perspectives; compiling and distributing; using MXML and AS3 side by side; working with data bindings; remote service calls; manipulating audio, video, and images; graphing; and more.

Speakers: Myself, Duane Nickull

LiveCycle ES for Java Developers

Learn Adobe LiveCycle ES in this crash course for developers. Join Evangelists Duane Nickull and Greg Wilson for a completely hands-on approach that provides solid insight into how to build, deploy, and aggregate services into automated business processes. At the heart of LiveCycle ES are powerful Java libraries for manipulating PDF documents. These services can also be called remotely from a J2EE environment via EJB or SOAP endpoints. Attendees will master how to consume services to perform operations on PDF/XDP documents; convert documents; extract XMP; and work with forms, SAP systems, and digital signatures.

There will be more coming in the next few days. Adobe MAX is going to be really good this year. Come to LA!!

Tuesday, August 04, 2009

Video Tutorial: Working with SOAP in Flex/AIR

This video shows how to connect to a simple SOAP based web service and display the results on some visual components. It is easy to follow along. You can download the server from

Saturday, August 01, 2009

Data Driven Development with LiveCycle Data Services 3 and Flash Builder 4

Notes: In order to complete this tutorial you must prepare your computer by installing Flash Builder 4.0+ and Java JDK 1.5 + (including setting the PATH and JAVA_HOME environmental variable settings). You will also need to download and install the Flash Builder 4 extensions for Data Driven Development.

1. Start the LiveCycle Data Services SampleDB. To do this, open a command window (Windows) or terminal (Linux/Mac OS X), navigate to the folder where you installed LiveCycle Data Services, and type startdb (Windows) or sh (Unix based systems).

2. Next, start the LiveCycle Data Services server. This is done by navigating to the [LiveCycle_Data_Services_install_directory]/tomcat/bin and typing catalina run (Windows) or sh run (Unix based systems).

3. Set up a new project in Flash Builder and use the following settings:

Web Application (Checked)
Use the Current SDK (FLex 4.0) (Checked)
Application Server Type (J2EE)

Then use the settings below:

4. In the next dialog, specify the settings as shown below (default LiveCycle Data Service install) or modify as appropriate for your install. Click “Validate Configuration” to ensure your settings are correct before continuing.

5. Switch to Design view and click “Edit Active Data Model”

6. If the RDS tab is not enabled choose Window > Other Views > Adobe Data Model > RDS Dataview, as shown:

7. Drag public Product into the main panel.

8. This creates a new Fiber data model

9. IMPORTANT – Save the file!

10. Click the Deploy Model to LCDS Server icon as shown below:

11. Fill in the dialog as follows:

12. Switch to the main.mxml component and drag a new data grid onto the screen in Design view.

13. Drag the Product database onto the data grid and run the program.

14. Note that no code has been written yet

15. Close the running application

16. Right-click on the Product data model and select “Generate form”

17. Select “Model Driven Form” as shown:

18. Re-arrange the design view and run it again.

19. Go to source code of the main.mxml and change the one line of code to as shown below:

20. Run it again and see that you have now the selected item bound to the form.

Friday, July 31, 2009

Flash Builder 4 Tutorial 2: RESTful Services

Many things have changed in Flex 4 and with the new Flash Builder 4 Beta, you can already start trying these out. This little tutorial will walk you through a simple FB4 HTTP Service example to explain the differences. If you want to do this, download the Flash Builder 4 Beta.

First - there are multiple new namespaces in Flash Builder 4. These appear to be confusing at first but you should not be scared by them.

Fx is for the Flash Catalyst packages and contains some new drawing primitives and more. Some of the old namespace qualified elements are now qualified including Script.

Flex defines two other sets of components: Halo and Spark. The Halo component sets were included in previous releases of Flex, and are defined in the mx.* packages. The Spark components are new for Flex 4 and are defined in the spark.* packages. The Spark components use a new architecture for skinning and have other advantages over the Halo components.

The Halo and Spark component sets contain many of the same components. For example, both component sets define a Button control, TextInput control, and List control. However, while you can use Halo components to perform most of the same actions that you can perform by using the Spark components, Adobe recommends that you use the Spark containers when possible.

Another major change is that many non-visual components of an application must be bound by the element. You might notice if you are trying to declare an HTTP service, the will not auto-complete unless bound by the declarations tag. If you want to manually build this project, you can add an HTTPService like this:

A third thing you will see is that the layouts are no longer contained in the header. Instead, they are declared inside a container as shown below:

Here is the Project:

1. Start a new project in Flash Builder 4. Select no server type and either option for the AIR/Flash toggle.

2. Grab a browser and you should be able to validate the servers are up and running by hitting the following URL: You should see the following XML file:

Note 1: In order for this to work, a small file called crossdomain.xml is in the same directory as the Wines.xml on the server. This file helps Flash Player mitigate cross domain scripting attacks. Describing what this file does is beyond the scope of this tutorial, however more can be read at

Note 2: All the wines on this list are favorites and make great gifts for Adobe Evangelists who post tutorials to help you with your work ;-p

3. Copy the URL (Command -C on Mac or Control-C on PC)

4. At the bottom of the Flash Builder IDE, click on the Connect to Data Services link shown below.

5. This will bring up a dialog box with a number of choices for services. Select the HTTPService option as shown below:

6. Click “Next” and then fill in the next screen by adding the name of the service (“srv” in this case) and add the URL.

7. After completing this operation by clicking “Finish”, you will see the data services in the panel at the bottom.

8. Next we need to add an object to bind our data to. Switch to Design view and drag a DataGrid onto the middle of your application. If you manually add it in Code view, just start typing the angle bracket and "datagrid" and let Flash Builder complete this for you.

9. Highlight the DataGrid, then right-click (Control Click on Mac) the DataGrid object and select Bind To Data from the menu as shown below:

10. This will bring up the “Bind to Data” dialog box. Click on “Configure Return Type” to configure the datatype for the returned object.

11. The next dialog will prompt you for a datatype. NOTE: on other projects, you might wish to use one of the default data types; however on this one, we are going to create our own object type called “WinesArray” as shown below.

12. Click “Next”

13. The next dialog will invoke the service request to get a sample of the data to inspect. For this lab exercise, select the radio button labeled “Enter complete URL …” and enter the URL of the XML file in the “URL to fetch” box below and click “Next”.

14. Flash Builder will go to the URL, retrieve a sample of data, and break down its structure for you. In this case, it has selected that it may be an array. Rather than accept the first option as is, use the drop down list to select a context root of “Vintage” as shown below.

15. Now you will have the following

16. Click “Finish”

17. Close the last dialog by clicking “OK”

18. Your project should now reflect the DataGrid being bound to the data as shown below:

19. Run the project and you Flex 4/AIR application will build and display the XML from the server.