Friday, May 21, 2010

Flash Player 10.1 on Google TV

Adobe and Google are working closely together on a number of different efforts including support for Flash Player 10.1 and AIR across various platforms and devices. One of these new platforms is Google TV, Google's new Android based platform that brings the power of the web in to the living room. Google TV includes Flash Player 10.1 integrated directly into the Google Chrome browser delivering the full Web to consumers on their television sets. The digital home is a huge step for Flash and it represents an amazing new screen for developers and content creators to bring rich interactive content to the TV.

Read the rest here

Video:

Thursday, May 20, 2010

AIR 2 for Android Public Beta!

They AIR team did it!! While at Google I/O this week developers are getting blasted with awesome news and new technology, Google and Adobe have worked hard on this and IMO it is a top 5 event of the week. For those of you who don't know AIR, Adobe AIR for Android enables developers to build standalone applications that run on Android devices, like the Nexus One (my all time favorite smartphone). You can use any text editor and the free SDK to build applications and easily deliver applications that work across Linux, Mac, Android, and PC. When developing for Android, you must use the AIR for Android SDK.

By joining this Public Prerelease program, you will have access to a beta version of the AIR SDK with support for Android. Before signing up for this program, there are currently limitations that you should be aware of:

  • In this early stage of development, you should be comfortable with using command line tools.
  • Flash Professional CS5 now has a new extension that allows developers to publish directly to Android-powered devices. The extension adds a new AIR for Android publish setting that works in the shipping and 30-trial versions of Flash Professional CS5.
  • The Flex 4 framework has not yet been optimized for mobile devices; for this prerelease, we recommend building applications using ActionScript only. We're currently working on creating a highly productive, cross-platform solution for mobile development using Flash Builder and Flex, which we expect to be available in public preview by the end of this year.
  • You will be able to build and test AIR applications on Android devices, but you will not be able to deploy on the Android Market or share them with end users
  • You will be subject to terms of an NDA which allows you to display your application publicly, but you will not be permitted to disclose anything outside of Licensee’s own personal development experiences of a beta Android application(s) using this beta AIR SDK.


If you are interested in joining our Prerelease program, just go here:

http://labs.adobe.com/technologies/air2/android/

I'm going there now!


Wednesday, May 19, 2010

Some more Adobe HTML5 love!

Today at the Google I/O conference, Adobe CTO Kevin Lynch gave a strong speech pumping up our support and excitement around HTML5. The video is online here - http://www.youtube.com/GoogleDevelopers. This is an awesome conference and great announcements continue to pour out.

In parallel, Adobe is now offering a new Dreamweaver CS5 HTML5 Extension. This pack brings enhanced capabilities for HTML5 and CSS3 to web designers and developers using Dreamweaver CS5. The update and more information is now available on Adobe at http://bit.ly/DWHTML5.

HTML5 is going to be huge for everyone!

Saturday, May 15, 2010

Seaport Cafe, NYC - a place that really sucks

I have eaten in over 30 countries in multiple thousands of cities over the last 2 decades as a traveler but never have I been at a restaurant worse than the Seaport Cafe in southern NY. Note that this includes restaurants in developing nations or transitioning economies. This is the first restaurant I have eaten at that was so bad I felt obliged to blog about it to warn others.

This place has the worst food you can imagine and a fixed gratuity even though my wife and I waited over 30 minutes to be given menus and another 30 minutes to get our food. But hey - why hurry when the tip is already built into the bill? When the food arrived it was cold and stale. The tomatoes were white (unripe), lettuce wasn't washed and the buns old and frightful. I wish I had check out the Google reviews first as it seems everyone else agrees this is the worst restaurant ever - http://maps.google.com/maps?oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&q=seaport+cafe+new+york&fb=1&gl=us&hq=seaport+cafe&hnear=new+york&cid=0,0,12350209958079735554&ei=HuPuS4yhLormswP6gd28Dw&sa=X&oi=local_result&ct=image&resnum=1&ved=0CBMQnwIwAA

