Filed Under (AIR, ActionScript, Flex, Software Development) by jonr on March-8-2009

I just finished a write up for InfoQ on the Flight Framework. Flight compares themselves to Cairngorm, without all the “boiler-plate” code.  The association with Cairngorm is a turn off for me to seriously consider using Flight, as I still don’t understand what value Cairngorm provides (old post 1 & 2).  That doesn’t mean I don’t believe that Flight may have value, but in learning about the framework there seem to be the typical assumption that everyone is out there looking for the perfect MVC solution (old post 3).

I lived through the countless MVC frameworks in Java.  So, I don’t believe it is naive when I ask, what is so great about MVC anyway?  We all love to work in code where the separation of concerns (SoC) have been adhered to, but do I need MVC to accomplish this in Flex?  I don’t believe I do…

Anyway, back to Flight, they did allude to some additional features in the framework, like history management.   Although that specific feature is available in Flex 3, there maybe other features that make it useful.  The documentation is pretty slim right now – we will see what else is there when the docs evolve.  For me, I guess I want to see frameworks that do more than attempt to enforce a pattern.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (AIR, Chimp, Flex) by jonr on March-5-2009

I have updated my Flex security component called Chimp.  I was working on implementing a suggestion to use the includeInLayout property instead of removing children, and found a number of issues in the process.  I have expanded the sample application to help test the component.  Also, it should give a pretty good picture of how the component works.

Here is what has changed since the last post:

  • Replaced the “remove” action with “removeFromLayout” & “removeChild” actions
    • removeFromLayout: This property use the includeInLayout property to remove components from view.  This is preferred over the ‘removeChild’ action, but will not work in all cases (like TabNavigator tabs).
    • removeChild: This removes the child from the parent.
  • Update the component so it updates the view on any permission changes.  So, it no longer require that permissions are loaded and set before the Chimp is loaded.  The Chimp still needs to be added before the protected components are added because they are tracked with an event listener on the add to stage system event.

Please let me know if anyone else has suggestions on how to improve the component…

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (Non-Technical) by jonr on March-4-2009

It’s true!  At least to the same extent Mr. Bush is to blame for the current financial mess, and speaking as someone who is terrified by both of the extremes in American politics, he does deserve some of the blame.

For those of us in our early 30’s, there is little cause to be concern for ourselves (even at this advanced stage of economic sickness in the country).  We must continue to work hard (or start for some), and hope for the best over the long-term.  Honestly, the only thing that troubles me about the current mess is that it has a high probability of affecting my parent’s ability to retire at a reasonable age.  This is the case for anyone over 50.  As much as this is troubling on a personal level, it likely means a stay of execution for social security.

All the dooms day predictions of social security’s demise were based on all the boomers being able to leave the workforce in the very near term.  Now, that those timelines will be extended for many unfortunate folks it probably means that another poorly constructed government program will have a much longer lifespan than anticipated only a few short months ago…

I do not believe anyone can predict what will happen in our economy in the next 6-12 months.  I think the only certainty at this point is that all of our old assumptions will have to be re-evaluated once we get our collective heads above water.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (AIR, Chimp, Flex, RIA) by jonr on March-2-2009

I’ve posted a simple component, called Chimp, for doing role based permissions in Flex through metadata.  You can check it out at: http://code.google.com/p/flexible-chimp/. The quick overview is that you provide Chimp the user’s roles on start-up and then add meta data to the components for filtering what the user can see.

Here are the setup instructions:

1) Download and add the chimp.swc to your project library
2) Add compiler argument to keep necessary metadata:

-locale en_US -keep-as3-metadata+=Protected

3) Load the Chimp in your application. The Chimp must be loaded after role data is available, but before children are added:

Chimp.load(perms);

4) Add metadata to your Flex components:

[Protected(permissions="ROLE_ADMIN",notInPermissionAction="remove",componentId="this")]
[Protected(permissions="ROLE_UPDATE",inPermissionAction="enable",componentId="updateButton")]

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (AIR, Flex) by jonr on March-2-2009

Swiz is a Spring like dependency injection framework for Flex.  Check out my InfoQ news post covering it: http://www.infoq.com/news/2009/02/swiz-framework.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (AIR, Flex, FlexMonkey) by jonr on February-28-2009

