<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Strikefish Blog - Universal Mind</title>
			<link>http://blog.strikefish.com/blog/index.cfm</link>
			<description></description>
			<language>en-us</language>
			<pubDate>Wed, 19 Jun 2013 10:25:39 -0400</pubDate>
			<lastBuildDate>Thu, 30 Jun 2011 21:09:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>jeffrey.bouley@strikefish.com</managingEditor>
			<webMaster>jeffrey.bouley@strikefish.com</webMaster>
			
			<item>
				<title>Steve Jobs - An inspiring leader and visionary</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2011/6/30/Steve-Jobs--An-inspiring-leader-and-visionary</link>
				<description>
				
				If you want to see an example of how executive leaders can inject inspiration, fight, and stability across their company and supporters of their products; take an hour and watch Steve Jobs&apos; closing keynote for the WWDC &apos;97.

Note in 1997 Apple was just coming off the ropes.  SImilar to an Ali / Foreman or Frazier fight.  The web was just starting to mainstream and Microsoft was crushing everyone post Windows 95...

Apple was on an island, no strong network integration, they were really just sitting on the bench watching opportunities gone by.  Steve Jobs changed all of this and you can see in his responses to the questioning his passion for not only the company and its new approach bringing laser focus to the customer; but for common sense innovation.  So glad I got a chance to see this.  

No matter what anyone thinks regarding Steve Jobs and his leadership abilities; his transparency and candidness is a true inspiration to those who aspire to leadership roles within their respective companies.  Enjoy!

&lt;iframe width=&quot;425&quot; height=&quot;349&quot; src=&quot;http://www.youtube.com/embed/3LEXae1j6EY&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt; 
				</description>
				
				<category>IT in General</category>				
				
				<category>Apple</category>				
				
				<category>Universal Mind</category>				
				
				<pubDate>Thu, 30 Jun 2011 21:09:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2011/6/30/Steve-Jobs--An-inspiring-leader-and-visionary</guid>
				
			</item>
			
			<item>
				<title>Flex 4 and FlashBuilder 4 Released</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2010/3/22/Flex-4-and-FlashBuilder-4-Released</link>
				<description>
				
				Start your engines...

You can get the scoop here:

http://blogs.adobe.com/flex/ 
				</description>
				
				<category>Adobe</category>				
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<pubDate>Mon, 22 Mar 2010 08:20:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2010/3/22/Flex-4-and-FlashBuilder-4-Released</guid>
				
			</item>
			
			<item>
				<title>Spring and BlazeDS Best Practices</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/11/17/Spring-and-BlazeDS-Best-Practices</link>
				<description>
				
				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 &quot;painless&quot; install and configuration for this solution set.  There is also a java and flex example app to get you started.  Enjoy...

&lt;a href=&quot;http://www.strikefish.com/download/blazeds_best_practices.pdf&quot;&gt;BlazeDS Best Practices&lt;/a&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Java</category>				
				
				<category>Universal Mind</category>				
				
				<category>BlazeDS</category>				
				
				<pubDate>Tue, 17 Nov 2009 21:37:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/11/17/Spring-and-BlazeDS-Best-Practices</guid>
				
			</item>
			
			<item>
				<title>Flash Camp Atlanta</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/8/12/Flash-Camp-Atlanta</link>
				<description>
				
				If you are looking for a great day of Flex and Adobe discussion/training sign up for Flash Camp Atlanta!  

It&apos;s on Aug. 28th and starts at 8 for the special introduction course with general sessions starting at 9.  You can&apos;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:

&lt;a href=&quot;http://www.flashcampatlanta.com/&quot; mce_href=&quot;http://www.flashcampatlanta.com/&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://s3.davidtucker.net/flash_camp_atlanta-200.png&quot; mce_src=&quot;http://s3.davidtucker.net/flash_camp_atlanta-200.png&quot; width=&quot;200&quot; border=&quot;0&quot; /&gt;
&lt;/a&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Java</category>				
				
				<category>Universal Mind</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 12 Aug 2009 15:38:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/8/12/Flash-Camp-Atlanta</guid>
				
			</item>
			
			<item>
				<title>jvm.config Tuning Tip For All Server Side Java Solutions</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/7/15/jvmconfig-Tuning-Tip-For-All-Server-Side-Java-Solutions</link>
				<description>
				
				I have been wanting to blog about an experience I had not too long ago on a project where the jvm was consistently throwing OOM errors.  It had me banging my head against my desk for a few days attempting to trace where the culprit was.

