Wednesday, January 24, 2007

Air Canada goes too far ($2.00 for a blanket)

Okay. I can get used to no food on flights or paying for food. I can get used to limited magazines on the flight, paying for alcohol, paying fuel surcharges, smaller seats and the other cost cutting things airlines or doing. In some cases, paying for meals actually makes sense since now it seems the food selections are better on short haul flights (I usually ride in business or first class anyways).

What I cannot understand is why Air Canada charged me two dollars for a blanket rental. Honestly, does it make that much of a difference? Can it even be rationalized given they are a public company and have to hire accountants to conduct blanket inventory and account for blanket revenues?

I am also pissed about this because the damn airplane was *really cold*. I had enough clothes on that I was NOT cold outside the airport in Vancouver, but got chilled during the flight. I initially resisted buying a blanket but gave in 3 hours into the flight. It seems however, I was too late; I seem to have picked up some sort of cold myself as a result. Feh!!!

If I get pissed off and don't use Air Canada for the next 6 months (statistically, that is about $30-40,000 worth of business from me alone), how many blankets do they have to sell to recoup that loss? I guess that is 20,000 blankets minus the costs of accounting for blankets (do they charge GST on domestic flights?). I am interested to know why and I am hereby inviting someone from Air Canada to comment on this blog and tell me why. In the meantime, I am not booking any new flights on Air Canada until I get an answer.

Add a comment if you join me in this boycott.

Thursday, January 18, 2007

Flash Player 9 for Linux and Open Source

The Flash Player 9 for Linux was released yesterday via the Adobe website and can be freely downloaded. I want to thank all of you who took time to write me personally about this for having faith and letting us get the job done we needed to do. The Linux community is very important to Adobe.

I also want to encourage Linux community members to also participate in the open source Flash Player scripting engine project at Mozilla. The Tamarin project will implement the final version of the ECMAScript Edition 4 standard language, which Mozilla will use within the next generation of SpiderMonkey, the core JavaScript engine embedded in Firefox®, Mozilla’s free Web browser. As of today, developers working on SpiderMonkey will have access to the Tamarin code in the Mozilla CVS repository via the project page located at www.mozilla.org/projects/tamarin/ . Contributions to the code will be managed by a governing body of developers from both Adobe and Mozilla.

Monday, January 15, 2007

Flex Camp (Bay area only)

My good friend and colleague Ted Patrick has asked me to extend an invitation to any Bay areas denizens who may be interested in coming to the Adobe San Francisco Office to get under the hood of Flex a bit more. This would also encompass interests in Apollo.

Evangelism is hosting a "Meet the Flex Team" in San Francisco at Adobe Thursday, Jan 25 5-8pm. The event information is provided here:

http://flexteam.eventbrite.com

If you plan to attend, register for the event.

Also please reach out to contacts in the bay area who are using Flex/Flash or in the web development market.

The Meet the Flex team session at Max2006 was a lot of fun and we expect this event to be similar. We will do some demos of Flex 201 and Apollo and will have a general QA session. The goal is to make Flex and Adobe more approachable and transparent in line with Flex25 goals. Plus it should also be a fun evening with our development community.

Wednesday, January 03, 2007

How truly open is Flash? Do we need "Open Flash"?

This is a post made by David Mendels that inspired me to get this message out. I too have noticed that a few people Still perceive Flash as a proprietary technology. If you are one of those, read this then ask yourself the two questions at the end. I had a completely different view of Flash before Adobe and Macromedia merged.

David writes:

(Some basic points)
  1. The Flash programming language (ActionScript) is 100% ECMASCript, a standard with multiple implementations and is open. You can script using ActionScript with a plain old text editor.
  2. The internal Flash Player VM, “Tamarin” is an open source project run by the Mozilla foundation (donated by Adobe).
  3. The Flash file format, *.SWF is a published format.
  4. The Adobe Flash Player (the reference implementation) is free. So are several others like the Gnash player.
  5. The Flash Player is available on Mac, Windows, Linux, Playstation, Nintendo Wii, Symbion, and many other platforms.
  6. An SDK for building, compiling, debugging Flash applications is available for free on Mac, Windows and Linux
  7. There are over 100 third party, free, commercial, open source and closed source products that produce, edit, generate, and otherwise manipilate Flash files, Flash Video files, etc.
  8. There is a very active Open Source community around the Flash runtime. For better or worse (I do work for Adobe -;) many many people take full advantage of the Flash Player without using any commercial products from Adobe (or anyone belse). See http://www.osflash.org/ to get a good view of this.
  9. Flash itself makes use of several standards such as JPG, AVI, GIF and PNG's as outlined here.

