Mike Potter

July 27, 2006

Another Flash based online video site

For those of you wondering if Flash is really the best option for online video... Well, add another top site that has chosen Flash for showing video to its users.  CNET TV is up now, in beta format, and is using Flash as the format, not only for video, but the entire application.  Its a fairly advanced Flash application, incorporating rich Internet application functionality as well as rich media (video).

This joins YouTube, Google and other popular sites that have chosen Flash as the best way to deliver video to users. Google is actually using Flash to deliver videos both via Google video and on their advertising network.  No wonder, since the Flash player is on more computers than any other video player.


technorati tags:, , ,

Blogged with Flock

07:58 PM | Permalink | No Comments

Ben Forta creates ColdFusion component for XPAAJ

Ben Forta has created a ColdFusion component that allows CF developers to easily use the XPAAJ library that we released last week.  The component is available for download from Ben's website right now, and his blog post has a small sample that shows how to use it.

Once you've got the data in a PDF document, the LiveCycle software becomes more useful to you.  If you want to protect that PDF document, you can use LiveCycle Document Security.  If you want to track who can open that PDF document, you can use LiveCycle Policy Server. If you want to route that document to others in your organization, you can use LiveCycle Workflow.

technorati tags:, , , ,

Blogged with Flock

02:04 PM | Permalink | No Comments

July 26, 2006

Adobe Forums Changing

For those of you who visit our forums often, you should check out this post that outlines some of the changes that will be coming to the Adobe forums... Summary: We're moving to the older Macromedia format for forums, which will allow us to do some much cooler things than we're able to do now with the software on adobeforums.com.  Look for many good things to come from this change.

technorati tags:,

Blogged with Flock

11:34 PM | Permalink | Comments [3]

July 25, 2006

Ajax, JSON, PHP, and Flex together to build a Flash-y Ajax site

In honor of the O'Reilly Open Source conference that I and other Adobe people at attending, I'm happy to show an example of building out a site that combines Ajax, JSON, PHP, and Flex into one application, with 90% of this being done with open source software (the only piece that is not open source, but is free (in terms of cost), is the Flex SDK). I've created a site that tries to mimics the experience of Google Finance, a great site that combines Ajax, and Flash together to provide a great user experience.

This tutorial, available online in PDF format with complete source code in this .zip file, shows how to take data from your Feedburner feed, and create an Ajax application that displays the dates and hits of your feed. It will then take that information and populate a graph that we've created with Flex and the Adobe Flex Charting components, using the Flex / Ajax bridge from Ely Greenfield and the JSON ActionScript library from Mike Chambers, Christian Cantrell, Daniel Dura, and Darron Schall.

A working example of this is available on our wickeddemo.com website. (Note that because of load, that example will load data from a static XML file, rather than PHP.)

If you have any questions about this example, please post there here in this blog.

Here is what I've learned in using the Spry Ajax framework and Flex together:

  1. I found it easiest to modify the HTML that gets output by Flex Builder, rather than to reference the built swf file in my own HTML file that I create. If you do that, be sure to modify index.template.html in the html-template/ folder of your Flex project, rather than the .html files in the bin/ directory of your Flex project. The HTML files in bin/ get overwritten when you save and re-build your Flex application, and if you modify those, rather than index.template.html, you'll lose your changes to index.template.html.

  2. I started building out the Flex graph using JavaScript and the Flex / Ajax bridge. I don't recommend that. Build out your entire Flex component in Flex Builder, then simply write functions to pass data to it from HTML. I think that's easier than trying to build Flex components using JavaScript.

  3. Similarly, write functions that closely couple your Flex application to your HTML page. For instance, you'll notice that in my MXML file, I call the chartClicked JS function using:
    if( ExternalInterface.available )
    ExternalInterface.call(
    "chartClicked",clickEvent.hitData.item);

    I could have attached an observer to the lineChart instead, using the Flex / Ajax bridge, but I find it easier to get the data items and debug the application in Flex Builder, rather than trying to do that in JavaScript on the HTML page.

  4. The ActionScript 3 JSON library doesn't like new lines or carriage returns in the JSON data. You need to strip those out before sending data from JS to ActionScript over the Flex / Ajax bridge.

  5. I don't know of any other technologies that I could use in this tutorial to get a higher click through on MXNA. Well, maybe Web 2.0. :)
If you like this tutorial, please Digg it.

technorati tags:, , , , , ,

Blogged with Flock