The worst part is the complete lack of understanding of the process of waste. Everything came in plastic containers. Here is a photo:


The plates = all plastic, all condiments individually wrapped or in more plastic
Cutlery = all plastic, wrapped in more plastic
Orange juice = served in plastic, plastic lid, straw and wrapper on the straw

The servers are indicative of a society where they are only the second generation in their bloodline to walk upright, some of them probably still have relative who live in caves and trees.

The list goes on an on. Shame on you Seaport Cafe!!!

YOU HAVE BEEN WARNED! STAY AWAY!

Monday, May 03, 2010

Technoracle’s Top-10 reasons for using Flash Builder 4 for Flex 3 Projects.

I write this after only being half way through my itinerary for speaking about Flash Builder 4 to Adobe Flex User Groups. Having a chance to hang with many developers made me realize that we (Adobe) understated a major benefit of Flash Builder 4. Specifically, it seems we could have done a better job of explaining some of the key benefits for using Flash Builder 4 for Flex 3 projects. Many Flex developers I have talked to seem to be holding off on upgrading to Flash Builder 4 based on a perception that they also have to also update all projects from Flex 3 to Flex 4. This is simply not true. One of the top requests for the next version of Flex Builder was the ability to use multiple Flex SDKs within one IDE. You can import your Flex 3.X projects into Flash Builder 4 today and they will simply work. Check out this cool feature on the new project creation wizard shown below:



The top ten reasons are presented in random order (I’m a pretty random guy). Also note that this article does not get in to the compelling reasons why someone would want to use Flex 4 instead of Flex 3. The reality is that many of the developers I have spoken to work on large scale, long term enterprise Flex projects and rewriting them in Flex 4 is not something up for negotiation. If you are one of those, this article caters to you. I could write another ten pages on the beauty of Flex 4 and the new Spark component architecture but I am a lazy Adobe employee and this is probably the only blog post I will write this week. Here is my list.


1. Enhancements to ASDoc integration. By far, my most favorite feature of Flash Builder 4 is the tighter integration with the ASDocs and the enhanced information available during the development process. Any time you hover the cursor over a reference to a component, ASDoc information is available as both a popup menu (can be disabled) or via the ASDocs tab.



This is so powerful for developers for a number of reasons. One is that you instantly have access to the information about that component/class without having to migrate to another screen or window. This includes full inheritance and a plain text description of what it does (brief version). The second is that there are embedded hyperlinks to the documentation of related classes so you can get a feel for whether or not you are using the right component or class. The new addition of information about which language version of the Flex SDK the functionality appeared in as well as which Flash Player and AIR runtimes is also very useful.

2. The ability to use multiple SDKs.
As mentioned above, Flash Builder 4 lets you start new projects in Flex 4 but also finish up existing projects in Flex 3 with the aide of all the enhanced developer tooling. Even if you’re just going to do Flex 3 for the short term future, this is the IDE you want to be on.

3. Pair code highlighting.
Whenever you hover over a component declaration or named object, Flash Builder highlights all instances of it. This even works across both MXML and AS as shown below.



This one feature alone has saved my sorry developer behind so many times when I’ve made typos.

4. The Network Monitor.
This is another one of my favorites and, if you will indulge me, a totally kickass addition to the IDE. As an SOA guy, I spend a lot of my coding time working on remote calls to services. The Flex Builder 3 IDE hid most of the details from the developer making it difficult to debug an application when something went wrong. The Network Monitor gives you the raw messages in both a logical and raw data view. You can easily spot malformed headers, get direct access to SOAP fault messages, and see HTTP, AMF, and raw text results in real time. Below is a typical HTTP request.



And here is the accompanying response.



This tool makes it so easy to debug both simple and complex message exchanges in a variety of protocols.

5. Enhanced Data Centric Development features. My record for setting up a new project, using the Web Service wizard to inspect a WSDL instance, generate the stub code, generate a form for the service call, optimize it, save it, compile and run it is 26 seconds! Do I need to say more? Not really but I will. The Flash Builder team also answered the biggest developer request which was access to the generated code to inspect and modify. For example, here is the generated code for the service call above. Note that the parameters for all the details of the call are clearly spelled out in plain ActionScript for you to inspect.