There are numerous web based services (You Tube, BrightCove, etc) that convert to, host, deliver Flash Video without requiring the purchase or use of any commercial or proprietary technology.

Now, all that said, the Flash Player as a whole is not open source. There are a number of reasons for this, at least as of today. 2 primary reasons come to mind right now, but these are not immutable:

i. The desire to avoid bifurcation. Right now one can produce a SWF from any one of many tools/servers/services from many vendors and be 100% confident it will run across platform and across browsers. We experienced the impact of multiple slightly (or largely) incompatible implementations of HTML/JS browsers and of JVMs and both had a major impact to slow innovation and usage. One of the things our customers (developers/desginers/publishers) have told is us not to screw up the compatibility and ubiquity that have been the hallmark of Flash since day 1.
ii. There are technologies in the Flash Player for which we do not own the IP or the rights to open source it, for example, we have licensed our MP3 codec.

There is one more area where we are arguably not “open”. This relates to our licensing strategy on non-PC devices (eg Cell Phones). On these devices, we do license the Flash Player for a royalty to device manufacturers and telco operators. It is still free from an end-user and developer perspective, but there are a lot of costs associated with these integrations.

(...)

My experience is that when people say they want “open”, there are usually 3 or 4 things they really want or need:

* No lock in. They don’t want adopt a technology that they may get “blackmailed” to pay money for in the future. I think we have addressed this fairly well by making the Flash Player and SDK free.

* Integration. They want the technology stack they work with to work with the rest of their stack and tool chain. This requires appropriate use of standards (eg. we support XML over HTTP, Web Services, ECMAScript, CSS, integration with multiple IDE and Source Code management systems, etc) and well crafted and well documented APIs. I think we have this area covered too, but I’d like to hear about concerns.

* Leverage existing skills. By using standards, one does not get locked into skills that can not be found generally in the market and that will be obsolete in the near term. This is why we standardized on ECMAScript. This is why we have an Eclipse based tool. This is why we enable development with a purely ASCII text format to fit into other systems. This is why we leveraged CSS in the Flex framework, etc. I think we have this covered too, but I’d love to hear your thoughts.

* Ability to fix bugs/issues without depending on a vendor. From a tool chain perspective, one can choose to work in an entirely open source toolchain for the creation of SWFs, so this is covered. From the runtime perspective, this is arguably a barrier. That said, I don’t hear a lot of folks who have actual concerns about our “stewardship” of the Flash Player in this regard. I’d love to have your perspecitve.

Questions for the public:

* What does “Open Flash” actually mean to you? Have we done a good job of balancing the interests of implementers and developers without hindering innovation?

* What specific problem(s) does “Open Flash” solve that are not addressed by our current “openness”

Friday, December 15, 2006

An open letter to the WTO and Pascal Lamy

I have worked in the United Nations to create a free and open stack of technology that will help level the playing field for the world. My employer, Adobe Systems, even spent a considerable amount of time and effort implementing some of the standards from UN/CEFACT using PDF and LiveCycle as the platform. The UN eDocs project allows people to simplify the process of creating the paperwork that must accompany goods in trade. The net results is that more people are given access to the trade infrastructure meaning they now have new chances to participate on a level playing field. Just imagine a world where anyone wanting to ship anything internationally had to pay $100,000 to buy a software program to communicate with the trade network? This should never be allowed to happen but it has in some places. One of the reasons I am excited about Apollo it the possibility it will lower more technology barriers to benefit humanity.

During this process, all of us in UN/CEFACT were aware that our work was needed because time has run out for some people who are being affected by the disparity in global trade created by technical barriers to entering the global trade network. The results are seen in the news - people starving, countries at war over resources and people denied the basic necessities of life.

Like any large committee, UN/CEFACT had hiccups and work had to be kick started a few times. As a Vice Chair, when this happened, I reminded the people involved that time was of the essence given the people who we are working for have no other options. Most ot eh time they complied and found a solution.

The World Trade Organization (WTO) has had a mandate to do similar world for all aspects of trade to create a fair and equal playing field for all people to prosper under. Unfortunately, the Doha talks have stalled and there is no schedule to resume certain talks that need to happen. The WTO has got to act now. Every day they delay means another day people live in poverty. I am upset by this and have written a direct letter to the Director General, Pascal Lamy. M. Lamy is going to hold a direct chat in December and I will attend and be say what needs to be said. Here is a copy of that Letter:

************************
M. Lamy:

Thank you for making yourself available to citizens like myself. We understand you have a very busy schedule and are grateful for your time to listen to our point of views. Please consider the following question and statement as two of my top concerns. If you can fix this, I have all I want for Christmas.

Question:

I too worked in a chair position for a UN body (UN/CEFACT 2004-2006) and found that talks can often break down. I immediately got everyone back to the table to resume dialog and did not let the process stall. I did this because every day, people are subjected to unfair economic discrimination. My question to you is "what are you going to do to force the talks to resume"?

Now my statement:

Every day the stalled Doha Liberalization talks fail to happen, people die as a direct and indirect result of economic disparities. They die M. Lamy. Men, women, children. They die!! I will invite you and those who sit within the WTO to remind themselves who they really work for. They work for people who do not know they exist. They work for people who do not even understand the system they have set up. They work for those who are too weak and too underprivileged to help themselves. You work for those people who are at most risk to die as a result of your failure to conclude these important talks and implement the policies.

You have a heavy burden on your shoulders and I do not envy you. Sometimes, the bureaucratic path fails when procedures are followed to rigorously and complacency follows. After all, no one in your family or mine will die and paying a few more dollars for gas and groceries is probably acceptable for both of us. But it is not!

PLEASE! Stand up and make a difference. Take control and remind those who need to work that there are consequences of their failure to work. Remind them who they work for and that they have a chance to save lives, both metaphorically and in reality. Lead them well, facilitate the process and make a difference.

I worked for the UN to help these people too. It is a thankless job and not many understand the frank reality of the world of commerce. If you ever need help, issue a call to action and I will be there.

Duane Nickull

Thursday, December 07, 2006

Screenshots: Apollo Extensions for Flex Builder

We’re one step closer!! Today I got the chance to try out some great pre-release technology from Adobe. The Apollo Extensions for Flex Builder is a small installer that adds Apollo Application capabilities directly into Flex Builder. I tested the build on the Mac.

CAVEAT: Nothing you see here may eventually make it into a GMC build. This is just a heads up. I suspect some of you might want to jump on the first Apollo Public Beta when it is available.

For those of you who do not yet know Apollo, Apollo is an internal working name for a technology that takes Flex Applications outside the browser. You can also incorporate HTML alongside your SWF’s to build standalone applications that can interact with local system resources. Apollo applications are built using MXML, the declarative programming framework and language used by Adobe Flex.

Before doing this, there were several manual steps one had to go through in the Flex Builder in order to create an Apollo Application including importing the ApplicationWindow *.swc to the Flex Builder Environment and changing the namespaces manually in order to get Flex Builder to compile the MXML into an Apollo Application.

The install of the extensions is really simple. The 20 MB download for Mac extracts into the installer. Double clicking on it opens up the install dialog. On the third screen I recommend just hitting “next” and using the default location. Note that you must have Flex Builder installed prior to installing the Apollo Extensions.



A post mortem on the directory reveals a wealth of Apollo wizardry installed during the process. Just look at all the Apollo goodies I now have!

When I launch the Flex Builder and start a new project, I have the option of creating a new Apollo Project.
When selected, the option automatically imports the required libraries and sets up the stub project with the default skeleton code. The MXML looks as follows:

Additionally, under the components browser, there is a new category called Apollo with some extra goodies in it for Apollo Developers. You can use these in addition to the stock Flex components to mix and match and build your application.

I quickly whipped up a UBL (Universal Business Language) application as a standalone app to work with UBL. No – it is not finished yet but it shows the real power of Apollo. The real magic happens when you hit the run button. Instead of the Flex Application building a SWF experience inside an HTML page, it launches a standalone application. The screen shot below show the small application I built on the Mac OSX (intel).


This technology is going to change a lot. The application above took less than 15 minutes to create the GUI for. Others have built some really cool applications like the Ascension MP3 player (screen shot below).

This application, written by Apollo guru Mike Chambers, can load a local itunes library file and songs referenced on it, has several visualizers and controls for the audio files and can also search on the web for photos from Flickr based on the metadata in the audio files. I loaded up one of my own songs from Mix2r.com and the Ascension application read my name on the ID3 tags and searched Flickr and found this photo.

