360 Flex

-

Monday, February 1st, 2010

Rain is a big fan of the 360 Flex conferences. We send developers every time, and have noticed the conference quality increase with each year. We are pleased to announce that we are sending 5, count them 5 speakers.

If you are considering going, I highly recommend taking part. If no other reason than to see our beautiful faces. Here is the link to register.

Here are the individuals we are sending, as well as the sessions they are teaching:

badge-2
Speaker: Aaron Hardy
Title: Queue N Cache
Description: Take control of service calls by creating your own queue and dynamically shifting priority based off user interaction. Load what users are looking at first and and delay the rest for later. Show progress indicators in multiple locations for a single request. Once loaded, cache images in such a way that they can be displayed immediately anywhere in the app.

badge-2
Speaker: Bryce Barrand
Title: Golden nuggets: How to find and keep top developers
Description: Part I. Even in a down economy, finding top developers is quite a task. For the most part, good people have solid jobs they love. Should you cross train? Pay hefty fees for head hunters? Monster.com? In this session we will go over a couple of options, and what we’ve found to be successful for procuring those “golden nugget” employees.

Part II: Once you have them, what makes them stay? How much does company culture make a difference? How about work load? What type of environment is cost effective for you as the employer and awesome for everybody around? We’ll also cover tips on keeping developers happy, and around for years.

badge-2
Speaker: Garth Braithwaite (teaching 2 sessions)
Title: Flex 101
Description: Get up to speed on Flex quickly.  We’ll be taking a full day of training to cram as much Flex 4 goodness into your head.  This training is designed for those who have never used Flex.

Title: Your Flex App Looks Like Poo
Description: There is absolutely no excuse for not skinning your Flex 4 applications.  We will be exploring skinning Workflows, skin requirements, and creating custom preloaders.  Ultimately overhauling the interface.  Although user interface design principles will be discussed, this session will not teach you how to design.

badge-2
Speaker: Chase Brammer
Title: Analytics Throwdown
Description: Clients will ask, and you will be forced to choose your analytics weapon. Learn about Adomniture’s and Google’s analytics tools and how you can use them to drive business. The session will be divided up into three sections. First, the high level details about the qualities and business benefits of each. Second, a simple walk through of how to use the tools. And last, how to implement and deploy those tools in your applications.

badge-2
Speaker: Gary Rogers
Title: Automated Build and Deployment Processes
Description: This session would encompass the often misunderstood methods for automating flex build and deployment cycles. Several options and examples would be concisely presented including java ant, php phing and others, as well as how to wield the power of the command line flex sdk. I would present a brief tutorial on how to get started with these methods. Also, a sophisticated GUI based build server concept would be discussed. I would also weigh the pros and cons of nightly builds and scheduled deployments and how these impact various architecture phases of an application. Also arguments discouraging the use of SVN/CVS for deployments would be presented.

In case you missed it at the beginning of the post, here is the link to register.

Alternative Implementation of Grant Skinner’s Spelling Plus library (SPL)

-

Wednesday, December 16th, 2009

Rain recently purchased a multi-seat site license for a great tool that is certain to save a lot of time and headache: Grant Skinner’s Spelling Plus Library (SPL – info here). This post describes some aspects of the implementation.  You can view the source here.

THE WRAPPER CLASS

The quick start documentation lists three .mxml tags to test functionality from within the application’s main .mxml file. That quickly showed us that the SPL library worked well with standard Flex components. However, due to the large scale of our application, we wanted to make sure that the functionality was available from more than just within the main .mxml file. The target property for the SpellingHighlighter.as class is bindable on the tag. So one option would be to make that property universally accessible. However, since we needed some specific behavior modification in our implementation, a wrapper class (SpellChecker.as in the .zip file below) seemed like the best option.

COMPATIBILITY WITH OUR CUSTOM TEXT FIELDS

Many of our text components are instances of Flash’s TextField class deep within custom containers rather than standard Flex text components. SPL, however, only checks the first generation of children within a container to find a TextField. The getBiggestTextField() method in the included code digs recursively to find all available TextFields within the referenced container, grabbing the biggest one for checking.

All the rest of what the class does is contained within the inline documentation. For the robustness, ease of implementation, and extensibility of gskinner.com’s Spelling Plus Library, I’d recommend it to anyone.  The only real issue right now is that it doesn’t work with Flash’s new text layout framework; I contacted them about it and they told me that that would soon be remedied.

Here’s the link:

http://blog.mediarain.com/wp-content/uploads/2009/12/splExample.pdf

This ‘Aint No Heavy Metal

-

Tuesday, December 15th, 2009

Those who’ve worked closely with Rain knows we’ve been a fan of using frameworks to bootstrap our development process. They have oodles of advantages over the re-invent-the-wheel approach, and our involvement with the PHP framework world has been intimate. I currently lead the documentation efforts for one of the most popular PHP frameworks available, CakePHP.

I’m also a founding member of the team for a new project called Lithium (aka Li3). The project is based on some experimental code in the CakePHP sandbox. Anyone familiar with CakePHP should feel at home in Lithium&emdash;the framework was based on CakePHP concepts and conventions, and many of the same developers who brought you CakePHP are now actively working on Li3.

I’d like to invite you to dive it and check things out by walking along with me through this quick tutorial, which covers the creation of a über-simple blogging application. After having walked through it, you should have a good idea of how Li3 is shaping up, and how to create your own simple applications with it. (more…)

Showing Progress for Multiple Loaders

-

Wednesday, December 9th, 2009

A common thing to do in most any rich application is to show progress while loading remote assets. In ActionScript, the bytesLoaded and bytesTotal properties of classes such as LoaderInfo and URLLoader provide the needed information to show a fancy percentage-based progress indicator. The bytesLoaded property is updated as more and more of the asset is loaded in. Divide that by the bytesTotal and you have the percentage loaded.

Easy enough. How about multiple loaders? Lets say you have a group of 10 images and you’d like to show progress for all the images collectively. Because you have 10 different images you also have 10 different URLLoader instances (or Loader instances, whatever suits your fancy)–one for each image. Math would say that you divide the sum of bytesLoaded by the sum of bytesTotal and that gives you the percentage complete. Two issues arise: (more…)

Learn Kung Fu

-

Monday, November 30th, 2009

For a moment, I’d like to you remember what you can about The Matrix. Now, only think about the first film, and not the other two, as if you’re anything like me, you’ve spent considerable time and effort to suppress the memories of those even existing, and I’d hate for you to undo that hard work.

Why mention the Matrix? Because eventually there comes a point in the life of every developer where they must make a choice: red pill, or blue pill.

You take the blue pill, the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill, you stay in Wonderland, and I show you how deep the rabbit hole goes. – Morpheus

In the film, Neo takes the red pill, and is freed from the clutches of the Matrix. He learns how to enter and exit the Matrix at will, and essentially gains superpowers. Neo is able to move fast enough to dodge bullets, fly, and have incredible strength, all because he has learned how to fully take advantage of the environment that he’s in.

In development though, what are our equivalents of the red pill vs. blue pill? It’s the difference between simply getting something done, and getting it done more efficiently. As developers, we need to learn how to fully manipulate and control our environments and development tools, so that we can be as efficient and as powerful as we can when writing our applications.
(more…)