But wait! That is not all you get. This code is from the super-class. If you want to modify this, there is a sub-class stubbed out with the starter code, which allows you to override permissible operations or functions without messing up the generated code! IMO this is a very cool feature.


6. Fix Code Indentation. OK – this blows the SAP “pretty printer” away. If you are like me, code is art. I see beauty in well written and properly indented code. If you are fine with code that is indented like a drunken lemur had access to a random number generator that controlled lead in spaces on each character, you might not use this feature. If you want to create code that can be displayed in the Louvre, check this feature out. Here is the art-less heathen coding style that multiple quick fixes can create just before the “Correct Indentation” is used.



and here is the work of art that results:



Beauty is in the eye of the developer (since it all gets compiled into a SWF anyways).

7. Fiber Plugin. The Fiber (a code name for a data model driven methodology for development) is one of the coolest client and server-side technologies ever made. When you use the Data Model plugin with Flash Builder 4 and a supported application server like LiveCycle Data Services 3.1 running on JBoss, there is simply nothing better for developing a client with full CRUD capabilities with the Flash Builder 4 IDE. This one feature alone should be the holy grail for many J2EE developers looking to cap a great enterprise application with an awesome GUI written in Flex. Flash Builder 4 gives the developer a “view” into the servers’ data capabilities via HSQLDB running on port 9002 (default).



What is awesome is that these tables can be simply dragged directly into an existing project, which then creates service calls for all major CRUD operations. Generating a graphical user interface is as easy as dragging and dropping a service call onto a datagrid or right-clicking and selecting “Generate Form”. Rather than repeat everything in this blog post, I would direct you to the tutorial posted at http://www.adobe.com/devnet/livecycle/articles/lcdses2_mdd_quickstart.html.

8. Easier FlexPMD Integration. If you are a Flex Developer and have not tried FlexPMD yet, do yourself a huge favor and try it out. FlexPMD is an open source tool that helps to improve code quality by auditing any AS3/Flex source directory and detecting common bad practices, such as:

* Unused code (functions, variables, constants, etc.)
* Inefficient code (misuse of dynamic filters, heavy constructors, etc.)
* Over-complex code (nested loops, too many conditionals, etc.)
* Over-long code (classes, methods, etc.)
* Incorrect use of the Flex component lifecycle (commit Properties, etc.)

Flex PMD can be easily installed and run on any Flex project to find out how well ( or not ) your coding practices align with industry conventions. Of course my own code generates very few exceptions (if you believe the last sentence I have a bridge to sell you).



9. Automatic Event Handler Generation.
One of the top things I get errors with is catching an event and passing an event object to the event handler. Flash Builder 4 has a very cool feature whereby in the code complete, the IDE offers to create an event handler for you automatically.


This now makes me also want a new feature in the future. I would love to have the ability to have this generate the click handler as an ActionScript class inside of one of my packages in my project.

10. Automatic Getter/Setter code generation. This is a feature I haven’t personally used but am looking forward to trying on larger projects. When following enterprise Flex coding practices and conventions related to OO methodologies, developers often find themselves performing the same basic patterns over and over. By automating some of these patterns, developers can free their time from the more mundane programming tasks. When you create a variable in Flash Builder 4, you can right click and select “generate getter/setter” and Flash Builder will build the code for you. Below is the result from such an operation.


Even though I only listed ten, there are tons of other new features you can use within Flash Builder 4 for Flex 3 projects. So what are you sitting there reading this for? Download and try Flash Builder 4 trial already!

Thursday, April 29, 2010

Flash Player Gala preview release!

A new Flash Player, code-named “Gala”, is now live for preview. One of the newest features of this release is support for H.264 video hardware decoding on Mac OS X 10.6.3. Note that Flash Player has supported H.264, the codec behind HD, since 2007. This newest release, with support for video hardware decoding, should logically make for a much better video performance on supported versions of OS X.