Stu Stern is on the latest Speak Rich podcast on RIA Revolution discussing Flex Monkey. Thanks to Shashank Tiwari for interviewing Stu and covering Gorilla Logic’s favoriate testing tool.  RIA Revolution is a great resource for Flex developers.  If you haven’t already, check it out!

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (RIA, Software Development) by jonr on February-18-2009

I read two good posts this evening with a similar theme, implementing a system is boring … at least when done well.  Stu Stern’s post discusses it from the standpoint of defining a clear architecture up front:

An architecture is sufficiently defined when we can turn a developer loose on developing some piece of functionality and he or she obeys all design constraints, there is a minimal possibility of creating software that produces any of the above problems. If you’re conceptually bothered by being constrained, preferring instead to program in wide open spaces with the wind blowing in your hair, perhaps you would prefer to think of architecture as providing the freedom from choice.

Alex Papadimoulis post, Programming Sucks! Or At Least, It Ought To, takes it more from the realities of building business systems on a day-to-day basis.  He basically concludes that developers get too enamored with all the noise in the software world and need to focus on building features for the business:

As frustrating as it can be to work with the uninspired, sloppy developer, the contrary – the inspired-yet-misguided one – is several magnitudes worse.

Alex offered a list on how to approach the profession:

1) Learn the Business.
2) Serve the Business.
3) Learn Off The Job.
4) Code mostly Business. (If the overwhelming majority of your hand-written code isn’t domain-specific and doesn’t relate to the application’s purpose, then you’re using the wrong tools.)
5) Tedium is Inescapable.
6) Find Satisfaction Elsewhere.
… and, if all else fails…
7) Get Another Job.

I do love Alex’s post and believe he basically hits the nail on the head about the attitude we need to take toward the profession. However, I believe Stu has better captured the reality of building software systems. Things do change and evolve in software in ways that are both beneficial to the developer and the business. Thus, defining an architecture up front on how the system is going to be built is an essential step to allowing developers to focus on building features that have value to the business.  If we succeed when it comes to architecture, then we can get on to the boring parts.

One could even say that if presidential elections are about the economy, then when it comes to software: It’s Architecture Stupid.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (Java, Software Development) by jonr on February-16-2009

I spent most of the day working on setting up a new project with the latest Spring (3.0.0M1) and Hibernate (3.3.1.GA) releases.  I have more recent experience with Hibernate and was able to get everything working pretty quickly with Postgres on VMWare share.  It has been a few years since I last setup a Spring project and really got down in the guts with it.  I remember it being a mostly low cost framework that provided quite a bit of handy plumbing.  I have never been wowed by dependency injection for dependency injections sake, but I have always liked the things Spring pairs with their container (AOP, ORM support, etc).

Anyhow, as I dug in today I was pretty shocked to see how bloated Spring (and Hibernate) have become.  I have been guilty of throwing JAR after JAR at problems, but it was almost unbelievable to see how many dependencies each framework now has, which of course caused me significant versioning hell in attempting to get the right mix of JARs.  With each change, a tweak to libraries seems to come.

The other surprising part to me was the number of different options there are now for configuring Spring, and how difficult it is to find a clear path to follow.  I am huge fan of annotations, and I am glad that they added significant support in that area.  However, even though I now have a working setup, I have little confidence that I am completely inline with the best practices.

Our company’s founders, Stu and Ed, love to make the statement, “Freedom from choice.” It seems like a “lightweight container,” like Spring would follow this simple axiom.

Anyhow, I am posting my current project for feedback.  Let me know if you see any silliness or have feedback on how I can improve my setup.  It pretty basic so far … Hibernate with Annotations, Spring (Annotations, ORM support), and SpringSecurity.  Here is the project.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (Drunk On Software, RIA) by jonr on February-10-2009

In our latest Drunk On Software video we talk with Alex Moffat, of Lombardi Software, about Google Web Toolkit (GWT).  The audio isn’t great, but there is still some good infomation for those looking for an introduction to GWT.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn


Filed Under (AIR, ActionScript, Flex, InfoQ.com) by jonr on February-4-2009

Last month, We posted a Drunk On Software video interview with Anvil project founder, Ryan Knight.  This month Ryan shared more about the project in an InfoQ.com email interview I just posted.  Check it out and let Ryan know what you would like to see in the next release of Anvil.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DZone
  • Digg
  • del.icio.us
  • Reddit
  • Facebook
  • LinkedIn