This is yet only the beginning of what is possible.

Monday, November 27, 2006

Anne 2.0 joins Redmonk: today's significant event

You may think this is a funny title from a guy who is stuck in a city with 40 cm of snow and no drinking water (a temporary streak of bad luck for the otherwise "good luck city" Vancouver, BC). Nevertheless, I will explain why I think it is significant for the industry.

Redmonk is an analyst firm that "gets it". They are not just a group of suits who you can give money to in order to justify a point of view of have them endorse some bad idea like SOA 2.0. In fact, I am not sure I have ever seen any of them in suits. They are one of the few analyst firms I know that actually will tell you your idea is full of "it" if is bad. At a recent Adobe conference, I witnessed a senior Redmonk analyst sitting across the table from one of our executives deliver a very pointed stream of thought about a technology subject he felt passionate about. Some (not all) other analyst firms would have just been the typical "yes men" and caressed a square peg into a round hole. Redmonk is not like that. Redmonk tells you straight up where you are doing good and where you can do better. CAVEAT: Yes - I know James, Steven and Cote just as friends too. I think that despite a personal friendship though, my opinions are objective.

Today I was shown some rather great news that gave me the same sort of "stoke" factor as being at Whistler in 1 meter of fresh powder listening to the newest Pennywise CD (well maybe not quite that much). Anne Zelanka has joined forces with Redmonk. Anne has a great following in the technology space and to my knowledge has the distinction of being the first ever blogger (as opposed to anaylyst/press) invited by Adobe to attend the MAX conference. Nevertheless, a following is moot unless there is some substance to back it up and in Anne's blog, Anne 2.0, there is a lot of good substance.

So what does this mean for the established analyst industry? Could it just be that they have a stronger and more formidable competitor. Perhaps but to me I see Redmonk as opening a new sector, perhaps something like an open knowledge/intelligence transfer sector or community. They are a part of an evolving ecosystem that is responsible for intelligence and knowledge transfer on a mass scale to all companies and individuals (not just large enterprise clients although Redmonk has some of those). They fill a unique and valuable niche in the marketplace to be a little more cutting edge, a lot more candid, a huge amount more open and present the knowledge back in a package that is accessible to more than just large multi-national corporations. They have a lot of what the rappers call "street cred" (credibility on the street with the average IT worker or gang members in the case of rappers). Maybe Redmonk should make a rap CD on Mix2r.com?

However you package this news up, one thing is for sure - Redmonk will be on every analyst company's radar after today.

Friday, November 24, 2006

Great LiveCycle Resources

I just came across this site
http://livecycleportal.org/. As far as I know, this is not published by Adobe yet is by far one of the best resources available for LiveCycle Developers. There is also a Google Group set up for LiveCycle Developers. I would encourage anyone interested in LiveCycle to join and contribute to the conversations. The group may be reached at http://groups-beta.google.com/group/livecycle?hl=en.

I have been asked numerous times about LiveCycle 8 given the excitement about the first truly SOA platform coming from Adobe. I cannot answer this question but would encourage people to check the Adobe Enterprise Developer Site at http://www.adobe.com/enterprise/developer/

Other than that, please post questions on this blog and I'll always try to get you an answer from inside Adobe.

peace!

Thursday, November 16, 2006

Webinar: Getting to know Apollo

For those who contacted me on the last entry wanting to know more about Apollo, there is a scheduled session to reveal the basics and more. It runs Nov 28 and you can register for it here.

I also got asked why this is truly revolutionary. Part of this is because it frees Flex and Flash developers from the limitations of running in a browser. The security model prevents scripts from executing in a browser that would potentially jeopardize the clients system. This means that every aspect of interaction between a Flash RIA running in a browser and a local resource has to be explicitly permissed. The Apollo Application Window replaces the browser and allows the RIA to interact with local resources as any other application would.

The distribution model is interesting and will likely be discussed during this call. The runtime environment model is similar to Java. In that model, the Java Virtual Machine (JVM) supports the runtime environment and maps the java functionality to the lower level operating system and platform, freeing developers from having to write code to target each platform. The motto of write once, run everywhere is appealing to developers.

More on Apollo later - I am going to test the M2 build today.

Wednesday, November 15, 2006

Adobe Apollo Groundswell!

I am an evangelist! I evangelize things. How did I become an evangelist? Simple - I declared "I am an evangelist" and went forth and evangelized. So what do I evangelize about? A lot of things but nothing that I am not excited about. Today I want to talk about Apollo.