From the release:

"Gala allows developers to preview Flash Player with hardware acceleration of H.264 video on supported Mac computers equipped with the following GPUs: NVIDIA GeForce 9400M, GeForce 320M or GeForce GT 330M. The hardware acceleration functionality in the Gala preview release of Flash Player is expected to be included in an update following the release of Flash Player 10.1."

Read more or sign up here.

Friday, April 23, 2010

Tutorial: Dynamically Changing PDF form labels

This tutorial shows how to change the caption for a PDF form element at runtime based on a user's interaction with another form component.

How to add a 2D bar code to your LiveCycle Forms

This video tutorial covers how to add a 2D bar code for capturing and retrieving data from a PDF form. The LiveCycle Designer process shows how to create the bar code and link it to a data set.

Thursday, April 22, 2010

Using LiveCycle ES2 on the Cloud

This video is a complete tutorial on how to get set up and start developing against LiveCycle ES2 running on the Amazon cloud. If you want to get set up, here are the physical links to reproduce this demo:

1. Download and install the LiveCycle ES2 trial. You will need the libraries in the SDK folder to complete this exercise - https://www.adobe.com/products/eula/livecycle/es/trial/

2. Get access to a cloud account via the Adobe Enterprise Developer Program - http://www.adobe.com/devnet/aedp/dev_exp/.

Here is the video tutorial:



LiveCycle Services Discovery Plug-in for Flash Builder 4 is another component you may wish to download. Tutorials on using this will be forthcoming shortly. With this plug-in you can quickly build Flex and AIR applications that invoke a LiveCycle service through remoting endpoints. You must have an installation of Flash Builder 4 before installing the Modeler.

Some great LiveCycle ES2 links

As forwarded to me by Shelley Paquette. If you use LiveCycle ES2, this list will be very helpful.

1- Adobe TV: Introduction to LCES2: http://tv.adobe.com/watch/getting-to-know-livecycle-es2/adobe-livecycle-es2-introduction-for-developers/

2- LCES Overview: http://help.adobe.com/en_US/livecycle/9.0/overview.pdf

3- Preparing to Install LCES2: http://help.adobe.com/en_US/livecycle/9.0/prepareinstallsingle.pdf

4- Tutorial on installing the LCES2 Turnkey Solution http://help.adobe.com/en_US/livecycle/9.0/tutorial_turnkey.pdf

5- Installing your LC development environment: http://help.adobe.com/en_US/livecycle/9.0/install_dev_enviro.pdf

6- Creating your first LC application: http://help.adobe.com/en_US/livecycle/9.0/createfirstapp.pdf

7- LCES2 full documentation set: http://help.adobe.com/en_US/livecycle/9.0/lc_doclist.html

Wednesday, April 21, 2010

Flash on Mobile: An exciting future!

Adobe has been working with engineers at many mobile companies including RIM, Nokia, Sony Ericsson, Google, Palm and more. This is part of the Open Screen Project, something that keeps looking better and better. There are some very cool business drivers behind the genesis of OSP; however the one that most developers will like is the ability to deploy applications to many screens using Flash and AIR.

The Adobe AIR team has already posted some pre-release snapshots of AIR running on Google Android devices here - http://www.adobe.com/devnet/devices/demos/

If you are interested in developing AIR and Flash Applications for the Android operating system, there is a pre-sign up you can access here:
As OSP moves forward, expect to see more news about Flash over multiple screens.

Flash and Standards:

Some people have asked in the past that the Flash file format specification be placed into the hands of a Standards Development Organization (SDO), similar to what has happened with PDF going to ISO. This is something I believe Adobe would do if they could, however in the unique case of SWF and the manner in which it became what it is today, it is unlikely to happen.

A further clarification is also worthy of noting. When people say "make Flash a(n open) standard", they really are speaking of the SWF file format. "Flash" is really an entire platform since it includes development tools, runtime plugins and environments, server side tools, side channel communications methodologies for dynamic bandwidth compensation, several servers (Flash Media Server, BlazeDS for example), binary encodings (AMF) and more. The SWF file format is a standard as it sits today. The SWF file format is published here. AMF is also published as an open specification as reported by Slashdot.