01:55 PM | Permalink | Comments [3]

July 21, 2006

Kevin Lynch talks about Apollo, FlashLite, Microsoft and more

In this interview over at the Wharton School of Business, Kevin Lynch discusses Adobe Apollo and Adobe's vision for the Engagement Platform, as well as competition with Microsoft, Flash Video, FlashLite and mobile and other interesting topics.

I thought it was great that Kevin mentioned the fact that not all applications will be appropriate for Apollo. I think its important that we set expectations on that early. 

I enjoyed reading the parts about Microsoft and WPF, and their plans for WPF/E.  I think Kevin brings up a great point when he mentions that yes, Microsoft is planning to take WPF to other operating systems, but their history hasn't been very good at supporting those other OSes... Think about Internet Explorer on the Mac or Windows Media Player on the Mac.

Finally, I thought the parts about mobile applications and development were interesting.  I'm not completely up to speed on development for mobile applications, but I do think that its something that Adobe can really help drive. I think the idea of a single toolset for developers with the ability to output to desktop applications (Apollo), web applications (Flash player) and mobile devices (FlashLite) is appealing to a number of developers.  I also think its something we need to talk more about, because its a major advantage for Adobe and Flash development.

Read the entire interview at Wharton's website.

technorati tags:, , , ,

Blogged with Flock

09:40 AM | Permalink | No Comments

July 20, 2006

Using PHP and Flex to Browse a MySQL Database

DevX has posted a good (though lengthy) tutorial / example on how to use Flex to browse a MySQL database, with PHP as the intermediate layer on their Adobe portal. While not as full featured as PHPMyAdmin (obviously), its a great example of the kind of interface that you could build with Flex.

I'd love to see a Flex based version of PHPMyAdmin, but apparently they've hardcoded quite a bit of the HTML output into the PHP logic.  I think that if PHP really wants to move forward in the enterprise space, developers really need to start doing a better job at seperating out the display from the logic, and stop assuming that every PHP application will be outputing HTML. 

For the record, quite a few PHP applications have this problem, its not limited only to PHPMyAdmin.  Even Drupal, one of my favourite apps, has this problem, as I blogged about a while ago.

technorati tags:, , , ,

Blogged with Flock

02:20 PM | Permalink | Comments [4]

Why Flex developers should love XPAAJ

As I posted the other day, we recently opened up access to the XPAAJ library to anyone, without requiring a membership to the Adobe Enterprise Developer Program. We're working on creating tutorials on how to get started with XPAAJ, and why its so useful to developers. Here's the first XPAAJ tutorial that we're working on, please provide comments on it in this blog.

Flex developers should love XPAAJ, because it allows you to take the data from your Flex application and put it into a document of record. Create a sweet looking application in Flex, allowing the user to enter and manipulate data online. When its time to take that information offline, or provide them with a document of record for their data, use XPAAJ to populate a dynamic PDF form (that you created with LiveCycle Designer - free trial here) that contains all their information. Users can then interact with that document through Adobe Reader, without having to be connected online.

At that point, you can do all sorts of things with the PDF document. Want to control who can open or print it? Use LiveCycle Policy Server. Want to allow them to comment on the document with Adobe Reader? Use LiveCycle Reader Extensions. Want to allow them to add their digital signatures to the document? Use LiveCycle Document Security. Need an overview of all the LiveCycle products? Watch my Adobe developer week presentation.

Want to try LiveCycle? Get the LiveCycle Toolbox. Want access to the LiveCycle Toolbox, without an Adobe Enterprise Developer Program membership? Email me by commenting in this blog.

technorati tags:, , , ,

Blogged with Flock

10:53 AM | Permalink | Comments [1]

July 18, 2006

Download XPAAJ without AEDP membership

I'm happy to announce that today we've opened up access to the XPAAJ (XML PDF Access APIs for Java) library. You no longer need to be a member of the Adobe Enterprise Developer Program to download XPAAJ. You can download XPAAJ simply by creating an Adobe ID, which you already have if you've downloaded something from Adobe.

XPAAJ allows you to pre-populate and extract form data from Adobe PDF forms (created with LiveCycle Designer), using Java code. The XPAAJ download includes a getting started guide and a developer guide to help you build out Java applications.

A few things to note in the license for XPAAJ: (see section 2. LICENSE in the software license agreement):

  1. You can use the software if you own a copy of Adobe Enterprise software (defined as commercially available versions of Adobe software branded as LiveCycle, ColdFusion or Flex), and you may only use it for your own internal business purpose. OR
  2. You can use the software to develop programs to extract data from PDF files delivered to you from a licensed copy of LiveCycle Forms or Reader Extensions.