Apollo is the code name for a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy Rich Internet Applications (RIAs) to the desktop. The possibilities and results are truly amazing. I compiled my first Apollo application while Mike Chambers was doing his talk at MAX. The process is fairly easy, especially if you are familiar with Flex Builder. When you set up your Flex project, all you have to do is import an extra *.swc file for the Application Window and use it in your project. There are some minor tweaks that need to be done now such as manually adding a new namespace but for the most part, the Application Window is the big item. It hosts the flash application but unlike the Flash Player which acts as a sandbox to run flash apps within a browser, the Application Window runs the flash applications as standalone apps with access to system resources. Give the power of Flex is you can rapidly build applications, these two technologies are going to be the cornerstone of new app development in the next decade (me thinks).

So how many people are getting stoked on this stuff? 4-5 months ago I did a search on google for "Adobe Apollo" and got 3,500 hits or thereabouts. Today it is at 196,000 - http://www.google.com/search?hl=en&q=%22adobe+%2B+apollo%22&btnG=Google+Search

Tschuss!

Tuesday, November 07, 2006

Web 2.0:: FAST re-born?

I am attending the talk on search produced from FAST, the search engine company out to tackle Google. As first I was a bit skeptical but Bjorn Olstad is a smart guy and started making sense. I'm going to give FAST a try and start doing my searches on it.

Interestingly enough, it raises a question brought up in the previous session I attended. How do I transfer my content from Google to Fast? I have a google start page made with quite an impressive array of widgets and information. This is my normal dashboard when I get online. The first things I want to see are Adobe's current stock price, weather reports, news from /., CNET, BBC, the Onion's RSS feed and a bunch of other stuff. How easy is it for me to transfer this information from Google to Fast? Has Google created an unfair market for Search based on adding so many periferal bits? Probably no but it is something I want to be conscious of in the future.

Fast - here I come. Send me some results. The Fast guys are smart, think I'll have some beers with them later. I also want to talk to them about how Adobe might work with them.

FTI ( /. means "Slashdot" for those who didn't get it)

Confused over Mozilla and AVM?

Hey y'all. So here I am at Web 2.0 and I am getting tons of people coming up to me stating some pretty wierd interpretations of our announcement today. For the record, the official announcement is here:

http://www.adobe.com/aboutadobe/pressroom/pressreleases/200611/110706Mozilla.html

Please read this carefully to avoid the top 5 misperceptions:

1. We are donating Flash to open source. This is not true. We contributed source code for the ActionScript Virtual Machine (AVM) to the Mozilla Foundation. AVM is the scripting language engine which interprets Actionscript during runtime. It is a very advanced and well thought out software application but like any other can benefit from new fresh contributions.
2. We have not donated the Flash Player to open source. Note that several /.ers think we are. It is also not true. FP != AVM.
3. We did not purchase Mozilla. One girl told me and several others ina hallway we did. I won't even get into this one....
4. We control the project in Mozilla caled Tamarin. No we don't - in fact giving the code to Mozilla is just the opposite.
5. We are not making flash director open source.

Folks - please read the release carefully....

Thanks

Hello from Web 2.0 2006 in San Francisco


I am at the Web 2.0 conference today. I have been treated like royalty today thanks to the huge announcement today that Adobe donated source code for the ActionScript Virtual machine (AVM - the code behind Flash) to Mozilla. The renewed and invigorated commitment to open source software has made us hugely popular with the crowds here. As an opportunist, I will be honest and state that I will accept any offers of free drinks on behalf of Adobe ;-)

A great session was put together to examine the subject of impact of SaaS and other W2P0 paradigms on Small Business. Google, Etelos, Soho and Microsoft were panel members. Some concerns that SMB’s voiced were the lack of good software use models (trials etc) are in contravention of the needs of SMB’s. Despite being standing room only, the session was pretty active. Danny from Etelos is a smart guy with a funny sense of humour (note the Canadian Spelling - I do this to poke fun at his USA accent and spelling mistakes WRT the queen's english. maybe he'll comment back ;-)



I pointed out during the discussion that Adobe has made huge strides in the area of SaaS to recognize that not all PDF users will pay $500 for a copy of acrobat if they think they will only ever need to make 5-10 PDF’s. We also offer the functionality of Acrobat Connect (formerly Breeze) and Adobe LiveCycle Policy Server as a Service. The question posed back was – when will Photoshop be a service? Interesting idea. There are a few good ideas that came out of this during the ensuing conversations:

1. Would someone make a web service to compile MXML into Flash files (*.SWF)?
2. Will our Web Service for PDF be extended to accept pure XML input and what format will that input be? Perhaps PxDF – an XML version of PDF?
3. What services will Adobe offer that can be used in Mashups? Currently, we enable many other companies to expose their services in a way they can be consumed.

The main conclusions drawn from this session are that ecosystems are good for services and there has to be trust in the service provider. SMB’s also need to know they are not locked in when using SaaS models.

Friday, October 27, 2006

Beyond MAX is Apollo - First Mac OSX Application

Well here I am, back home from MAX 2006. The event was killer! Tagged with the Marketing slogan "Beyond Boundaries", it turned out to be so pulling that we never made it "Beyond the Hotel". So what was the biggest pull? The LiveCycle Birds of a Feather was cool (yes - my boss John H. will shoot me when he gets the bill for the beers I bought for everyone) but Apollo was my favorite. Being on the inside at Adobe is cool. Really really cool. I get first dibs on new technology and get to whip up samples to test. Watching Mike Chambers at Max 2006 was inspirational. He is soft spoken and very humble while showing us potentially the coolest of the cool.

Apollo is an internal code name for an application framework that uses flash yet does not require a browser to render like Flex Applications or Flash (*.swf) files. Apollo applications use a parent container as a frame that will eventually be able to Apollo Code Sample

The MXML file above can be compiled alongside an "application.xml" file that declares the pieces to the application. In this case, it is simple and there are only two files. The end result is the *.air file which renders in Flash but skinned as a complete application.



Flex 2 is cool but sorry - I think Apollo is gonna be *way* cooler. If you are coming to Web 2.0, stop by the Adobe booth to say Hi and I'll give you a quick demo of Apollo.

Wednesday, October 25, 2006

Grabbing XMP Data with XPAAJ

During Max 2006, I am helping out Gunar Penekis with a talk on XMP and demonstrating our XMP SDK toolkit written in C. The Adobe SDK uses James Clarke's Expat Parser and has some custom classes to grab XMP and manipulate it. The samples directory also has some great examples to get anyone up and running.

However....

Being a bit more of a Java head, I felt like being productive. During Matt Butler's excellent 3 hour hands on tutorial on LiveCycle, I got inspired to write an extension to the XPAAJ sample I posted earlier for getting XMP out of a PDF document. The source code is here (sorry about the formatting - email me if you want to get the real file via dnickull (at) adobe (dot) com):

import java.io.*;
import java.util.*;
import java.awt.image.DataBuffer;
import com.adobe.pdf.*;

/* XMPExtractSample
* by Duane Nickull, Adobe Systems Inc. dnickull@adobe.com
* Copyright (c) 2006 - all rights reserved
*
* Use this at your own risk and don't whine to me if it doesn't work.
* You will need to have XPAAJ.jar from Adobe.com. Written and tested
* with JDK 1.5 on a mac w/osx 10.4.7
*/

public class XMPExtractSample {

public static void main(String[] args)
throws FileNotFoundException, IOException

/* Make sure we have the correct args.length() and call PDFExtract() */
{
String inPdfName;
if(args.length != 1 )
{
System.out.println("\nCommand line format: java DuanePDFClass1 pdf-file");
return;
}
else
{
inPdfName = new String(args[0]);
PDFExtract(inPdfName);
}
}
public static void PDFExtract(String inPdfName)
throws FileNotFoundException, IOException

{
System.out.println("\nOpening PDF with DuanePDFClass1...");
PDFDocument doc = null;
boolean b = false;
FileInputStream inPdfFile = new FileInputStream(inPdfName);
try {
doc = PDFFactory.openDocument(inPdfFile);
} catch (IOException e) {
System.out.println("Error opening PDF file :" + inPdfName);
System.out.println(e);
}

if(doc == null)
System.out.println("Cannot open PDF file : " + inPdfName);
else
System.out.println( "\n" + inPdfName + " was successfully opened.");

// Export the xmp metadata from the document

try {

//Call the PDFDocument object's exportXMP method.
InputStream myXMPStream = doc.exportXMP();

//Get the byte size of the InputStream object.
int numBytes = myXMPStream.available();
System.out.println("\nNumber of XMP Bytes found is " + numBytes + "\n");

// Read into a Buffered Reader Stream.
BufferedReader d = new BufferedReader(new InputStreamReader(myXMPStream));

// Iterate through the XMP object and print each line
String xmpLine;
while((xmpLine = d.readLine()) != null)
{
System.out.println(xmpLine);
}

// Find the Physical Memory Reference of the object
System.out.println("\nXMP InputStream is in physical memory at -> " + d);

//Create an array of bytes. Allocate numBytes of memory.
byte [] MDBytes = new byte[numBytes];

//Read the XMP metadata by calling the InputStream object’s read method.

myXMPStream.read(MDBytes);

} catch (IOException e){

System.out.println("it went really bad" + e );

}
System.out.println("\nXMP Extraction has finished.");
}
}