I would assert that the SWF file format is a de facto standard. Adobe cannot change it radically based on the fact they care about their community. Flash has to always be backwards compatible to play older versions. It is a pure illusion that Adobe controls Flash and can do with it what they want. The community would rebel.

I would see that the OSP project becomes a collective where more than just Adobe has input into the future of Flash. It will be good to see Google, RIM, Intel and others working directly with Adobe to build improvements into the SWF specification and beyond.

Mobile also brings some unique challenges for developers. Over the next few months I plan to bring some of these to light on this blog.

Tuesday, April 20, 2010

My Open Letter to Apple

I am outraged!! I came upon something that absolutely frightens me: Censorship, based on one group's beliefs of what is best for the rest of us. This comes in the form of a statement allegedly made by Apple's founder Steve Jobs. According to several sites, he stated "Folks who want porn can buy an android phone". (read here)

Before I comment on this, there are a few things I want to say. First, I have used Mac computers as my main machines for the last few years and find them generally good machines. I also own an iPhone but recently switched to the Android powered Nexus One. This was not to view porn but because I truly believe the Android devices are going to be the best. I am not one to nitpick and bitch that a new SDK agreement apparently bans Flash development tools for the iPhone. I won't dwell on the fact someone at Apple is also apparently using the company's strength to bully developers into following Apple's business plan blindly. I am focused on the future of our industry, society in general and what I personally believe is best.

So what is happening here????

In my opinion, a line has been crossed. On top of the porn statement above, a ban of a cartoon application based on what a small group of people believe is the moral direction YOU should follow. As reported by top10.com:

"Apple believes that allowing an app which contains images that mock celebrities and politicians to go on sale on the App Store would be in violation of the terms and conditions of the platform.

Fiore had proposed launching his NewToons app, but was rejected in December for the perceived vulgarity of his work."

UPDATE: An anonymous user below (in comments) suggest that Fiore's application has now been added back to the App Store. I have been unable to actually find it in the App Store however I did find a credible source which states that Apple is going to "Fix the Mistake". http://www.poynter.org/column.asp?id=134&aid=181700

I guess we have to wait and see.END_UPDATE

PEOPLE!!! This is textbook tyranny! A free and open society tolerates dissent. Canada even allowed Ann Coulter to speak, even though most Canadians I know think she is a moron. Is Apple going to tell you what you are and are not allowed to look at on your iPhone? Would you allow them to censor what music you are allowed to listen to? Would you allow the library to start burning books based on what might be too dangerous for you to read? Maybe not now but when tyrants have eliminated all that stands in their way, what is to stop them? It is time to take a stand. I think it is a civilian's duty to fight this. (It is my blog so personal opinions are allowed and you are free to post a comment to disagree with me as long as it is not spam to sell your products).

My own company, Adobe, does not tell me what to think and what to write or not write on this blog. They understand that my thoughts are my own and on blog posts like this I am clearly speaking for myself, not the company. This is why I am proud to work for Adobe.

I am drawing my line in the sand today. Why? Because, if you allow tyranny to breathe and prosper, there will be no one left to hear you when you scream for help. I don't know what their agenda is but these latest moves are completely unacceptable to me. Here is my public letter to Apple:

Dear Apple:

It has been fun, but you are no longer "cool". You have made some great gadgets and computers in the past, but others are open and you are not. While you have brought society some great things like the iPod and iPhone, this was in the past and your current antic of censorship is unacceptable to me. You see, in Canada, we have rights. We have the right to a free and open society. I will not subject myself to censorship. The result of your actions is that I will not develop for your mobile platform, nor support it. I will also be returning to a combination of Ubuntu Linux and Windows 7 for my main work machine. You see, I have the faith that people can decide for themselves what is appropriate for them and what is not. I do not believe that any one group has the right to make decisions on morality for the rest of us. I do not wish to live in such a society.