Download the XPAAJ SDK here.

Ben Forta should have some good news for ColdFusion developers in the near future.


technorati tags:, , , , ,

Blogged with Flock

12:54 PM | Permalink | Comments [8]

At O'Reilly OSCon Next Week

I'm going to be attending the O'Reilly Open Source conference next week in Portland, OR. If you're there or are planning on attending and would like to meet up, please send me an email or reply via this blog.

Blogged with Flock

12:44 PM | Permalink | No Comments

Blogging about Flex and LiveCycle

I'm happy to introduce a new blog to the Flex and LiveCycle communities, flexlive.net, being run by Zhenhua Yang (AKA Z), who's an intern here at Adobe.  He will be blogging about LiveCycle and Flex and how the two of them can work together.  He's off to a great start, with a tutorial showing how to connect the SunOne directory server to LiveCycle.  Welcome to the blogosphere Z!

technorati tags:, , ,

Blogged with Flock

09:01 AM | Permalink | Comments [2]

July 17, 2006

Join my JamJar space

Looking to try out JamJar, but need a space to join?  Feel free to join my JamJar space.  Add your photos, files, links etc.. to the space.  If you have any problems, please post them as comments in this blog.

technorati tags:, , ,

Blogged with Flock

01:31 PM | Permalink | Comments [2]

How to pass values from Flex to a PHP backend using AMFPHP

I received a comment last week on a previous post on how to connect Flex to a PHP backend using AMFPHP.  Here's how you do that:

The commenter in question was trying the following:

gateway.call( "sample.getUsers(varArray)", new Responder(onResult, onFault));

The correct way to send data from Flex / ActionScript to PHP on the backend is by sending the variable to be sent back as the third parameter in the call function, like this:

gateway.call( "sample.getUsers", new Responder(onResult, onFault), varArray);

You should be able to send back arrays as well as more simple variables: integers, strings etc..


technorati tags:, , ,

Blogged with Flock

09:18 AM | Permalink | Comments [4]

July 14, 2006

JamJar: Adobe's First 'Web 2.0' Application

Yesterday afternoon, Adobe released a preview of JamJar on labs.adobe.com, which is "a demonstration application built with Flex 2 that provides a private and persistent canvas for small groups to easily exchange digital content."  I think the best way to think of it is that its similar to an Flash version of MySpace.

I'm a huge fan of JamJar, I think its really cool and one of the best client applications, even in its current test form, that Adobe has released in the past few years.  Others aren't so happy with it.

Here are some reasons why JamJar is Adobe's first Web 2.0 application:

  • Its the first Adobe application to serve up Google ads from Adsense as the only revenue stream (currently).
  • Its the first Adobe application that really needed an Invite a friend link in the menu bar.
  • Its one of the first applications from Adobe that doesn't install on your hard drive.  Yes, the company that brought you Creative Suite and its over 1 GB install, has created a program that doesn't install anything on your machine.
  • It integrates my photos from Flickr.
  • Its better than any other social networking web creation space, because changes happen in real time... No more reloading of pages to see what text would look like as Times New Roman rather than Arial... Change it and you see it immediately.
  • Real time collaboration / file sharing!  If two people are in the same JamJar space at the same time, changes to the space are reflected on both people's view, in real time.  A long way to say that we can have a real time discussion in JamJar, or when you add a file to JamJar, and I'm on your space, I see it immediately and can download it right away.
  • Control who can do what to your space... When you invite friends to your space, you can make them authors (meaning they can read or write to your space) or just visitors (read only).

Here are some reasons why its not a true Web 2.0 application:

  • No RSS feed for new items.
  • No way to create new JamJar components.
  • No APIs to add items to your space from outside JamJar.

I'm looking forward to more JamJar releases, and I urge you to test it out if you can.  Currently the JamJar server appears to be down.

Apologies for the click-bait in the title.  I'm not a big fan of the term 'Web 2.0'.

technorati tags:, , , , , ,

Blogged with Flock

08:11 AM | Permalink | Comments [2]

July 12, 2006

PHP and Flex - JSON, XML or AMFPHP?

I've created a small performance study that shows time to load three different types of data from a PHP backend... Data transfered as PHP objects from AMFPHP, data transfered as XML and data transfered in JSON notation.