Tuesday, October 24, 2006

LiveCycle Tracks at Max are busy


Okay - who would have believed this a few weeks ago. The LiveCycle tracks at max are filling up. The photo above is from Sanga's LiveCycle 8: What's coming talk this AM. Despite a late start due to the general session running over, the talk filled up. The lunch hall was filled to boot!

have to run and prepare for two back to back talks - first one I have to build our new XMP SDK 4.0 in xCode on the Mac to demonstrate the functionality. My C skills are a bit rusty. Later, Christoph Rooms and I are doing our first talk on LiveCycle Security Architecture.

MAX 2006 - Shantanu and Blue Men


During the morning keynote we were treated to a performance by the Blue Man Group. Think heavy metal music with magic tricks, art and paint. Lots of paint. Mostly blue paint.

Shantanu is giving a great keynote speech right now. He also issued a challenge to everyone here to try and solve the Semaphore puzzle on the roof of the Adobe building in San Jose. No one has solved it yet. There are several observations on this blog for anyone interested.

Shantanu also re-iterated Adobe’s aim to bring the internet to more than 1 billion people in China and India via cell phones. Kevin Lynch then kicked off a series of demos including new integration between Dreamweaver and Photoshop. As a former web head, this is a huge improvement in the workflow most webmasters go through. The workflow also includes the Spry Framework for AJAX (very cool). Spry makes AJAX easier for website designers.

More to come...

Monday, October 23, 2006

Day One from MAX 2006 (Report from a personal perspective)

Okay – I’m just going to say it and you can label me a hype – “Max is rad”! Not only is the Venetian a really cool place to have a conference but this is one of the best conferences in terms of the cool factor I have been to in a while. Yes – it has all the usually JavaOne type things like the Bean Bag chairs, Ted Patrick’s Maxup and tons of corners, ad-hoc groups and meetings but it is also something more. I think people are generally really excited about Max 2006 given it is the first time Macromedia and Adobe have joined forces to deliver the show. The complexion is something no one could have predicted. Tracks like LiveCycle, an Adobe set of technologies and servers, are in popular demand at a conference typically dominated by Cold Fusion, Flex, Flash, Firefox and Dreamweaver zealots. Matt Butler’s LiveCycle track is actually sold out!! Who would have predicted.

Candidly, Adobe culture can generally use some influence from macromedia in terms of how to have fun, but MAX is really a demonstration that the two companies have truly become one. Despite the corporate directions at the staff meetings like “have fun” which were delivered in a way that sounded akin to a declaration of war, the people here are having fun. I think this would have happened without the official direction but c’est la vie. It’s all good now that we’re unwinding.

I spent the first half of my day attending the usual Adobe mandatory meetings, doing last minute planning for the talks I am presenting and other housekeeping items, but in the afternoon I had the change to attend some tracks. My favorite was David Gassner’s Developing rich internet applications with Flex and Java. In all fairness, this was one of the few that I was able to attend given most of the others including Simon Horvath’s were completely sold out and no standing at the back was permitted. I guess it pays to plan ahead – something I might start doing one day.

David’s course is a hands on course with 25 computers in the room (2 people to a room). It is amazing to see the level of technical knowledge transplanted by David into the attendees. In the last 4 hours, I got to see people with no or little J2EE experience actually write a Flex app that called specific methods available on the app server. Simply stated, the room was full of “lights going on” moments.

Tonight is the pre-party at the Cabana’s and will be tons of fun (tons of free drink and food for all near open swimming pools with wet slippery floors has huge entertainment potential).

Word up – if you’re coming next year register early and pre-register for the sessions. Don’t wait till the last minute like me.

More later.

Thursday, October 19, 2006

Flash Player 9 for Linux arrives!