As far as applications go, you should allow developers to develop with any tools they want and judge all application submissions fairly based on the quality and performance of the applications. These should be done using clearly published rules and be consistently enforced. Would this not achieve the end result of a rich, robust app store filled with quality applications? At any rate, I do not see how it could be worse than having a plethora of fart noise generator applications, of which only 3 really work. Do you really think the quality of applications is based only on what development tools are used? I disagree.

Respect developers! I think it is not too late to change your mantra. I write this letter in an honest appeal that you hear how your actions are being taken. Developers are usually at the top of the technology adoption curve and several developers are beginning to have issues with you. What you really need to hear is that these same developers are the reason for your success. We are the ones who are asked "what computer should we buy" by our family and friends. When you piss off developers, there is a cascade effect that will eventually affect sales.

Respect individual rights! I have never looked at porn on my iPhone, but I don't want someone else deciding what is and what is not appropriate for me. I do not want Apple employees deciding whether or not a public figure can be questioned. Accordingly, my iPhone now rests harmlessly in it's box while my Google Nexus One is being used. I get tons of people asking me about this phone (read here) and I will keep promoting it while making sure my circle of friends understands the censorship and control issues.

It has been nice, but now it is time for me to move on. Ubuntu 10.4 is out and looks pretty damn nice. Microsoft seems to have learned from Vista and Windows 7 appeals. The Google Android phone is already better than the iPhone and I am excited to started developing Android apps. I can use Java, Flash, AJAX and any toolset I want.

I am committed to standards such as Flash, HTML5 and XML. Not gonna look back. PDF, Java, Silverlight, Android, Linux, Flash are all here to stay.

Please consider the reason I am writing this letter. I do believe you are capable of making some great stuff and doing some great things. I want to encourage you to reconsider your recent actions and hear what we, the developers and computer users of the world, are saying.

Respectfully,

Duane Nickull

Wednesday, April 14, 2010

Adobe MAX 2010

Adobe MAX 2010 takes place on Oct 23-27 at the LA Convention Center (same place as last year). The website is up and running at http://max.adobe.com/. MAX 2010 is the single, pivotal connection point in the universe for thousands of Adobe designers, developers, and business leaders. This is the one place where you get to meet the Adobe ones face to face.

There is a lot I would encourage you to do. If you are a speaker, you can submit to speak here:

Get on the mail list:

If you are a startup and want to let Adobe users see your product or offering, consider becoming a sponsor. There are tons of packages available and some companies like Konductor Software have found this a really great way to reach their core customers:

This is going to be a great party!

Wednesday, March 31, 2010

AR/Copter RC helicopter at Where 2.0

I want one of these toys! This is an RC controlled copter with sensors on board, controllable via a smart phone and equipped with cameras and other systems.

Monday, March 22, 2010

Duane's World - tutorial on LiveCycle cloud, SAP TechEd

This is my longest episode to date but it covers a lot of ground. This contains some great footage of the SAP TechEd 2009 including an exclusive interview with Craig Cmehil! There is also a complete tutorial to get you up and running on the LiveCycle ES2 cloud offering including working in Eclipse on a Mac OS X system to program against the ES2 SDK.

Sunday, March 21, 2010

Flash Builder 4 Released!

Perhaps the best (or worst) kept secret is the launch of Flash Builder 4. Well, damn - it is now out. At 12:01 EDT we have officially launched it.

So what is Flash Builder 4? Easy--it is the next product in the Flex Builder line. For those of you not familiar with Flex Builder, it is simply the best way to build enterprise Flash applications. I personally tried the Flash professional authoring tools and had a tough time. The first time I tried Flex Builder, it spoke to me. Events, objects, bindings and a host of other standard OO programming concepts.

Flash Builder 4 works with Flex 4, the successor to the Flex 3 SDK. Flex 4 has the new Spark skinning and component architecture. This offers substantial improvements over the previous component architecture and reflects the top asks from many developers who wanted Adobe to push the framework to a new level.

There are over 90 new features in this release. You can also use multiple SDKs so your Flex 3 projects will drop right in. Rather than repeat all the text, read about it here.