Was it code related?... yes, was it bad code?... sort of, was it very very very intense code (looping over many sql calls and instantiating many objects)?... YES!  The challenge here was to apply a quick band aid rather than redesign this rules engine that had the characteristics listed due to time constraints.  It is important to note I was not responsible for the poorly written code 8-).  

I had to first identify if there were memory leaks due to this code.  To do this I utilized &lt;a href=&quot;http://http://www.yourkit.com/&quot;&gt;YourKit Java Profiler&lt;/a&gt;.  They have .NET and Java profilers that allow you to monitor their respective runtimes.  YourKit Profiler is very simple to configure within the jvm.config file (I&apos;m not going to get into that in this blog).  My point here is that I witnessed memory steadily climb and at times spike, but was only able to reclaim memory when executing a manual GC.  UGGG!!!  So, no memory leak, but the runtime was hanging on to what it had...  Why was the GC not reclaiming memory quickly on it&apos;s own?  I had all the BP jvm args of old, etc., etc. ParNewGC and RMI to no avail.

And to get back to the initial issue; the blasted OOM error.  I searched high and low and identified a thread on a Sun forum that there were issues with jre 1.5 that ultimately threw a OOM error if the runtime was unable to reclaim memory during a GC within a given time frame.  The workaround for this was to set a time constraint in the JVM (which didn&apos;t work) or install 1.6_10 or later.  This was my first step.  I installed this JRE version and pointed my jvm.config to it.  The application ran fine under this JRE except that I was still seeing the memory creep to the ceiling with no reclaim.  

I then read on one of Sun&apos;s GC tuning white papers the following paragraph:

The -XX:+AggressiveHeap option inspects the machine resources (size of memory and number of processors) and attempts to set various parameters to be optimal for long-running, memory allocation-intensive jobs. It was originally intended for machines with large amounts of memory and a large number of CPUs, but in the J2SE platform, version 1.4.1 and later it has shown itself to be useful even on four processor machines. With this option the throughput collector (-XX:+UseParallelGC) is used along with adaptive sizing (-XX:+UseAdaptiveSizePolicy). The physical memory on the machines must be at least 256MB before AggressiveHeap can be used. The size of the initial heap is calculated based on the size of the physical memory and attempts to make maximal use of the physical memory for the heap (i.e., the algorithms attempt to use heaps nearly as large as the total physical memory).

Note: -XX:+UseAdaptiveSizePolicy is on by default so I don&apos;t explicitly define it in my args.

Amazingly, once I added this to the args, removed ParNewGC (enabled UseParallelGC) the server ran flawlessly for days and days without a restart.  I was serving requests into the millions without a restart!!!  A partial arg list specific to these setting are below, please let me know your thoughts and concerns as I always enjoy constructive feedback.

java.args=-server -Xmx1024m -Xms1024m -XX:+AggressiveHeap -XX:+UseParallelGC -Dsun.io.useCanonCaches=false -XX:MaxPermSize=512m

Note: This was for a ColdFusion 8 instance. 
				</description>
				
				<category>Adobe</category>				
				
				<category>.NET</category>				
				
				<category>Site Performance</category>				
				
				<category>IT in General</category>				
				
				<category>Java</category>				
				
				<category>Universal Mind</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 15 Jul 2009 07:56:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/7/15/jvmconfig-Tuning-Tip-For-All-Server-Side-Java-Solutions</guid>
				
			</item>
			
			<item>
				<title>Flash 9 and 10 Compatibility Matrix</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/7/10/Flash-9-and-10-Compatibility-Matrix</link>
				<description>
				
				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.

