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 Data Services, Hibernate and Eclipse – Mike Slinn book

A lot of books about Flash, Flex, ActionScript and Java are available on the market and some of them are really good. However there are still very few books related to Flex and Java integration – best practices, frameworks, performance issues, patterns and anti patterns. Mike’s book fills a gap here, in talking primarily about the two Adobe products: BlazeDS and LiveCycle Data Services. I’ve met few people who really know well these products well, and I think that this book can help people get a better understanding. Flex and the other RIA technologies should improve not only the user experience/interaction but also the developers life  – making it much easier with – increased productivity, no more hacks and no more stateless clients. For that you need a strong platform both on the client and server side and LiveCycle Data Services can fulfill that.

The book comes with a tool written in Flash that can help you edit configuration files visually. Personally I would like to see an Eclipse plugin also – but considering that the tools for integrating Flash Player with Eclipse already exist I guess it’s possible in future.

The book is in early release – it can be ordered here.

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.

Tomcat and common loader

I spent twenty minutes last night trying to understand why the Tomcat delivered with the Livecycle Data Services installation works fine when the libraries for jotm are located in a subfolder of the common/lib. When I’ve installed a clean version of Tomcat and I copied the folder jotm into common/lib the classloader was not able to find them, and I did not had any explanation.

Finally I discovered that there is a parameter in catalina.properties denoted common.loader. By default the value is ${catalina.home}/lib,${catalina.home}/lib/*.jar, however in the first case it is  ${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/activemq4.1.1/*.jar,${catalina.home}/lib/jotm2.0.10/*.jar,${catalina.home}/lib/lcds/*.jar . This parameter specifies all the paths for the common class loader.

BlazeDS, AMF and read only properties

A common scenario when building domain objects is to have read only objects properties. The serialization algorithm from BlazeDS/LCDS does not know how to serialize the read only properties – it needs both get and set methods (with one exception – the java.lang.Throwable class). So you have two options in this scenario if you do not want to build adapters over your domain object:

a)Build your own serialization/deserialization mechanism

In order to do that you need to implement the java.lang.Externalizable interface for the Java classes and flash.utils.IExternalizable for the ActionScript ones. The Java example is here and the AS here.

When using this approach you have the following advantages/disadvantages:

Advantages: the serialization/deserialization is much faster
Disadvantages: greater development time, and you lose some optimizations related to data compression (like string references and writing numbers in fewer bytes). Of course, you can build your own optimizations but again this means more development time

b)Patch the code from BlazeDS. You either add the includeReadOnly = true line in the BeanProxy constructor (this flag is used for Throwable serialization), or, better yet, take the modifications from the current BlazeDS branch where this feature was implemented.

Flex and Java next week in Italy

Next week I’ll visit several Java User Groups in Italy speaking about Flex and Java:

22 Genova

24 Milano

Looking forward to meet you.

Adobe to acquire Omniture

Adobe announced today that it will acquire Omniture (the largest web analytic software company) for about $1.8 billion. It’s the second largest acquisition for Adobe after Macromedia (3.4 billion).

Job openings on Livecycle Data Services team

The Livecycle Data Services team has three openings: computer scientist, senior computer scientist and principal computer scientist. If you want to work on a really cuttting edge product for a world class company and you have the required knowledge/passion I encourage you to apply. You will have the chance to work with sharp people, and you can’t find that everywhere.