Serge Jespers created a cool widget about MAX 2009 containing facts, testimonials and the possibility to tweet directly from it. Also, you can create your own video (if you have a video camera).
Random thoughts about software development.
Posted by cornel | Filed under Uncategorized
Serge Jespers created a cool widget about MAX 2009 containing facts, testimonials and the possibility to tweet directly from it. Also, you can create your own video (if you have a video camera).
Posted by cornel | Filed under Uncategorized
Yesterday I discovered a very nice tool for optimizing websites – Page Speed from Google. It installs as a menu entry in the Firebug plugin. Running this tool on several websites (including the Romania’s largest newspaper) shows very interesting results -a lot of things to improve. I’m sure that some of them are very hard to find without an automated tool.
Some suggestions for www.evz.ro (the Romanian newspaper). They could save 200kbytes just by using proper sized images.
Enable gzip compression
Leverage browser caching
Combine external JavaScript
Minify JavaScript
Optimize images
Optimize the order of styles and scripts
Parallelize downloads across hostnames
Minimize DNS lookups
Specify image dimensions
Remove unused CSS
Serve static content from a cookieless domain
Minimize cookie size
Use efficient CSS selectors
Posted by cornel | Filed under LCDS/Blaze DS
Good observation by Michael Slinn - do not use HTTP compression when using HTTP Streaming channels – you will not be able to receive any messages from the server. If you want to understand better how HTTP Streaming works read this article.
Posted by cornel | Filed under Flex, LCDS/Blaze DS
When I started working with Livecycle Data Services and Java remoting I was afraid of doing too many remote calls at one time because of the network latency – if the network latency is 100ms and you do ten remote calls in order to fill a panel with data you will lose (10/maximum no of parallel connection supported by the browse*0.1) seconds for requests . At least this is what I thought, taking into account my experience with Ajax.
However I found that this is not the case when doing remoting using the AmfChannel (which is backed by flash.net.NetConnection). In this case all your remote calls are put in a queue, and then all this request are grouped in a single HTML post. So no ten calls, only one – you can check that using a proxy like Charles.
It is important to note that this happens only when you use channels backed by flash.net.NetConnection – if you use HttpChannel which is backed by flash.net.URLLoader you will have 10 different calls.
So I can conclude that you should not be worried that you have too many HTTP requests (listed as the first optimization by Yahoo -check this link) when using remoting.
Posted by cornel | Filed under LiveCycle ES
If you install SQLServer 2008 after Adobe Livecycle Designer 8.2 you will discover that Designer no longer works. In order to resolve this conflict you need LiveCycle ES Update 1 Designer Service Pack 2 patch.
Posted by cornel | Filed under Events
Adobe Wave Beta was launched on Adobe Labs – it can be accessed here. The idea behind it is quite simple and in the same time quite interesting. Suppose that you are interested in being notified when a retailer is offering a great discount and when a new movie is offered by a content provider – a solution is to install two desktop applications from the publishers and to be receive background notifications when an event happened. The problem is that if you are interested about a lot of things you will have to install a lot of applications.
Adobe Wave solves this problem – you will get all of your notifications through it. It’s an Air application which can be installed and configured on your computer. You can choose which sites can contact you and subscribe/unsubscribe very easy.
If you are a publisher it’s also very easy to use the Adobe Wave to push your notifications, and also very important it’s free. More details can be found here.
Posted by cornel | Filed under Events
Adobe announced two new open source frameworks: Open Source Media Framework (previously called Strobe) and the Text Layout Framework. What can you do with these frameworks?
OSMF is a set of components that you can use in order to build your own video player. Until OSMF you either had to use a pre-built player and try to customize its behavior or you had to create your own player. Most of the time the second option was embraced, especially by media publishers. Now, with OSMF it should be much easier to do that.
TLF is a framework for text layout – more powerful than HTML/CSS. It has support for bidirectional text, multiple columns and other typographical features. It does not depend on the Flex Framework so it can be used even from a simple Flash application. A good example of usage is the New York Times TimesReader 2.0.
Posted by cornel | Filed under Java, Uncategorized
Update: I added also compression. The result is the same, Hessian is the clear winner. Not quite sure why deflate takes so much time when applied to AMF output, but I was able to reproduce this result with different inputs.
Two months ago I was asked by several guys from JUG Gothenburg to do a comparison between AMF and classic Java serialization. I was not able to answer at the moment, because I had never thought about it nor had I performed any tests. Now I extended my mini-benchmark from my previous post and I also serialized the objects using Java serialization. The results are below, and you can see from the results that the size of compressed data is much larger for Java serialization (I used Java 1.6). Without looking at the code from ObjectOutputStream I assume that there are no techniques like detecting duplicate values and writing references or writing small number on fewer bytes.
My suggestion is to use AMF/Hessian rather than Java serialization whenever you can – you will be able to save a lot of bandwidth.
The result table is below, and you can download the source code from here.
| Avg Time (microseconds) | Data size (kbytes) | |
| AMF3 | 9945 | 28 |
| Hessian | 4675 | 29 |
| Java serialization | 6400 | 60 |
| AMF3+Deflate | 34479 | 14.5 |
| Hessian+Deflate | 6076 | 14 |
| Java serialization+Deflate | 19193 | 22 |
| XML | 22064 | 158 |
| XML+Deflate | 27336 | 18 |
Posted by cornel | Filed under Events
Finextra and Adobe are hosting an e-seminar related to RIA concepts (real time data, video, rich interactive components) and how to integrate them in trading applications. The session is free, it lasts 75 minutes and is interactive (you can ask questions). It will feature experts from Morgan Stanley, Adobe, Lab 49 and Societe Generale. If you are working for the enterprise and you are interested in RIA applications it’s a good opportunity.
In order to attend go to the Finextra website, where you can read more details and register.
Posted by cornel | Filed under Events
The first production release of FlexMonkey is available now on the Gorilla Logic website. FlexMonkey is an AIR application used to do automated testing for Air applications. Also it’s free and open source. Related to that, one of my colleagues compiled a list of tools used for testing Flex applications – the list is located here.