&lt;a href=&quot;http://www.strikefish.com/download/Flash9And10CompatibilityMatrix.xls&quot;&gt;Matrix&lt;/a&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<category>U of M</category>				
				
				<pubDate>Fri, 10 Jul 2009 15:57:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/7/10/Flash-9-and-10-Compatibility-Matrix</guid>
				
			</item>
			
			<item>
				<title>Writing for ColdFusion 9</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/5/11/Writing-for-ColdFusion-9</link>
				<description>
				
				I just got word that I will be contributing to the books supporting the ColdFusion 9 release.  

Adobe is making significant improvements as they continue to evolve the product.  

I am stoked to be involved for a third release and look forward to working with a stellar team of authors. 
				</description>
				
				<category>Adobe</category>				
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 11 May 2009 21:38:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/5/11/Writing-for-ColdFusion-9</guid>
				
			</item>
			
			<item>
				<title>Flex Camp Miami</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/2/3/Flex-Camp-Miami</link>
				<description>
				
				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&apos;s an opportunity to learn from the industry&apos;s finest, network, discuss the daily grind, etc.  I look forward to seeing you there!


Here is the Agenda:

&lt;table style=&quot;border: 1px solid #617598;&quot; border=&quot;1&quot; width=&quot;100%&quot;&gt;

&lt;tbody&gt;
&lt;tr bgcolor=&quot;#cccccc&quot;&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;Time&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;Session and Speaker&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;8:00-8:30 am&lt;/td&gt;
&lt;td&gt;Registration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;8:30-9:30 am&lt;/td&gt;
&lt;td&gt;Welcome and Keynote (Flex 4 Preview)&lt;br /&gt;&lt;em&gt;Brian Rinaldi, Universal Mind&lt;br /&gt;Greg Wilson, Adobe&lt;br /&gt;&lt;/em&gt;

&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;&lt;em&gt;9:30-10:20 am&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;/page.cfm/agenda/david-tucker-working-with-data-in-air&quot;&gt;Working With Data in AIR&lt;/a&gt;&lt;br /&gt;&lt;em&gt;David Tucker, Universal Mind&lt;br /&gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10:20-10:40 am &lt;/td&gt;
&lt;td&gt;Break&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;10:40-11:30 am&lt;/td&gt;

&lt;td&gt;&lt;a href=&quot;/page.cfm/agenda/in-search-of-aop-for-as3&quot;&gt;In Search of AOP for AS3&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Maxim Porges, Highwinds&lt;br /&gt;&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11:30-12:20 pm&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;/page.cfm/agenda/andrew-powell-merapi-or-how-to-blow-your-mind&quot;&gt;Merapi or How to Blow Your Mind with AIR&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Andrew Powell, Universal Mind&lt;br /&gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;12:20-1:00 pm&lt;/td&gt;
&lt;td&gt;Lunch (provided)&lt;br /&gt;&lt;/td&gt;

&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;1:00-1:50 pm&lt;/td&gt;
&lt;td&gt;User Experience Design Topic TBA&lt;br /&gt;&lt;em&gt;TBA&lt;br /&gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;1:50-2:40 pm&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;/page.cfm/agenda/brian-legros-continuous-integration-and-flex&quot;&gt;Continuous Integration and Flex&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Brian LeGros, Highwinds&lt;br /&gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2:40-3:00 pm&lt;/td&gt;

&lt;td&gt;Break&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;3:00-3:50 pm&lt;/td&gt;
&lt;td&gt;&lt;em&gt;ScrapBlog.com Speaker&lt;/em&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;3:50-4:40 pm&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;
Mate Framework&lt;br /&gt;&lt;em&gt;Laura Arguello, ASFusion&lt;/em&gt;
&lt;/td&gt;

&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot;&gt;4:40-5:00 pm&lt;/td&gt;
&lt;td&gt;Closing and Door Prizes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


