Posts in Category "Uncategorized"

Motorola and Verizon announce DROID 2 with Flash Player 10.1 preinstalled

Motorola and Verizon announce pre-sale of DROID 2 by Motorola starts Aug 11 with Android 2.2 and Adobe Flash Player 10.1 preinstalled.
DROID 2 is a feature-packed device that helps manage work and social life with an enhanced QWERTY keyboard, increased processing power, ultra high-speed Web browsing, 3G Mobile HotSpot capabilities, full push corporate e-mail, intuitive social messaging and Adobe® Flash® Player 10.1 for access to the full web on the go – all built on Android 2.2.  Flash Player 10.1 lets mobile users experience millions of websites the way they were meant to be seen – with rich Internet applications (RIAs), content inside the browser, including games, animations, data presentations and visualizations, e-commerce, music, video, audio and more. DROID 2 by Motorola will be available at www.verizonwireless.com on August 11, and it will be in Verizon Wireless Communications Stores beginning August 12 for $199.99 after a $100 mail-in rebate with a new two-year customer agreement.  To learn more about DROID 2 in action, visit www.droiddoes.com .   To get started optimizing your web content for mobile devices, see http://www.adobe.com/devnet/devices/fpmobile


Check out this video http://www.adobe.com/go/fp101droid2 , where Diana Helander of Adobe demos the full web on the new DROID 2 by Motorola running Flash Player 10.1. DROID 2 is the first smartphone to ship out of the box with Flash Player 10.1 and benefit from HW decoding of all H.264 video profiles in Flash Player.

Where to find more LiveCycle ES2 Sample Applications

I got a request from a customer asking me to help debug a problem they were having with a sample application. I’ll be posting about the solution to this soon.

After a lot of searching I discovered that this was not a sample that you get out of the box with ES2, but rather one you can download separately. To save you all this trouble and to give you some more interesting samples, I’m pasting the link below.

http://help.adobe.com/en_US/livecycle/9.0/samples/lc_sample_service.html

Conway’s Law and Code Ownership

Conway’s Law is one observation we can use as a guide on the initial stages of a Software project, it basically states that development modules organize themselves around the communication structure of an organization. So simply put, if you get three guys in a room that want to quickly roll-out a compiler and not interfere with each other’s work, you will have a three part compiler. Why? because each person does not want to know what the other is doing as long as each has stuck to an agreed interface, everyone is happy.

So, an architectural decision has been made, not by a best practice but by social communication. If the same three developers collaborated on a high-level architecture, a good design, and worked closely on its implementation, my guess is that they would have better results. Not only in the quality of work produced but also other intangibles.

Ever have one developer that is over-worked while the other ten developers wished they could help? Well, not paying attention to Conway’s law is probably the culprit. It is easy to fall into the the argument that: by giving each module an owner we have one throat to choke.

This type of thinking forgets some important items:

  1. People work on projects, someone will take unforeseen time-off.
  2. Dividing up modules does not necessarily divide work equally. Ever have a developer that had a super-easy module and wanders around like the floor like he’s the only one that has his act together?
  3. Unforeseen work presents a challenge on which module it belongs as each module owner will attempt to push the new work onto another. For example, where should certain validations be placed: front-end, middle tier, or at the persistence layer? I bet you the group that with the least political leverage will get this extra work.

So what can we do to break down the social communication barrier? One technique is to implement review practices. Requirements Reviews, Design Reviews, or even Pair Programming, just as long as people are talking.

Remember, a majority of Software Engineering problems can be boiled down to a lack of communication, so don’t avoid communication. The days of the unsociable introvert coder hiding in a dark basement as to avoid human contact is over.

Jar Jar to the rescue

I think we have all seen a JAR conflict on an application server, I still use JDOM and usually run into a conflict with an older version of the JAR installed somewhere on the system that I usually can’t touch.

So, what I did was to use an Ant task called Jar Jar that is available at: http://code.google.com/p/jarjar/

Jar Jar will take a Jar file or (a group of Jar files), change the package names, and repackage the result in a new Jar File. The idea is that you can create your own Jar file with your dependencies packaged in.

I use the BeanShell scripting language (www.beanshell.org) which is what the LiveCycle ES Workbench Script Object is based on. There is no JAR file that I deploy but a script, therefore no compiled code to deploy. So, I use Jar Jar a little differently then what is documented on Jar Jar’s Wiki. I create my own package for JDOM and one of its dependencies Jaxen and I place the new Jar file in the classpath.

My, Ant file looks like the following:

<project name="CustomJDOM" default="jar" basedir=".">

     <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="./jarjar-1.0rc7.jar"/>

     <target name="jar">

        <jarjar jarfile="jdom_custom.jar">

               <zipfileset src="lib/jaxen-core.jar"/>

              <zipfileset src="lib/jaxen-jdom.jar"/>

             <zipfileset src="lib/jdom.jar"/>

             <rule pattern="org.jaxen.**" result="org.jdom_1_1.jaxen.@1"/>

             <rule pattern="org.jdom.**" result="org.jdom_1_1.@1"/>

        </jarjar>

     </target>

</project>

 

Taking it a line by line:

<project name="CustomJDOM" default="jar" basedir=".">

Standard Ant project tag, the default target is "jar" which kicks of the Jar Jar task.

<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="./jarjar-1.0rc7.jar"/>

This is how you declare a new Ant task (or one of the ways), make sure you update the "classpath" variable to where ever you installed the "Jar Jar" Jar file.

<target name="jar">

I’m declaring a task to be run.

<jarjar jarfile="jdom_custom.jar">

This line kicks-off the Jar Jar task and writes the result to a file called: jdom_custom.jar

<zipfileset src="lib/jaxen-core.jar"/>

<zipfileset src="lib/jaxen-jdom.jar"/>

<zipfileset src="lib/jdom.jar"/>

The list of Jar files that will be repackaged in the new Jar file with a new package name.

<rule pattern="org.jaxen.**" result="org.jdom_1_1.jaxen.@1"/>

<rule pattern="org.jdom.**" result="org.jdom_1_1.@1"/>

I’m changing the package name from org.jaxen to org.jdom_1_1.jaxen and org.jdom to org.jdom_1_1.

To use the new Jar File. Include "jdom_custom.jar" in your classpath and use the new package names. So instead of using the package name: org.jdom in your code use: org.jdom_1_1. You never have to worry about a Jar file conflict again.

Adobe Consulting, Public Sector – Genesis

Hello everyone, the Adobe Consulting Public Sector group has been around for a number of years mainly working on LiveCycle and Flex projects. We decided that it was time to start communicating to the world the experiences we are gaining from working out at the field.

A little bit about our selves, we are not an Engineering, Marketing, or a Sales team, we are simply humble souls that need to get projects working at our customer’s site. So what will we blog about? Anything that we run into(or have) in our current or past projects that the world might gain from. We are Computer Scientists by nature and education, so anything within the field should be expected.

So let the blogging begin….