Archive for the ‘Uncategorized’ Category

Understanding the Market for Software Platforms

Jeff Vroom, the former BlazeDS & LiveCycle architect wrote an interesting article - Understanding the Market for Software Platforms. As a former TopLink user I can make a parallel between his examples and the comparison between Hibernate/TopLink. The former one was on the market for several years before of Hibernate and it was a very powerful ORM framework, however it lost the battle because the company acquiring it had no offer for the horizontal market - that means only a very low number of developers were using it, no books, very few articles and learning materials, and slower evolution in comparison with the Hibernate framework.

Survey - Flash Builder roadmap

Andrew Shorten, the new Flash Builder product manager, created a survey where you can express what do you want for the future version of the product. It takes 15 minutes and you can win some gadget if you are from USA or Canada. I think that if you are using Flash Builder you should fill in the survey - it is taken seriously, and there a lot of things to improve in this product.

The link for the survey is here.

LCDS, ManagedObjectProxy and some reserved keywords

Yesterday I struggled for several hours looking in the Livecycle Data Services code in order to investigate the following error message:TypeError: Error #1034: Type Coercion failed: cannot convert “ZGUID” to QName. It was not easy but in the end I understood that it is an issue related to property collision inside of the ManagedObjectProxy  class. The ManagedObjectProxy instance is adding all the properties from the serialized objects into it. However if the name of one of your properties already exists in the ManagedObjectProxy instance then this process will fail. The following properties already exist (inherited from ObjectProxy):

dispatcher : EventDispatcher
notifiers : Object
object : Object
propertyList : Array
proxyClass : Class
type : QName
uid:String

For the “type” property a fix was provided in Livecycle Data Services 3, but not for the others. So if you design your domain object and you plan to use Livecycle Data Services it’s a good idea to not use this reserved keywords as names for your properties.

The problem appears only if you like to use the proxy approach (not having the corresponding AS class included in the client SWF).

Netflix Values Presentation

A colleague of mine sent me this link from TechCrunch related to an internal Netflix presentation. It’s really interesting and I highly recommand to spend some time reading the slides (and to pass it to your manager). I’m not sure if this works for a larger company but at the first glance it looks like the perfect job - if you like both responsibility and autonomy.

Flex Camp - Cluj Napoca

Transylvania Flex Group is organizing a Flex Camp in Cluj Napoca on 15 October. You can see the full agenda and register here.

MAX Companion AIR Application

You can go this URL and install a nice AIR application - it offers three main functionalities: Twitter (all the messaged having #adobemax), session tracking and maybe the most important one- a map to quickly find the conference rooms and other locations.

Adobe Max online

As most of you know there is no Adobe Max in Europe this year. For the ones not able to go to Los Angeles you can register on Adobe Max online - the keynotes are going to be streamed live. You can also view the top session of the day from each track: Design, Develop, and Envision.

Logging everything in BlazeDS

When you create a Flex/Java project in Flex Builder the logging tag in the services-config.xml file looks like that:

    <logging>
        <target class=”flex.messaging.log.ConsoleTarget” level=”Error”>
            <properties>
                <prefix>[BlazeDS] </prefix>
                <includeDate>false</includeDate>
                <includeTime>false</includeTime>
                <includeLevel>false</includeLevel>
                <includeCategory>false</includeCategory>
            </properties>
            <filters>
                <pattern>Endpoint.*</pattern>
                <pattern>Service.*</pattern>
                <pattern>Configuration</pattern>
            </filters>
        </target>
    </logging>

Unfortunately you can lose some important error messages with this <filters> configuration. That’s why its better to edit the file after creating the project and change the filters section to *

    <filters>
        <pattern>*</pattern>
    </filters>

Logging in BlazeDS and LCDS with Java Util

I created a small class to allow integration between the logging mechanism from BlazeDS and java.util.logging. As an example it’s useful if you plan to use BlazeDS or Livecycle Data Services inside Google App Engine - the former one uses java.util.logging.

In order to use it you should modify services-config.xml to use the newly created class (I created my class in the package flex.messaging.log):
<target class=”flex.messaging.log.JavaUtilLogTarget” level=”Debug”>

The source code is below:

import java.util.logging.Level;

public class JavaUtilLogTarget extends AbstractTarget{
public void logEvent(LogEvent event) {

  java.util.logging.Logger log =
    java.util.logging.Logger.getLogger(event.logger.getCategory());
  Level level;

  if (event.level >= LogEvent.ERROR)
    level = Level.SEVERE;
  else if (event.level >= LogEvent.WARN)
    level = Level.WARNING;
  else if (event.level >= LogEvent.INFO)
    level = Level.INFO;
  else if (event.level >= LogEvent.DEBUG)
    level = Level.FINE;
  else
    level = Level.FINEST;

  log.log(level,event.message,event.throwable);

  }
}

Managing humans - Michael Lopp book

I discovered this book several nights ago and I was amazed. Funny and in the same time valuable it is also a “no-crap” book about working in the software world, dealing with difficult people, the value of information, building the version number 1.0 and many more things. The author offers practical solutions for a lot of scenarios, in a very humorous way.

Its not a book for just managers or for wanna be managers, any individual can benefit from it. However I think that for some individuals it can be harder to accept several of the author’s conclusion (I told you, it’s a “no crap” book). Especially for younger people.

The book can be bought here; also the author has a blog.