So as you can see, something for everyone.  Look forward to seeing you there. 
				</description>
				
				<category>Adobe</category>				
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>U of M</category>				
				
				<category>Universal Mind</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 03 Feb 2009 09:59:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/2/3/Flex-Camp-Miami</guid>
				
			</item>
			
			<item>
				<title>Thank You Greater Miami Chamber of Commerce</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2009/1/29/Thank-You-Greater-Miami-Chamber-of-Commerce</link>
				<description>
				
				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 &quot;download&quot; link below will allow you to save the PowerPoint presentation. 
				</description>
				
				<category>SEO</category>				
				
				<category>Site Performance</category>				
				
				<category>Flash</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<pubDate>Thu, 29 Jan 2009 09:11:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2009/1/29/Thank-You-Greater-Miami-Chamber-of-Commerce</guid>
				
				<enclosure url="http://blog.strikefish.com/blog/enclosures/SEO.DB.ppt1.15.09.ppt" length="2144768" type="application/vnd.ms-powerpoint"/>
				
			</item>
			
			<item>
				<title>ColdFusion createObject &quot;Component&quot; and Pathing Performance</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2008/12/12/ColdFusion-createObject-Component-and-Pathing-Performance</link>
				<description>
				
				I haven&apos;t blogged in awhile due to schedule, but had to blog this experience I recently had while attempting to stabilize an application and enhance performance. 

I have always taken for granted that createObject was lightning fast... Well, as fast as feasibly possibly under a given JVM.

I think I was dead wrong and this may be an issue for Adobe to address.  I am unclear on the internals of course.  But I have been up against OOMs on my current project and wanted to test out using soft reference (cached objects) and use duplicate from the cache rather than createObject.

Far stretch I know... but hey it was worth a try.  What was revealed was that performance was negligible and createObject was faster in some intervals.  Memory behaved the same, no real bonus.  So in discussion with a fellow consultant I told him I&apos;d ship a zip to him for test purposes as he had said he&apos;d seen a significant performance enhancement with duplicate (not true by the way).

What happened next totally shocked me.  To simplify the test code I snagged my VO.cfc out of it&apos;s proper place (several dirs down i.e. sitedir, com, bus, app, model, vo.. you get the idea) and put it in the root of the calling cfm.  I then removed all the pathing (dot notation) from my createObject call and executed the cfm to see if it would run ok after the change.  

The test was a loop of 10k over this create object call.  I was seeing execution times of around 30 seconds.  When I ran the updated code it went to 577 milliseconds...  I am still befuddled by this.  Is there that much overhead with pathing?  

I initially thought it was a mapping issue because I had been using mappings, but absolute path from root was just as slow.  

Please Adobe tell me this is Sun&apos;s jvm and not your code.  I know this is negligible with 100 or so creates, but imagine the boost if I did find something here. 

For clarification I am running on a Mac (OS X, CF running in JBOSS), but also tested on my old Dell (XP, CF running in JRUN).  I didn&apos;t see as dramatic a difference on WIntel, but my exec time went from 30 seconds to 4 seconds.  I am happy with 10x faster on Windows too...  

Any insight here is greatly appreciated.
Example Code:   
&lt;code&gt;
&lt;cfscript&gt;
  		currentTime = now();
  	  rqaArray = arrayNew(1);
  	  initTime = getTickCount();
			for (index=1; index lte 10000; index = index + 1)
      {
	      // pathing example replace vo reference with
	      //this pathing call com.mercer.mercerOnline.model.RQASummaryVO

	      rqa = createObject(&quot;component&quot;,&quot;RQASummaryVO&quot;);
	      rqa.rqaID                 = index;
				rqa.type                  = &quot;theType&quot;;
				rqa.createDate            = currentTime;
				rqa.submitDate            = currentTime;
				rqa.client                = &quot;currentClient&quot;;
				rqa.clientID              = &quot;clientID&quot;;
				rqa.status                = 6;
				rqa.userID                = 123456;
				rqa.agencyID              = &quot;agencyID&quot;;
				rqa.predecessorID         = 0;
				rqa.locked                = false;
				rqa.deleted               = false;
				rqa.title                 = &quot;The Title &quot;&amp;#index#;
				rqa.policyNumber          = &quot;thePolicyNum&quot;;
				rqa.agencyName            = &quot;agencyName&quot;;
				rqa.totalPremium          = &quot;totalPremium&quot;;
				rqa.hasMessages           = false;
				rqa.isAssigned            = false;
				rqa.assignedTo            = &quot;&quot;;
				rqa.proposedEffDate       = currentTime;
	      rqa.proposedExpDate       = currentTime;
	      rqa.agentName							= &quot;agentName&quot;;
				ArrayAppend(rqaArray,rqa);
			}

			endTime = getTickCount();

			totalTime = endTime - initTime;
