Flex 4 and FlashBuilder 4 Released

Start your engines...

You can get the scoop here:

http://blogs.adobe.com/flex/

Spring and BlazeDS Best Practices

I recently wrote a white paper for a client to assist them in ramping up with Spring and BlazeDS Integration (SBI) best practices. The link below will allow you to download the white paper.

It contains many links to helpful downloads and assists in a "painless" install and configuration for this solution set. There is also a java and flex example app to get you started. Enjoy...

BlazeDS Best Practices

Flash Camp Atlanta

If you are looking for a great day of Flex and Adobe discussion/training sign up for Flash Camp Atlanta!

It's on Aug. 28th and starts at 8 for the special introduction course with general sessions starting at 9. You can't beat the training you will receive from these experts in Flash and RIA; plus it only costs 50 bucks!

I am planning to attend, hope to see you there; click on the image to register:

Flash 9 and 10 Compatibility Matrix

I was recently tasked on my current project to generate this. I hope it helps some of you in communication regarding Flash support across multiple OS and Browsers.

Matrix

Flex Camp Miami

I wanted to blog a reminder that I am promoting Flex Camp Miami (http://www.flexcampmiami.com). It will be on the University of Miami campus. A great place to meet during the winter season and registration is only $30!!!!

The testimonials alone are reason to attend: http://www.flexcampmiami.com/page.cfm/testimonials.

It's an opportunity to learn from the industry's finest, network, discuss the daily grind, etc. I look forward to seeing you there!

Here is the Agenda:

Time Session and Speaker
8:00-8:30 am Registration
8:30-9:30 am Welcome and Keynote (Flex 4 Preview)
Brian Rinaldi, Universal Mind
Greg Wilson, Adobe

9:30-10:20 am Working With Data in AIR
David Tucker, Universal Mind
10:20-10:40 am Break
10:40-11:30 amIn Search of AOP for AS3
Maxim Porges, Highwinds
11:30-12:20 pm Merapi or How to Blow Your Mind with AIR
Andrew Powell, Universal Mind
12:20-1:00 pm Lunch (provided)
1:00-1:50 pm User Experience Design Topic TBA
TBA
1:50-2:40 pm Continuous Integration and Flex
Brian LeGros, Highwinds
2:40-3:00 pmBreak
3:00-3:50 pm ScrapBlog.com Speaker
3:50-4:40 pm
Mate Framework
Laura Arguello, ASFusion
4:40-5:00 pm Closing and Door Prizes

So as you can see, something for everyone. Look forward to seeing you there.

Thank You Greater Miami Chamber of Commerce

I spoke to the GMCC yesterday afternoon about SEO and how Universal Mind has overcome the challenges of spidering flash based solutions.

It was an enjoyable presentation and I appreciated the genuine interest and questions from the attendees. Thank you Chamber! I look forward to visiting again. The "download" link below will allow you to save the PowerPoint presentation.

Spatial Key (The Future of GIS)

I finally found some time to blog on what I deem a revolutionary software solution released by Universal Mind. Having my head in GIS solutions; ESRI, MapQuest and the players they integrate with I state knowing full well based on what I have seen over this 7 year period that the approach taken to this solution goes far beyond any solution on the market and will provide tremendous benefits to any organization that retains and/or analyzes location based data.

You may be asking yourself, what is the benefit of Spatial Key with regard to the data in question? The quick response is that if you are dealing with large datasets spread globally, regionally, or even locally this software will save you time. Please follow the Law Enforcement link to see how Spatial Key is currently being utilized by the Ogden Police Department.

Imagine millions of data points immediately organized allowing the user to drill down, expedite reporting, and understand relationships of data that may not have been realized prior to using Spatial Key. This last item is important with regard to statistics associated with location data spread over time. A real world scenario would be an event that created increases and or decreases of a given activity in certain locations (i.e sales, travel, instability, etc). With Spatial Key the timeframe of this event can be filtered graphically in which the analytics behind this filter can be readily deduced. See the demo here and try out the various example applications here

As human beings we are visual creatures and when it comes to crunching numbers or aligning information what better approach is there than to understand where the data points are generated from and then drill into this data with a better understanding of what is occurring. I have just touched on the surface at this point with regard to data integration with Spatial Key.

In closing I have to comment on the incredibly intuitive visual cues built into viewing the data across a map backdrop. These are features such as heat maps, heat grids, and graduated circles which will show you hot and cold spots within your data points. There is also timeline playback support where animation of data across time will show how data changed within a given time period.

I look forward to your comments and questions regarding Spatial Key.

A Mashup That Makes Sense

Recently Andy Powell won a WII for his submission into the 360 Flex | API Contest.

His winning application is a great example of leveraging multiple APIs that at first glance, one may be challenged in connecting the dots with regard to how they could be integrated into a single intuitive application. When I first looked at Andy's initial layout and functionality as intuitive as it was, I got stoked because I could see that this application could be enhanced visually and functionally; so I am blogging about the enhancements I made to that effect.

First, I had some .css in mind to give it that Ribbit Green theme. I adjusted the layout of the various nested canvases and converted them to use a form which allows for formitem conciseness with regard to alignment etc and allots for a default button (integrated form 'enter key' functionality).

I sized down the respective API images into the main panels control bar (will be applying links shortly) and enhanced the map functionality which allows for a unique icon (hotel) to identify the selected hotel from other hotel POIs on the map. Each time a search is performed the past icon is returned to its initial state and the newly selected hotel gets the new icon (member variables used to allow for this). I will be styling the MapQuest info windows that pop up with selection of a POI shortly as the very customizable MapQuest API is 100% extensible.

I then relocated the RIBBIT dial up interface and adjusted dialing status to persist in the connection labeling area rather than separately at the bottom of the form to save real estate. Lastly, I wrapped it in a panel with the hotel details form and nested it within a panel along with the MapQuest tilemap component. This panel will soon be a slide in that will open/close via grid selection and panel close feature. Please check out the new app on Andy's site here; Ribbit, Kayak, MapQuest Mashup and book your hotel today 8-).

FYI, souce code is located at Andy's Google code site here: AP's GCode site

Flex Smart Combo (aka look ahead combo)

A few weeks back a fellow UM-er asked if there had been a look ahead combo created at some point and possibly checked into our library.

To my knowledge such a component didn't exist except for a few components running around that didn't exactly do what he was looking for. So I spent some time extending combo box to create the functionality he was looking for.

This component allows a user to hot key filter the combos list/data provider which means, when the combo box gains focus it becomes editable allowing key entry to filter the list items based on the keys pressed.

It is quite slick and is written entirely as a single class extending ComboBox. Feel free to enhance, chop, criticize... It's yours to use how you wish and I hope it assists you in your efforts. Enjoy!

I would like to thank Adam Flater for adding case sensitivity option and label filtering. Check out his blog: Here

********* UPDATE: 6/26/2008 ************

Resolved focus issues. Enabled view source (right click on the swf).

package com.universalmind.controls
{
import flash.events.Event;
import flash.events.FocusEvent;
import flash.events.MouseEvent;

import mx.controls.ComboBox;

public class SmartCombo extends ComboBox
{
private var _trackText:String = "";
private var _caseSensitiveSearching : Boolean = true;

public function SmartCombo()
{
//TODO: implement function super();
}

public function set caseSensitiveSearching (bool : Boolean) : void {
_caseSensitiveSearching = bool;
}

public function get caseSensitiveSearching () : Boolean {
return _caseSensitiveSearching;
}

override protected function textInput_changeHandler(event:Event):void {
_trackText = this.textInput.text;

// variables used in the loop var label : String = null;
var matchingIdx : int = 0;
var foundMatch : Boolean = false;
var searchString : String = this.textInput.text;

if ( caseSensitiveSearching == false ) searchString = searchString.toLowerCase();


// using a for each loop on dataProvider does not strongly // couple to it only being an ArrayCollection... simlar // with weak typing on the items in the set for each ( var item : Object in this.dataProvider )
{
// using itemToLabel() checks a few things like // if the item is a String, or it there's a // labelFunction being used label = this.itemToLabel( item );


// if searching should not be case sensitive // do a toLowerCase() on label if ( this.caseSensitiveSearching == false )
{
label = label.toLowerCase();
}


// find the first item that starts with searchString // if there's a match, break out of the loop if ( label.substr( 0, searchString.length ) == searchString )
{
this.dropdown.selectedIndex = matchingIdx;
this.dropdown.scrollToIndex( matchingIdx );
foundMatch = true
break;
}
matchingIdx++;
}


// if there was no match found set selectedIndex to -1 // (unselect the list) if ( foundMatch == false )
{
this.dropdown.selectedIndex = -1;
}
}

override public function close(trigger:Event=null):void{
super.close(trigger);
if (this.text == "")
{
this.selectedIndex = 0;
}
this.editable = false;
}

override protected function focusOutHandler(event:FocusEvent):void
{
super.focusOutHandler(event);
if (this.text == "")
{
this.selectedIndex = 0;
}
this.textInput.selectionEndIndex = this.textInput.width;
this.editable = false;
}

override protected function focusInHandler(event:FocusEvent):void
{
super.focusInHandler(event);
this.editable = true;
this.textInput.setFocus();
this.open();
}


}
}

Example:

Download Source Project: Here

IPhone and Third Party Software

This article at CNN does not specifically state that Apple will allow for installation of Flash runtime. Hmmm... That has to be around the corner you would think. Come on Apple, Flexers want to write solutions for the IPhone.

The CNN Article

More Entries


Copyright Strikefish, Inc., 2005. All rights reserved.