Author: Sasha Dzeletovic

Multi-Version Flex Applications

You have a great application on your hands but you can't load it up as a part of your brand-spanking-new application because they are not the same version.

Do you rewrite the old stuff? Or you downgrade the version of the app you are currently building? Both are very painful, and all you need to do to avoid the pain is to make the apps talk and coexist. This is a standard problem of any enterprise system, especially the ones with a long lifespan.

Flex framework addresses this problem with the Marshall Plan or at least it's supposed to. Here at Pathfinder, when we were tasked with a complex multi-versioned  enterprise system that had just such a problem. We gave Marshall Plan a try and in our experience we never got it to work entirely as intended. But we came up with a solution.

Continue reading »

How Canvas compares to Flash

github

Finally a word from somebody who knows what they are talking about! I've read a lot of wild claims regarding the comparison of Canvas to Flash and even wilder predictions.

Tom Preston-Werner has actually converted a great Flash application, the GitHub Network Graph, to use Canvas instead. For one, that gives him credit to talk about the topic and he does so well at his post about the experience. IMHO it's the most sober cross-section of considerations related to these two technologies. Really, read it if this matters to you, you'll find a conclusion in it unlike most catch-phrase-throwing-time-wasting posts on this topic.

From my first opinion on using HTML5 in RIA from two years ago, the situation changed little in terms of standardization, but implementations of HTML5 have leapt in quality. Having said that, I agree with Tom's conclusion completely. So what Canvas can't deliver yet, I'll deliver it in Flash.

As my final word, I would like to share another, much deeper insight in software development strategy coming from Clifford Hall, author of PureMVC, who has 25 years of experience in the business. Ideas explained in his post remind us that there is a bigger picture that we should drive our attention to in order to put an end to the Sisyphean task of making these choices.

Eclipse line number issue on SnowLeopard

line_numbers_flash_builder

I had a problem with line numbering portion of my Flash Builder 4 (Eclipse) including setting breakpoints, error tracking and line numbers not updating. At first I just said that I can live with this Eclipse voodoo problem since it's not the first one but with time it hampered my work.

I found commiserators here, as well what the problem really is:

If you're running SnowLeopard and keeping your Eclipse on a secondary monitor this weird problem will happen - line numbers won't scroll and  anything that resides on line number portion of the interface will go nuts (show erroneously without any noticeable pattern).

Solution is easy enough - move the Eclipse or Flash Builder to your primary monitor and the problem instantly goes away. Good. But wait a second! I use the secondary 23' monitor so all the Eclipse elements of the interface can fit. 15' feels like having one hand tied behind my back.

Adobe posted a patch that actually works! Don't forget to read Rick Winscot's post about the details. You can use the pre-patched files from Adobe's bug page.

This little episode was another reminder not to take things for granted. Makes me think who wrote the first line numbering code to begin with?

C love with Alchemy

isobarflex

I don't remember the last time I was as excited about development as I am now, and for discovering old news no less! Enter Adobe Alchemy.

To give you some background on the problem, I am currently working with an excellent team on a huge project (top secret). It is so huge that we are trying to retrieve half a million records per call from the server and process it with complicated algorithms in a browser. A tall order for Flex. Yes, we are using BlazeDS and we've added Vector Class from Flex SDK 4.o. We even did some Number to int and back magic (shoutout to Chris and Jeff) to compress the data going over the wire, but the processing of the result is "less than ideal".

This is where Alchemy steps in. Thanks to a great article by Ralph Hauwert, we have been able to tap into power of C inside Flash Player! To quote Alchemy's site regarding that: "...performance can be considerably faster than ActionScript 3.0 and anywhere from 2-10x slower than native C/C++ code."

Continue reading »

What does Google Chrome do for Mac based Flex Developers?

Do you know every detail in the Flex framework by heart? Do you also know all the other libraries that you use by heart? Well I don't and I often have to reference some online resource while developing.

For instance, I always have Action Script Language Reference, Wikipedia, some library API site(s), Gmail and a dozen other ones open + the debug version of the app at hand.