So what are you waiting for? Download the trial now!

http://www.adobe.com/go/try_flashbuilder

I also want to personally thank the entire Flash Builder team for this release. This sets the new standard for Flex.

Have a drink on me all!

Monday, March 15, 2010

Running BlazeDS on 32 bit Ubuntu Linux 9.04

This is a topic that will appeal to a very narrow minority (smart, not-frightened to try new stuff, developers). I have always loved Linux and lately found myself totally thrilled with Ubuntu. I've now run 9.04 on a Mac Pro in VMware and have a dual boot 64-bit install running Ubuntu 9.10. What can I tell you? If Adobe had an approved Exchange client for Ubuntu, I'd say bye-bye to OS X. Check out the screenshot:



There really isn't that much to get BlazeDS up and running on either of these systems, largely thanks to the ease of use built into Ubuntu. Here are the instructions to get it up and running.

1. Grab the Vancouver build of BlazeDS from here.

2. Unzip it to your desktop. Ubuntu 9.04 makes this simple as all you have to do is double click on the *.zip package, the same as OS X or Windows.

3. Check to see if you have a JDK configured and installed. To do this, grab a terminal and type in "javac" and see what comes back. If you have not installed a JDK before, you will get a message similar to this one:



4. This means you have to use a great feature of Ubuntu. The apt-get command is a powerful command-line tool used to work with Ubuntu's Advanced Packaging Tool (APT) performing such functions as installation of new software packages, upgrade of existing software packages and more. It can even update the O/S. apt-get has numerous advantages over other package management tools available in Ubuntu for server administrators. Some of these advantages include ease of use over simple terminal connections (SSH) and the ability to be used in system administration scripts, which can, in turn, be automated by the cron scheduling utility.

5. Run the command "sudo apt-get install sun-java6-jdk". This will install the Sun Java JDK. I chose this one over the others as I consider it the reference implementation for a JDK. Once you hit enter, you will be asked for your admin password and then the magic begins. I swear this was the easiest Java install I have ever done in my life. Thank you whoever created this tool at Ubuntu!!!




6. At some point during the install, you will be hit with the Sun license agreement. There will be a little (yes) prompt at the bottom of the grey area and none of the regular keys or mouse inputs seem to get you to be able to interact with it. You have to use the TAB key for this. Tab over until the (yes) is highlighted (shown below) and hit enter. Same for the next screen.


7. When this completes, you should be able to type "javac" into the command line and see the proper output (basically a prompt asking you for options).

8. Navigate to the folder where you saved the BlazeDS build from step 1. Using the terminal, chmod it to make it executable ( chmod -R 755 BlazeDS/ ). Chmod makes the file persist in a mode of "executable" if given the 755 argument. You may have to change to su to do this. This can be accomplished by typing in "sudo" in front of the command.

9. You're almost ready to start it up. The last step is to set $JAVA_HOME. To do this, you have to modify a small properties file that controls the environmental variables when in the terminal. This file is usually in your home directory. To switch back to this directory just type in "cd ~" and then type in "ls -la .bash*". This should provide a list of files that are hidden (from just running "ls") and you will see one such as .bashrc or .bash_profile. This is assuming you are running the BASH shell.

10. You will have to edit the .bashrc or similar file to add a line that sets the $JAVA_HOME environmental variable. First you have to know what this value should be. Within the terminal, type "whereis java". This should provide a list of locations where Java is installed.

My system returned the following:

administrator@ubuntu-904:~/Desktop$ whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

11. Unfortunately, the process is not quite straightforward. Grab a File Browser and navigate to the first path you see (in this case /usr/bin/) and inspect "java". On my system and many others, this will turn out to be a symbolic link to another location. To find out where, right click on it and select "Properties". Mine showed the location as /etc/alternatives/java.



12. Navigating to /etc/alternatives/java also revealed that this too was a symbolic link. The real target was /usr/lib/jvm/java-6-sun/jre/bin/java. This means that the real value for $JAVA_HOME will be /usr/lib/jvm/java-6-sun/.

