Archive for September, 2009

Onward to the server (or “links to CF9 resources”)

Thursday, September 24th, 2009

If you’re like me, you’ve been working your way slowly from the client side of things towards the server. You create your Flex apps confidently and you want that same confidence and productivity when creating the application and data layers on the server.

Problem is, there’s no language/tool combination on the server that will make you feel the same cohesiveness when developing in AS3.0/Flex on the client. Ruby on Rails + RubyAMF is nice, but not seamless. LCDS is powerful but expensive….ok there’s BlazeDS but now we’re still talking Java and stuff like Spring and Hibernate. ColdFusion 9 seems powerful but now we’re talking programming in tags, right?

I’m trying to sort out all the different benefits, drawbacks, dependencies and requirements of these different solutions (and then somebody comes along and goes, “yeah, but you know Scala and Lift are where it’s going to be at” to which I responded “uhhhh…must learn more.”)

Anyways, this post really is just a note to myself to remember that  Greg Wilson posted a bunch of links he amassed after doing a CF9 brain saturation.

And, following that, a helpful post by Holly Schinsky on data services and endpoints explained.

One page sales site

Friday, September 18th, 2009

I had a good discussion with a friend at NextSpace today about the importance of being succint (earnest?) when writing a business plan. I feel like the same brevity is really effective when designing websites that sell specialized software or digital assets.

Take, for example, a new site selling a line of Helvetica-inspired-icons (found via PagePlane.com’s blog post today). Neat product, but I find the site itself more interesting:

  • one page
  • everything you need to know about the product to make a quick decision
  • simple and easily located purchase option
  • clean design, no visual static

screen1

screen2

The site brands the product, describes its usefulness and then serves as the mode of distribution, in one clean sweep of HTML.

A similar example is NihongoUp, a small Flex-based Japanese-language tool sold on a one page site at http://nihongoup.com/. Once again, one page site, quick and concise.

One page sites probably aren’t the best thing for software or digital assets that involve more of a commitment from the user. It seems to me that more involved tools like the Flex-based UI mockup tool Balsamiq benefit from sites that support a community of users through seamless integration of blogs, forums, etc.

Side note for aspiring micro-ISV’s: Peldi Guilizzoni, Balsamiq’s creator, is a personal hero of mine, as he took a project from idea to completion, creating an exceptional product with an appreciative community in a relatively short period of time. He documented each step of the creation process in his blog — a written record that ostensibly gives potential customers a sense of confidence and connection, but in my case it’s a great how-to guide and a source of inspiration as I try to create a simple, clever tool for diagramming.

ApplicationUpdaterUI in Flex 4

Monday, September 14th, 2009

In case you’re wondering why your Flex 4 app is bombing when you try to use the ApplicationUpdaterUI, look no farther than this bug report: http://bugs.adobe.com/jira/browse/SDK-22886?rc=1. The unsuspecting will wonder where the heck the “TypeError: Error #1007: Instantiation attempted on a non-constructor. ” comes from.

In the meantime, you might find this conversation between two Flex dev’s interesting…Michael Ritchie posted some sample code for doing your own updater UI via ApplicationUpdater.

TraceTarget and Remoting

Thursday, September 10th, 2009

If you happen to use RemoteObjects in your Flex app and at the same time use TraceTarget to output your log messages, you’ll soon find that the RemoteObject floods your console with all kinds of information on each remoting request. Nice, but sometimes unwelcome.

Turning this off took me a few to figure out. I was instantiating my Log in my application’s preInitialize event:


protected function onPreInit():void
{

  //Init log				
  var myLogger:ILogger = Log.getLogger("com.mcquilleninteractive.myproject") 
  var traceTarget:TraceTarget = new TraceTarget()				
  traceTarget.includeDate = true;
  traceTarget.includeTime = true;
  traceTarget.includeLevel = true;
  traceTarget.level = LogEventLevel.DEBUG
  traceTarget.filters = ["com.mcquilleninteractive.myproject"]
  Log.addTarget(traceTarget)
  myLogger.debug("Logger created", this)
 }

Note that I’ve given my Log destination the name com.compositesw.monitor. Setting this name in the traceTarget.filters should cause the console to ignore all other log messages. But…it doesn’t.

The trick, it turns out, is to use a tag rather than creating the TraceTraget with ActionScript. Like so…

	

Deep down, in my core, I cannot find motivation to find out why this is so.

Flex Builder and Firefox cache problem

Friday, September 4th, 2009

It took a short trip around planet insanity today before I realized that Firefox was running older, cached .swfs when I’d publish my Flex project in debug mode. I don’t know when or why this started but a short post from a fellow developer helped me solve this quickly:

  • Open up a new tab in Firefox
  • Type in about:config
  • search for browser.cache.disk.enabled and set to false