The two most popular ways of getting information from a PHP backend to a Flex front end are through the use of XML and AMFPHP. The use of XML requires you to serialize your data into XML formats, while the use of AMFPHP allows you to transfer objects directly from PHP to ActionScript, the Flex scripting language that is similar to JavaScript. I'm not too familiar with JSON, but it seems to be getting a lot of attention for web based applications.

In the tests, I use the AMFPHP library, which you'll need for the AMFPHP test. I use the Zend Framework for the JSON library, converting my PHP Array to JSON. JSON is handled in Flex with the use of the JSON library. The XML test is the simplest of all, simply printing out the XML without having to load any other library or files.

Here's the data (times are in ms):

# of data
XMLAMFPHPJSON
500019032033
2814
1000036253495
4747
1500043264867
6830
2000059396550
9094
2500065707942
11838
30000847310335
14512
35000959412389
17716
400001088514651
20480

As you can see, under 20000 items returned, AMFPHP and XML give you about the same performance, with JSON lagging behind considerably. Above 20000 items returned, XML appears to be a bit better than AMFPHP in terms of performance, with JSON really struggling. (Of course, once the data was in the Flex application, the data could be sorted and filtered with the same performance).

There's lots of things to consider when building out your PHP application with a Flex front end. First of all, you need to consider the fact that with XML, you're respondible for serializing all your data. That may or may not be difficult, depending on what your data type is. In this example, it was relatively easy. AMFPHP may provide some time advantages there for your development, and may be a reason to choose that over XML. As well, you should look at the amount of data that is being transferred. I did all my tests over a local connection. Over the Internet, lattency may be an issue for your application (AMF is a binary protocol, which should make things slightly faster than straight XML encoding).

My next tasks are to see what happens when I do this remotely, and to see what effects any of the PHP accelerators have on the performance

If you'd like to do the tests on your own, here is a .zip file that contains all the useful files: the .mxml application file, the PHP files for printing out JSON and XML data and the file to put in your AMFPHP services/ directory.

technorati tags:, ,

Blogged with Flock

09:15 AM | Permalink | Comments [8]

July 10, 2006

More Information on Adobe MAX Posted - Including Registration Form

We've announced more information about Adobe MAX, including details on all the sessions that will be taking place during the conference. Here's the press release, here's the agenda, here's the list of tracks and here's the registration form.

If you're developing software or solutions with Adobe software, then you'll want to attend.  There are sessions on Acrobat and Breeze, LiveCycle, Mobile, RIAs, Web Design and Development and more.

Also announced are the 2006 MAX Awards, which will "honor the most effective and compelling customer work in eight categories: achievement (high return on investment); advertising and branding; industry innovator; interactive process management; media and entertainment; mobile and devices; rich Internet applications and Web development; and training and collaboration."  Adobe will accept submissions starting on July 17th, entries must be submitted by September 1st.  I'm not sure where you can submit your entries, but a list of last year's finalists is available online.

If you're blogging about this, please tag your posts "adobemax06" in Technorati.  We'll use that same tag for Flickr photos of the event.

technorati tags:, , , , , ,

Blogged with Flock

09:28 AM | Permalink | Comments [1]

July 07, 2006

LiveCycle, PDF and Open Source

A few blog entries ago, I explained why I thought the release of Flex was good for open source developers.  One of the comments, from Will Pollard, asked for clarification on how LiveCycle fits with Flex and open source.  In particular, why would someone use LiveCycle as opposed to any of the free PDF creation tools that are out there. 

To start with, LiveCycle is a bit more difficult to access than Flex... Unlike Flex, you cannot download trial versions of the Adobe LiveCycle server products.  (You can download a trial version Adobe LiveCycle Designer and start building out PDF forms.)  Currently you need to be a member of the Adobe Enterprise Developer Program to download the LiveCycle software, including the very easy to setup LiveCycle Toolbox.  (The toolbox is a pre-confirued install of all the LiveCycle software.  For an explanation of LiveCycle, check out this Breeze presenation I did for Adobe Developer Week.)

We do want to make LiveCycle more accessible to developers.

To understand how LiveCycle competes with open source PDF creation tools, its important to understand that there are two types of PDF documents: what I call static PDF documents and dynamic PDF documents.  Static forms are created in Acrobat, and are sometimes referred to as "AcroForms".  The PDF file is static (it does not grow or shrink in size), but in Acrobat or Adobe Reader it may contain interactive elements that people can fill out electronically.  For example, if you had an invoice, you would create the template with a set number of rows, and then hope that someone didn't order more items than the number of rows on the document.