So what used to happen when you but a breakpoint in Flex Builder with all these tabs? They would be unavailable and any process happening inside of them could not be relied on. Since not all code runs well on first attempt, if the app crashed while testing ( think 3D, data intensive apps, etc.) the browser and all the tabs went down with it.

My solution so far was to use Firefox as a development browser and Safari ( since I'm Mac based ) as a browser for references and everything else. For crashing resolution, Firefox has a nice "Restore" option but it's not fun waiting for 15 tabs to reload.

So Google Chrome recently came out for Mac. It didn't impress me on Vista so I didn't care much. I guess I was in between of curious and bored so I decided to give it a spin.

What a pleasant surprise to see every tab running in a different process. My workflow feels so much better now that I'm not afraid that a bad line of code is going to take down my whole browser.

I've heard that IE8 also runs tabs as different processes but I'm not crazy about returning to development on Windows. I did try out Chrome on Windows 7 as a result of the Mac test and all the issues I've seen the first time around have been addressed. Kudos to Chrome development team.

Let's not forget to mention all the features that are missing on Google Chrome for Mac, primarily the lack of Bookmark Management, but Google Bookmarks or any online bookmarking service will do for now.

I can not wait to see more development being done on Google Chrome for Mac and it getting out of beta. I will not uninstall Firefox anytime soon but as a Flex developer I give Google Chrome for Mac high scores for beta.

Don’t be lazy, download a good browser

Why are we developers still taking a hit for Microsoft's IE6 by doing additional work for it? Well we are certainly not eager about it . "The Market" is directing us by showing us that people use it a lot.

The market says that about 15% of people today are using IE6 which is 8 years old now.

Nothing to be surprised about.

Recently, we at Pathfinder were presented with statistics of usage for a desktop software created in-house showing the biggest drop in workflow at software installation reinforcing the point that people have a hard time installing software, so why would they go around installing a new browser when they already have one? Most people are under the impression that "the site" or "the internet" doesn't work and not the browser they are using and there's nobody there to tell most people what the problem really is.
Continue reading »

Topics: , , , ,

Reducing Costs: The Power of Sketches

The very word sketching doesn't invoke a lot of respect, especially when mentioned in the context of software development. After all, User Experience Design people come up with wireframes, diagrams and designs, not sketches.

Sketches are considered a throwaway byproduct of the design process. What I would like to point out is the value of sketches and why they should be given an official slot in development process.

Since Pathfinder does Agile, understanding the value of user based testing comes naturally - "Release early, release often", right? How quickly can you release a sketch in order to get that ever so valued feedback? That's the key to reducing cost through sketching. By reducing cost you can make a better product within a given budget.

To really get the best of this "quick release testing", there are several things that need to be understood upfront:

1. A sketch should be done with pencil and paper or equivalent. There is no quicker medium for visually explaining an idea.

2. Making a sketch should take seconds. otherwise it's not a sketch.

3. Everybody can make a sketch. You don't have to be a visual designer. Don't try to make it into an art piece because that's a misguided effort. Leave details for when you figure out the basic idea. The point is that at least you understand what you've sketched.

4. A sketch is not a wireframe. They both have  different purposes: sketches should be used to explore and "test" ideas cheaply, wireframes should be used to explain IA.

5. Paper will take anything. When sketching, one has a rare opportunity to think without boundaries. Don't take technology, standards or any other consideration into account when sketching, nothing but  user end goals. You would be surprised how apparently challenging interfaces can be produced efficiently if developers get to understand them really well.  A good sketch is the beginning of that process.

6. Without fail, sketches generate discussion because of their associative power. Make more sketches and you will have more discussion. The more aspects you discuss, the more unknowns you will discover. The more unknowns you cover, the less money & time you will spend trying to wedge a square peg in a round hole.

It's an interesting exercise to organize sketches chronologically and see the progress of an idea. A lot can be learned about what you didn't know at the beginning and you might consider from the start the next time.

My hope is that in the near future visual interfaces will have to be bound less to existing standards for ease of production.  This would create a need for visual interfaces not yet seen which makes them exploration for which plain old sketches are the best tool.

Flare vs. Axiis

flare-vs-axissAfter a long time of searching for the right data visualization framework for Flash Platform, some time ago I've put my money on Flare which is based on a Java framework called Prefuse. I have been very happy with it and haven't looked back until a new framework of same purpose crossed my way - Axiis.

Before anything else said, Axiis is a brand new framework so I have to give it some credit if all the bells and whistles are not there. What intrigued me about it in the first place is that Axiis is heavily relying on Degrafa, a well proven declarative graphics framework that I have a lot of good experience with.

After looking at Axiis examples, here are my first impressions of how it stands against Flare.

Continue reading »

Wireframes in Omnigraffle 5

wireframe-subaru-2

Before anything else is said, I am truly convinced that any creative work should start with a sheet of paper and a pencil. By creative, I mean any work where you have to come up with something, well, new. When creating wireframes for an enterprise piece of software that idea is restricted to initial brainstorming sessions and pretty much nothing else since you have to move to a computer for the sake of efficiency. And there is so much more work to be done. And revisited. And refined. And shared. And packaged for the final deliverable. When you add Agile process to the equation (which I think is a win right there) you will revisit your wireframes a lot of times.

Just to paint an example, let's say we have about 20 wireframe screens. And let's say that in the course of creating requirements, somewhere towards the middle of the road we decide to change some element in our application header that is repeated over the 20 pages. Ouch! This can be a cumbersome task if you are not using the right software because you would need to make the same change 20 times. Now imagine you have to do it daily because refining and testing the idea is the purpose of creating wireframes in the first place. Did I mention that there might be a lot of wireframes?
Continue reading »

Performance Optimization for Flash Player

Time and again the same scenario arises. An app is being built and it's all going fine until the very end when performance issues start to appear.

Optimizing Flash performance is certainly the most boring part of Flash Platform development but it's a cornerstone without which you, the Flex developer, can not do without.

An app is worth nothing unless you provide that effortless flow of interaction at all times.

There is not too much information on this topic as it is not the most interesting one but here are some simple guidelines that have helped me tremendously over the time, as well as a few great papers.

Continue reading »

ZendAMF vs. AMFPHP

So far, of all the AMF frameworks I have been a proponent of AMFPHP and RailsAMF. I still don’t know RoR very well (working on it), but I’ve been using PHP for a long time and have grown to love it so AMFPHP was always my natural choice.

Now we have a new player in Flash Remoting arena - ZendAMF. Why should anybody care when AMFPHP was just fine?

A few reasons.
Continue reading »

How much Excel can we get in Flex?

...and why would we go around doing that when there are perfectly good solutions out there for online spreadsheets? For instance Google Docs in which I still haven't found a bug or a feature I'm missing.

Spreadsheets are necessary because people use them because they know how to use them. It is a straight forward interface that can yield good in high complexity situations.

Now most people want to use them online. And luckily there are plenty to go around.

Continue reading »

Flare on PureMVC in Flex example

By this time, I am very happy and impressed with PureMVC. In combination with Flex Code Generator, plumbing downtime is minimal and the more you work on a project, the more you see the benefits.

Out of all visualization frameworks for Flash Platform that I came in contact with, Flare is looking like the most customizable. I also like it's structure. At first I didn't, but now I love the fact that Visualizations are based on Sprites. I find that good for performance and transitions. You have to do a little extra work, but you will be happy with the result. All in all, I'm sold on it for now.

Continue reading »

Using Flex Code Generator (FCG) with Flex & PureMVC

Recently I've been working on a Flex prototype using the PureMVC framework. I will talk at length another time about just how much PureMVC successfully solves a lot of problems that we encounter in interface development and especially about how much this framework is important for all those complex interactions that we expect out of our RIA interfaces.

Starting out with PureMVC is not a particularly easy task. It is a good thing that there are decent documentation and examples, at least for AS3. At first when I read the documentation, it made sense only on a high level, but translating that high level understanding to code right away was out of the question. I solved this initial sticking point by looking at a couple of AS3 examples like CafeTownsend and EmployeeAdmin, where you can see how the framework works on the right size demo app, not too big and not too small.

Continue reading »

Launch: Pathfinder Newsletter

Topics

Search

WordPress

Comments about this site: info@pathf.com