Yes - it is finally out. The beta version of Adobe Flash Player 9 for Linux is now available on Adobe Labs, at http://labs.adobe.com/technologies/flashplayer9/.

Additionally, the Flex 2.0 compiler for Linux is available. The Flash Player 9 Update Beta for Linux includes the features of Flash Player 9 Update, with the exception of full-screen mode and SSL support (SSL support is currently available in the Linux Plugin but not the Linux Standalone Player). Full-screen mode and SSL support will be available in the final release. We've also posted a Linux Beta FAQ on the Flash Player wiki on Adobe Labs.

Now you can develop and test on your Linux machine. Use the free Adobe Flex 2 SDK , which includes the command-line compiler to develop and deploy Flex-based applications entirely on Linux machines. Flex Data Services is also supported on Linux. More info here on the Flex 2 for Linux wiki on Adobe Labs.

And, because this will be the next question now that we've satisfied your beta player needs: the Adobe Flash Player team is working on support for 64-bit platforms as part of our ongoing commitment to the cross-platform compatibility of Adobe Flash Player. We have not announced timing or release dates.

Known Issues - Linux
* Full-screen mode is not available for the Linux player yet. This feature will be implemented for the final release.
* SSL support is not available in the Linux Standalone Player. This feature will be implemented for the final release.
* Express Install is an unsupported feature due to the variety of Linux platforms, each handling the Adobe Flash Player plug-in installation in different ways.
* The plugin does not currently work in Opera browsers. We are working with Opera on these issues.
* Artifacts may appear when video initially plays.
* System fonts may appear differently between Linux distributions. Formatting issues may result.
* AMF3 connections do not work over RTMP. (186958)
* Right clicking outside of Flash Player while the context menu is displayed doesn't make the context menu disappear. Workaround: Left-click to turn off the context menu. (187957)
* IME is not available (no international text input). (184489)
* Acrobat Connect Add-In installation is not working at this time. (188318)
* The Standalone Player is available in English only. (184237)

More info on system requirements and fixed issues for Mac and Win in the release notes. You should also check any detection you've built for your demo sites -- we fixed the problem where the first beta was 9.0.18.x but we had already released the Intel Mac version as 9.0.20.x. Sorry about the confusion. Now Update 1 has been bumped up to 9.0.21.x across all available platforms.

Wednesday, October 04, 2006

Adobe Looking for Canadian Students

We're looking for a University Student in Canada

Are you currently enrolled in a computer science or engineering program at a university in Canada? We're looking for volunteers to help co-ordinate events that we are planning at universities across Canada. The ideal candidate should have the following qualifications:

* Is an active member of student population with strong communication skills
* Is involved in extra-curricular university programs and / or be a member of student associations / committees
* Understands technical concepts and stays current with emerging technologies
* Proven experience and ability to create, maintain, and manage a blog
* Demonstrates good time management skills and ability to work independently
* Experience in planning and managing events is highly desirable

We're calling these positions "Adobe Ambassadors". Here's a list of expected responsibilities:

* Organizing student events that are open to all students and members of the faculty. The purpose of each event would be to educate and provide information to the attendees on Adobe’s current and emerging technologies. A budget will be provided to pay for costs associated with the event. One event per study term is expected, and the Ambassador will be responsible for all stages of planning and managing the event with collaboration from the Adobe Enterprise and Developer team.
* The Ambassador will be given opportunities to present at the planned events, sometimes in conjunction with Adobe technical evangelists.
* Become an Ambassador for Adobe’s products within the student body and provide valued feedback to the Adobe on how students and faculty use their technology in studies, and the user experience of using Adobe technology.
* The Ambassador will work closely with the school’s student organization and be responsible for preparing and aid in advertising for any Adobe on-campus events.
* The Adobe Ambassador will be the conduit of information between the university’s student population and Adobe. Regular on-going communication and feedback on the program in general is expected.
* The Adobe Ambassador will maintain a blog, and will publish information on Adobe technologies, news and articles, information regarding upcoming events, and more.

The positions are currently open and available to students at the following universities in Canada. They are not available at any other university. We'll be expanding the program in the future, but we're limiting it to the following schools: University of British Columbia, Simon Frasier University, BC Institute of Technology (BCIT), University of Western Ontario, Waterloo University, University of Ottawa, Queen's University, University of Toronto, McMaster University and McGill University.

If you have any questions about the position, please post them in this blog. If you would like to apply, please send your resume to adoberep@adobe.com.