On the other hand, dynamic PDF forms can grow or shrink in size depending on the data that is bound to the form.  So, say you have an invoice for products, it could be 1 page for 1 customer, and 10 pages for another customer who orders a lot of items.  To build that, you use LiveCycle Designer and create a PDF form, then use LiveCycle Forms to bind the data (likely in XML format) to the form.  Most of the free, open source tools out there do not handle this type of PDF document.  In fact, I haven't seen any solutions that do this, other than the Adobe LiveCycle set of products.

So, the question now becomes how does Flex fit into this?  The idea is that you would use a Flex front end to gather data, likely on a website.  At some point, you may want to continue filling in the form offline, or send the data to other people.  When the time comes to take that data offline, you pass the data to a PDF form (which was created with LiveCycle Designer), and then users are able to access that data in a PDF document.  They can send it to friends, do offline collaboration etc... When the time comes to send the data back to the organization's servers, a user would hit the submit button in the form and the data would be sent back to LiveCycle Forms, which will extract the data from the PDF form and allow the organization to process the data.

Once the data is in the PDF form, there are other LiveCycle pieces that may be of use as well.  Digital signatures, policy protecting that information, managing the form's workflow are all services that the LiveCycle set of products provides.  In the above example, I've focused only on taking the data off line, but once it is off line, the other LiveCycle products add additional functionality to the document / form.

technorati tags:, , , ,

Blogged with Flock

12:13 PM | Permalink | Comments [5]

July 06, 2006

Adobe Developer Week Recorded Sessions

In case you missed the sessions we had during Adobe Developer Week, they've all been recorded.  There's information on Adobe Apollo, LiveCycle, Flex, ColdFusion, Flex and LiveCycle, security, Ajax, and more.  Check them out at your leisure.

technorati tags:, , , , ,

Blogged with Flock

04:04 PM | Permalink | No Comments

Flex and Eclipse 3.2?

I picked up a copy of my local newspaper this morning, flipped to the tech section and lo and behold, there's a quote from my boss about Eclipse 3.2.

Well, since I have pretty much every program that's available to be downloaded installed (and in many cases, uninstalled shortly thereafter) on my machine, I thought I'd see what Flex Builder 2 and Eclipse 3.2 looked like together.

Note: Flex 2 requires Eclipse 3.1.1/2, as mentioned on the system requirements page.  The following is definitely, 100% not supported by Adobe.  Follow along at your own risk.

First, I downloaded Eclipse 3.2, then I downloaded the free trial of Flex Builder 2 from Adobe's website.  I installed the plug-in version of Flex Builder into the Eclipse 3.2 directory (c:\eclipse32 for me)... I then ran Eclipse 3.2 and received a few errors.  Nothing major, so a few clicks on "OK" and we're off and running... The code view appears to work fine, with code hinting and code completion working.  Compiling an application went fine as well, I compiled a few of the older projects I had in my workspace, no problems.

(Have I mentioned that Flex Builder 2 is definitely unsupported on Eclipse 3.2?)

Debugging, well that was another story.  If you debug applications often, then you'll want to stick with Eclipse 3.1.1 or 3.1.2 for now.  In my (short) test period, debugging didn't work.

So, there's still some work to do.  If you want to try it out on your own, you can download Eclipse 3.2 from their website, and install the Flex Builder plug-in version into that folder.  (Warning, its not supported by Adobe, in case you didn't know.)  Just one warning: If you install Flex Builder plug-in for Eclipse 3.2 after you've installed the FB plug-in for 3.1.1/2, then the installer will overwrite your launch shortcut in Start -> All Programs -> Adobe.  You'll need to launch the old version of Eclipse using Start -> Run and entering a path to Eclipse 3.1.1/2.  Oh, and you can't run Eclipse 3.2 and Eclipse 3.1 at the same time.

One final note: Adobe Flex Builder on Eclipse 3.2 is not official supported.

technorati tags:, , ,

Blogged with Flock

10:48 AM | Permalink | Comments [6]

July 04, 2006

PHP / Flex Integration on Pro::PHP Podcast

Last Friday I did an interview / podcast with the team at PHP Architect. You can listen to what I had to say about PHP / Flex integration and other topics, including Ajax integration, ActionScript 3, and other topics. Here is the mp3 file.

08:12 AM | Permalink | Comments [1]