&lt;/cfscript&gt;
&lt;cfdump var=&quot;#arrayLen(rqaArray)#&quot;&gt;
&lt;cfdump var=&quot;#rqaArray[10000]#&quot; /&gt;
&lt;cfdump var=&quot;#totalTime#&quot; /&gt;
&lt;/code&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>Site Performance</category>				
				
				<category>IT in General</category>				
				
				<category>Java</category>				
				
				<category>Universal Mind</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 12 Dec 2008 16:25:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2008/12/12/ColdFusion-createObject-Component-and-Pathing-Performance</guid>
				
			</item>
			
			<item>
				<title>&lt;a href=&quot;http://www.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Spatial Key&lt;/a&gt; (The Future of GIS)</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2008/8/18/a-hrefhttpwwwspatialkeycom--targetblankSpatial-Keya-The-Future-of-GIS</link>
				<description>
				
				I finally found some time to blog on what I deem a revolutionary software solution released by &lt;a href=&quot;http://www.universalmind.com&quot; target=&quot;_blank&quot;&gt;Universal Mind&lt;/a&gt;.  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 &lt;a href=&quot;http://www.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Spatial Key&lt;/a&gt; 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 &lt;a href=&quot;http://lawenforcement.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Law Enforcement&lt;/a&gt; link to see how &lt;a href=&quot;http://www.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Spatial Key&lt;/a&gt; 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 &lt;a href=&quot;http://www.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Spatial Key&lt;/a&gt;.  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 &lt;a href=&quot;http://lawenforcement.spatialkey.com/spatialkey/law-enforcement/video.cfm?KeepThis=true&amp;TB_iframe=true&amp;height=515&amp;width=630&amp;modal=true&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and try out the various example applications &lt;a href=&quot;http://www.spatialkey.com/spatialkey/www/gallery/gallery_home.cfm&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;

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 &lt;a href=&quot;http://www.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Spatial Key&lt;/a&gt;.

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 &lt;a href=&quot;http://www.spatialkey.com/&quot;  target=&quot;_blank&quot;&gt;Spatial Key&lt;/a&gt;. 
				</description>
				
				<category>Adobe</category>				
				
				<category>Universal Mind</category>				
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>MapQuest</category>				
				
				<pubDate>Mon, 18 Aug 2008 20:06:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2008/8/18/a-hrefhttpwwwspatialkeycom--targetblankSpatial-Keya-The-Future-of-GIS</guid>
				
			</item>
			
			<item>
				<title>Director of Consulting Services for Universal Mind</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2008/8/4/Director-of-Consulting-Services-for-Universal-Mind</link>
				<description>
				
				I have been consulting with a stellar group of IT professionals at &lt;a href=&quot;http://www.universalmind.com&quot; target=&quot;_blank&quot;&gt;Universal Mind&lt;/a&gt; now since April 2007.

My history (9 yrs) with the founders of Universal Mind goes back to Allaire and Macromedia consulting.  Our network was formed through this highly cohesive team of consultants that was built to support what I feel is still the best RAD server side technology on the market; ColdFusion.

With our current company focus on RIA, Flex, AIR, Java, ColdFusion and the various infrastructure technologies they integrate with in the modern enterprise I have been able to contribute and witness how companies benefit instantaneously from the services we provide.

It was an honor to be offered the full time directorial position with Universal Mind recently and I am very much looking forward to future challenges and continued successes in this role with UM.

On a final note UM is always looking for great developers, system architects, and designers.  Don&apos;t hesitate to respond to this blog with any interest. And if you find yourself reading this blog looking for talent due to a demanding project, please reach out to me; UM can &quot;parachute&quot; an expert or team of experts into your office quickly to help assist you with the challenges you may be experiencing no matter what SDLC phase you are in. 
				</description>
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<pubDate>Mon, 04 Aug 2008 22:06:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2008/8/4/Director-of-Consulting-Services-for-Universal-Mind</guid>
				
			</item>
			
			<item>
				<title>Quick Blog (Use mx:Form)</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2008/7/11/Quick-Blog-Use-mxForm</link>
				<description>
				
				I have been too busy to blog over the past couple months and this is more of a note than a blog entry.  I have come across a few applications in the past 6 months that had your standard CRUD forms.