13. To set this, use a line editor of your choice. I am going to use pico as pico is one I am familiar with. To do this, type the following in your terminal:

- "cd ~"
- "pico .bashrc"

14. Pico should bring up a configuration file. If it is not already filled in with lots of values, check the name of the config file and try again. In this file, you can add comments so I usually append my custom entries to the bottom of the file. In this case, at the very bottom, I enter the following lines of code:

# JAVA_HOME added by Duane Nickull
export JAVA_HOME=/usr/lib/jvm/java-6-sun

15. To save your .bashrc profile use "Control X" and answer "Y". Quit the current instance of terminal and open a new one. Test that your JAVA_HOME environmental variable is okay by typing in "echo $JAVA_HOME". You should see output like below:


16. With your terminal, navigate to the BlazeDS root folder, then change directory to the "sampledb" folder. Type in the following: "sh startdb.sh". The sample database should start up.

17. Start another instance of terminal and navigate to the BlazeDS root folder, then navigate to subfolders "tomcat" and "bin". Type in the following: "sh catalina.sh run".

18. Fire up a web browser and navigate to http://localhost:8400 (the default port the BlazeDS will be running on). Voila! You are done.




Coming up next will be some tutorials on Flex and AIR development on Linux if anyone is interested.

Tuesday, March 09, 2010

New Tutorial - How to set up your Model Driven Development

Sujit Reddy and I just co-wrote a new technical paper for the Adobe Developer Connection on how to get your development environment up and running if you want to take advantage of the powerful new features of LiveCycle Data Services 3 and Flash Builder 4.

Click here to get started - it only takes about 15 minutes from start to end.

LiveCycle Data Services ES2 is an important component for many companies migrating to a three-tier architecture for enterprise RIA development. The advanced Message Exchange Patterns (MEPs) it enables are unparalleled and very robust. This article is aimed at developers and distills the essential steps needed to set up model-driven development with LiveCycle Data Services ES2 and Flash Builder 4 beta 2.

In this tutorial, we'll share these steps to help you get started quickly and walk through building a simple application using a new technology that brings model-driven development to Flex developers. The model-driven development process is really cool. We were able to write a basic CRUD data grid and form to work against a back-end database with minimal lines of code. Below is a screenshot of the finished project.


So what are you waiting for? Start coding now!

Monday, March 08, 2010

What does my race/ethnicity have to do with Olympics?

Sorry if I am just a thick-headed Canadian farm boy but I saw something today that I have to ask about. I went to register for tickets for the 2010 London Olympics when I found this question posed to me:

Ethnicity: (it is on this web page)

Two immediate thoughts came out of this. First I wondered how to classify myself. Although I have relatively white skin, I do read books from other cultures and try to live some of their ideals. Buddhism is a particularly large influence on my private thoughts although most of you would never guess it. As I pondered this though the bigger picture entered my head and I asked the first question I should have.

What does your race have to do with watching the Olympics?

Sorry Olympics organizers but I really do not see the connection here. This could not have been asked in Canada at the recent 2010 games during the registration process as every person in Canada is afforded the same quality of life. The Charter of Rights and Freedoms guarantees this in section 15.1 (read here)

"15. (1) Every individual is equal before and under the law and has the right to the equal protection and equal benefit of the law without discrimination and, in particular, without discrimination based on race, national or ethnic origin, colour, religion, sex, age or mental or physical disability."


I guess I am missing something here. Can anyone shed some light on this?

Monday, March 01, 2010

Duane's World - Interview with David RR Webber

I was lucky to catch up with David RR Webber in Washington, DC and was able to talk to him about the OASIS Election Markup Language (EML). David and I also got kicked out of a bar in this episode.



Musical guest Matt MacKenzie lays down some 1980's flavour house groove with a great backbeat and ambiance. Code and Tunes gets into how to set up LiveCycle ES for Java Developers plus some tips on how the OASIS EML might be implemented using Adobe LiveCycle ES2 and PDF.