The problem is that most of them used HBOX and VBOX in attempt to align Labels and TextInput items.  ACKKK!  These can significantly increase the size of your swf after compile in Flex Builder.  For form layout you can almost always use mx:Form.  The feature set behind this tag is very intuitive as well.

I&apos;ve seen developers write code to handle key press of the enter key in an effort to trigger the firing of a default button on the form. This is incorporated in the mx:Form tag also; you just point to the button via the defaultButton property.  The default button will fire when you click enter key on text input items.

I have attached a simple example of mx:Form with a default button displaying an alert.  Hope this helps and check out the language reference for more info as I didn&apos;t touch on all features: &lt;a href=&quot;http://livedocs.adobe.com/flex/201/langref/mx/containers/Form.html&quot; target=&quot;_blank&quot;&gt;mx:Form&lt;/a&gt;

Sample App:
&lt;code&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; viewSourceURL=&quot;srcview/index.html&quot;&gt;
	
	&lt;mx:Script&gt;
		&lt;![CDATA[
			import mx.controls.Alert;
			
			private function showAlert(event:MouseEvent):void
			{
				Alert.show(&apos;You submitted the form dude. &apos; + &apos;Form Data: &apos; + formField.text );
			}
			
		]]&gt;
	&lt;/mx:Script&gt;
	
	&lt;mx:Form x=&quot;0&quot; y=&quot;0&quot; width=&quot;447&quot; height=&quot;488&quot; defaultButton=&quot;{submitButton}&quot;&gt;				

			&lt;mx:Label id=&quot;exampleForm&quot; text=&quot;Example Form&quot; /&gt;
			&lt;mx:FormItem id=&quot;lblFormField&quot; label=&quot;Form Field:&quot;&gt;
				&lt;mx:TextInput id=&quot;formField&quot; enabled=&quot;true&quot; cornerRadius=&quot;4&quot; text=&quot;Default text.&quot; toolTip=&quot;Enter some text.&quot;/&gt;
			&lt;/mx:FormItem&gt;
			&lt;mx:FormItem width=&quot;409&quot; height=&quot;25&quot;&gt;
				&lt;mx:Button id=&quot;submitButton&quot; label=&quot;Submit&quot; click=&quot;showAlert(event)&quot;/&gt;	
			&lt;/mx:FormItem&gt;		
		&lt;/mx:Form&gt;

	
&lt;/mx:Application&gt;

&lt;/code&gt;

&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;
		id=&quot;FormExample&quot; width=&quot;100%&quot; height=&quot;100%&quot;
		codebase=&quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&quot;&gt;
		&lt;param name=&quot;movie&quot; value=&quot;http://blog.strikefish.com/blog/flex/formExample/FormExample.swf&quot; /&gt;
		&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
		&lt;param name=&quot;bgcolor&quot; value=&quot;#869ca7&quot; /&gt;
		&lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;
		&lt;embed src=&quot;http://blog.strikefish.com/blog/flex/formExample/FormExample.swf&quot; quality=&quot;high&quot; bgcolor=&quot;#869ca7&quot;
			width=&quot;100%&quot; height=&quot;100%&quot; name=&quot;FormExample&quot; align=&quot;middle&quot;
			play=&quot;true&quot;
			loop=&quot;false&quot;
			quality=&quot;high&quot;
			allowScriptAccess=&quot;sameDomain&quot;
			type=&quot;application/x-shockwave-flash&quot;
			pluginspage=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;
		&lt;/embed&gt;
&lt;/object&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<pubDate>Fri, 11 Jul 2008 07:03:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2008/7/11/Quick-Blog-Use-mxForm</guid>
				
			</item>
			
			<item>
				<title>A Mashup That Makes Sense</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2008/4/15/A-Mashup-That-Makes-Sense</link>
				<description>
				
				Recently &lt;a href=&quot;http://www.infoaccelerator.net&quot; target=&quot;_blank&quot;&gt;Andy Powell&lt;/a&gt; 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&apos;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 &apos;enter key&apos; 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&apos;s site here; &lt;a href=&quot;http://www.infoaccelerator.net/hotelsearch/&quot; target=&quot;_blank&quot;&gt;Ribbit, Kayak, MapQuest Mashup&lt;/a&gt; and book your hotel today 8-).

FYI, souce code is located at Andy&apos;s Google code site here:
&lt;a href=&quot;http://andrewpowell.googlecode.com/&quot; target=&quot;_blank&quot;&gt;AP&apos;s GCode site&lt;/a&gt;

&lt;img src=&quot;http://blog.strikefish.com/blog/images//rmk1.gif&quot;&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>Universal Mind</category>				
				
				<category>ColdFusion</category>				
				
				<category>Flash</category>				
				
				<category>Flex</category>				
				
				<category>Ribbit</category>				
				
				<category>MapQuest</category>				
				
				<category>ActionScript</category>				
				
				<category>IT in General</category>				
				
				<pubDate>Tue, 15 Apr 2008 09:37:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2008/4/15/A-Mashup-That-Makes-Sense</guid>
				
			</item>
			
			<item>
				<title>Flex Smart Combo (aka look ahead combo)</title>
				<link>http://blog.strikefish.com/blog/index.cfm/2008/3/21/Flex-Smart-Combo-aka-look-ahead-combo</link>
				<description>
				
				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&apos;t exist except for a few components running around that didn&apos;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&apos;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: &lt;a href=&quot;http://adamflater.blogspot.com/&quot; target=&quot;_blank&quot;&gt;Here&lt;/a&gt;

&lt;font color=&quot;#B84A45&quot;&gt;
*********  UPDATE:  6/26/2008 ************

Resolved focus issues.  Enabled view source (right click on the swf).
&lt;/font&gt;
&lt;code&gt;
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 = &quot;&quot;;
    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&apos;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&apos;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 == &quot;&quot;)
      {
        this.selectedIndex = 0;
      }
      this.editable = false;
    }
    
    override protected function focusOutHandler(event:FocusEvent):void
    {
      super.focusOutHandler(event);
      if (this.text == &quot;&quot;)
      {
        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();
    }
    
    
  }
}
&lt;/code&gt;

Example:

&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;
		id=&quot;SmartCombo&quot; width=&quot;100%&quot; height=&quot;100%&quot;
		codebase=&quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&quot;&gt;
		&lt;param name=&quot;movie&quot; value=&quot;http://blog.strikefish.com/blog/flex/smartcombo/SmartCombo.swf&quot; /&gt;
		&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
		&lt;param name=&quot;bgcolor&quot; value=&quot;#869ca7&quot; /&gt;
		&lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;
		&lt;embed src=&quot;http://blog.strikefish.com/blog/flex/smartcombo/SmartCombo.swf&quot; quality=&quot;high&quot; bgcolor=&quot;#869ca7&quot;
			width=&quot;100%&quot; height=&quot;100%&quot; name=&quot;SmartCombo&quot; align=&quot;middle&quot;
			play=&quot;true&quot;
			loop=&quot;false&quot;
			quality=&quot;high&quot;
			allowScriptAccess=&quot;sameDomain&quot;
			type=&quot;application/x-shockwave-flash&quot;
			pluginspage=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;
		&lt;/embed&gt;
&lt;/object&gt;

Download Source Project: &lt;a href=&quot;http://www.strikefish.com/download/SmartCombo.zip&quot;&gt;Here&lt;/a&gt; 
				</description>
				
				<category>Flash</category>				
				
				<category>ActionScript</category>				
				
				<category>Flex</category>				
				
				<category>IT in General</category>				
				
				<category>Universal Mind</category>				
				
				<pubDate>Fri, 21 Mar 2008 22:36:00 -0400</pubDate>
				<guid>http://blog.strikefish.com/blog/index.cfm/2008/3/21/Flex-Smart-Combo-aka-look-ahead-combo</guid>
				
			</item>
			</channel></rss>