<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site Progressive Overload</title><link>http://ajlcom.instantspot.com</link><description>Aaron Lynch on web development and other stuff</description><language>en-us</language><copyright>This work is Copyright &#xA9; 2010 by Progressive Overload</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Sun, 14 Mar 2010 21:46:21 GMT</pubDate><item><title>If These Carrots Could Talk:  A Carrot Retrospective</title><link>http://ajlcom.instantspot.com/blog/2009/12/17/If-These-Carrots-Could-Talk--A-Carrot-Retrospective/</link><description>Found some extremely old carrots while cleaning out a fridge at work.</description><pubDate>Thu, 17 Dec 2009 14:35:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/12/17/If-These-Carrots-Could-Talk--A-Carrot-Retrospective/</guid><category>Miscellaneous,Humor</category></item><item><title>A Better way to serve files from the Google App Engine Virtual File System</title><link>http://ajlcom.instantspot.com/blog/2009/11/25/A-Better-way-to-serve-files-from-the-Google-App-Engine-Virtual-File-System/</link><description>&lt;p&gt;The other day I posted an &lt;a href=&quot;http://aaronjlynch.com/blog/2009/11/24/Google-App-Engines-Virtual-File-System-with-OpenBD&quot;&gt;example of how one might access images&lt;/a&gt;, for example, from your Google App&apos;s virtual file system.&amp;nbsp; While it was sufficient, I wasn&apos;t really happy with how the URL&apos;s looked and how missing files were managed.&amp;nbsp;&lt;/p&gt; &lt;p&gt;Right as I was writing this post to detail how I had rewritten the url to manage accessing VFS&amp;nbsp;files, Vince posted this to the openBD&amp;nbsp;mailing list...rendering my solution obsolete!&amp;nbsp;&lt;/p&gt; &lt;p&gt;Quoted from the mailing list:&lt;/p&gt; &lt;blockquote&gt;My apologies for taking so long to respond to this thread. In addition to Aaron&apos;s &amp;quot;getfile.cfm&amp;quot;--a very nice solution--GaeVFS contains a built-in servlet that allows you to do directory listings and serve files from configured directories. In order to use the GaeVfsServlet, add the following to your web.xml (this example serves files from the &amp;quot;/images&amp;quot; directory of your webapp): &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;servlet&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servlet-name&amp;gt;gaevfs&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;servlet-name&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servlet-class&amp;gt;com.&lt;wbr&gt;&lt;/wbr&gt;newatlanta.commons.vfs.&lt;wbr&gt;&lt;/wbr&gt;provider.gae.GaeVfsServlet&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;servlet-class&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;init-param&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-name&amp;gt;&lt;wbr&gt;&lt;/wbr&gt;dirListingAllowed&amp;lt;/param-name&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-value&amp;gt;true&amp;lt;/param-&lt;wbr&gt;&lt;/wbr&gt;value&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/init-param&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;init-param&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-name&amp;gt;initDirs&amp;lt;/param-&lt;wbr&gt;&lt;/wbr&gt;name&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-value&amp;gt;&amp;lt;/param-value&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/init-param&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/servlet&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;servlet-mapping&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servlet-name&amp;gt;gaevfs&amp;lt;/&lt;wbr&gt;&lt;/wbr&gt;servlet-name&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url-pattern&amp;gt;/images/*&amp;lt;/url-&lt;wbr&gt;&lt;/wbr&gt;pattern&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/servlet-mapping&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;You can then serve files by using normal IMG tags:&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;/images/mypicture.jpg&amp;quot;&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;You can serve files from as many directories as you&apos;d like by adding multiple &amp;lt;servlet-mapping&amp;gt; elements and specifying the appropriate &amp;lt;url-pattern&amp;gt; elements. Also note the &amp;quot;dirListingAllowed&amp;quot; init parameter which enables/disable directory listings. Further details are available in the javadoc comments in the source code:&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gaevfs/source/browse/trunk/src/com/newatlanta/appengine/servlet/GaeVfsServlet.java&quot;&gt;http://code.google.com/p/&lt;wbr&gt;&lt;/wbr&gt;gaevfs/source/browse/trunk/&lt;wbr&gt;&lt;/wbr&gt;src/com/newatlanta/appengine/&lt;wbr&gt;&lt;/wbr&gt;servlet/GaeVfsServlet.java&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;/blockquote&gt;</description><pubDate>Wed, 25 Nov 2009 17:54:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/25/A-Better-way-to-serve-files-from-the-Google-App-Engine-Virtual-File-System/</guid><category>Web Development,BlueDragon,Google App Engine</category></item><item><title>Url Rewriting on Google App Engine</title><link>http://ajlcom.instantspot.com/blog/2009/11/25/Url-Rewriting-on-Google-App-Engine/</link><description>&lt;p&gt;Lately I have been digging in to application development for the Google App Engine running Open BlueDragon.&amp;nbsp; I encountered a need to rewrite and filter some URL&apos;s.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The software:&lt;/strong&gt;&amp;nbsp; UrlRewriteFilter&amp;nbsp; (&lt;a href=&quot;http://tuckey.org/urlrewrite/#download&quot;&gt;go get it here&lt;/a&gt;)&amp;nbsp; I used the Beta 3.2 version.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The Installation:&lt;/strong&gt; (borrowed in part from tuckey.org&apos;s instructions)&lt;/p&gt; &lt;ol&gt;     &lt;li&gt;Move the urlrewrite.xml to the /war/WEB-INF directory.&lt;/li&gt;     &lt;li&gt;Move the urlrewrite-3.2.0.jar to the /war/WEB-INF/lib directory.&lt;/li&gt;     &lt;li&gt;Add the following to your /war/WEB-INF/web.xml. &lt;br /&gt;     &lt;pre&gt;&lt;code&gt;        &amp;lt;filter&amp;gt;&lt;br /&gt;           &amp;lt;filter-name&amp;gt;UrlRewriteFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;           &amp;lt;filter-class&amp;gt;org.tuckey.web.filters.urlrewrite.UrlRewriteFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;        &amp;lt;/filter&amp;gt;&lt;br /&gt;        &amp;lt;filter-mapping&amp;gt;&lt;br /&gt;           &amp;lt;filter-name&amp;gt;UrlRewriteFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;           &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;        &amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;        &lt;/code&gt;&lt;/pre&gt;     &lt;/li&gt;     &lt;li&gt;Add your own configuration to the /war/WEB-INF/urlrewrite.xml that was created.&lt;/li&gt;     &lt;li&gt;Re-deploy your Google App.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;     &amp;lt;!--Redirect one url--&amp;gt;         &amp;lt;rule&amp;gt;             &amp;lt;from&amp;gt;/some/old/page.html&amp;lt;/from&amp;gt;             &amp;lt;to type=&amp;quot;redirect&amp;quot;&amp;gt;/very/new/page.html&amp;lt;/to&amp;gt;         &amp;lt;/rule&amp;gt;    &amp;lt;!--  Redirect a directory --&amp;gt;         &amp;lt;rule&amp;gt;             &amp;lt;from&amp;gt;/some/olddir/(.*)&amp;lt;/from&amp;gt;             &amp;lt;to type=&amp;quot;redirect&amp;quot;&amp;gt;/very/newdir/$1&amp;lt;/to&amp;gt;         &amp;lt;/rule&amp;gt;     &amp;lt;!-- Clean a url --&amp;gt;         &amp;lt;rule&amp;gt;             &amp;lt;from&amp;gt;/products/([0-9]+)&amp;lt;/from&amp;gt;             &amp;lt;to&amp;gt;/products/index.jsp?product_id=$1&amp;lt;/to&amp;gt;         &amp;lt;/rule&amp;gt;    &amp;lt;!--     eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing.    --&amp;gt;     &amp;lt;!-- Browser detection --&amp;gt;         &amp;lt;rule&amp;gt;             &amp;lt;condition name=&amp;quot;user-agent&amp;quot;&amp;gt;Mozilla/[1-4]&amp;lt;/condition&amp;gt;             &amp;lt;from&amp;gt;/some/page.html&amp;lt;/from&amp;gt;             &amp;lt;to&amp;gt;/some/page-for-old-browsers.html&amp;lt;/to&amp;gt;         &amp;lt;/rule&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;</description><pubDate>Wed, 25 Nov 2009 17:41:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/25/Url-Rewriting-on-Google-App-Engine/</guid><category>Web Development,BlueDragon,Google App Engine</category></item><item><title>The Elusive Thomas At Action Canyon</title><link>http://ajlcom.instantspot.com/blog/2009/11/24/The-Elusive-Thomas-At-Action-Canyon/</link><description>&lt;p style=&quot;text-align: center; color: red;&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;text-align: center; color: red;&quot;&gt;&lt;strong&gt;UPDATE:&amp;nbsp; We did receive the toy.&amp;nbsp; So there really is hope after all!&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you have a son who is an absolute Thomas the Tank Engine fanatic, then you no doubt have fallen prey to their clever (or blatant!) advertising of the apparently amazing toy set &amp;quot;Thomas at Action Canyon&amp;quot;.&amp;nbsp; Problem is, it is impossible to find right now!&amp;nbsp; (unless you want to pay upwards of 200 bucks on eBay or Amazon)&lt;/p&gt; &lt;p&gt;My wife went so far as to start posting some want-ads on craigslist.&amp;nbsp; Luckily for us, some good samaratin grandmother shared this little tidbit of info with us. PayPal has a shopping site where you can do a search for items to purchase.&amp;nbsp; We were able to find this toy on toysrus.com even though searching directly on toysrus.com turned up zero results.&lt;/p&gt; &lt;p&gt;No idea how/why or even if it still works as of your reading this post. But, if you want to give it a try give this search a try &lt;a href=&quot;https://www.paypal-shopping.com/find-products.html?findtext=thomas+at+action+canyon&amp;amp;submitBtn.x=0&amp;amp;submitBtn.y=0&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Thomas At Action Canyon&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;div align=&quot;center&quot;&gt; &lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt; &lt;/object&gt;&lt;/p&gt; &lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Pb2XwTZa4-8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;&quot; /&gt; &lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt; &lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://www.youtube.com/v/Pb2XwTZa4-8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style=&quot;color: red;&quot;&gt;&lt;strong&gt;UPDATE 2:&amp;nbsp; Success!&lt;/strong&gt;&lt;/p&gt; &lt;p style=&quot;color: red;&quot;&gt;&lt;img width=&quot;500&quot; height=&quot;375&quot; align=&quot;middle&quot; src=&quot;/userfiles/073006/90/1225090931-00.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; &lt;/div&gt;</description><pubDate>Tue, 24 Nov 2009 19:13:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/24/The-Elusive-Thomas-At-Action-Canyon/</guid><category>Miscellaneous</category></item><item><title>Google App Engine&apos;s Virtual File System with OpenBD</title><link>http://ajlcom.instantspot.com/blog/2009/11/24/Google-App-Engines-Virtual-File-System-with-OpenBD/</link><description>&lt;p&gt;Working with the virutal file system on Google&amp;nbsp;App&amp;nbsp;Engine is fairly simple once you grasp the fact that all of your directories and files are really just BLOBs in the Google datastore.&amp;nbsp; If you have worked with binary data from a database before, then this should be quite easy for you.&lt;/p&gt; &lt;p&gt;Interaction with the filesystem is easily done through openBD&apos;s implementation of the cfdirectory and cffile tags.&amp;nbsp; You can CREATE and LIST directories from your VFS using the cfdirectory tag you know and love.&amp;nbsp;&lt;/p&gt; &lt;p&gt;The &amp;quot;tricky&amp;quot; part comes when you find that none of the files you have uploaded are web accessible.&amp;nbsp; In other words, you can upload to &amp;quot;/images&amp;quot; but you aren&apos;t going to be able to browse to &amp;quot;/images/mynewimage.jpg&amp;quot;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt; &lt;p&gt;One solution would be to create a .cfm template to take a URL query string and serve up the requested file from the VFS.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For example:&amp;nbsp;&amp;nbsp; &lt;strong&gt;getfile.cfm?f=mynewimage.jpg&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Which you could then use as the SRC in an IMG tag.&amp;nbsp; &lt;strong&gt;&lt;br /&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&amp;lt;img src=&amp;quot;getfile.cfm?f=mynewimage.jpg&amp;quot; &amp;gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Where getfile.cfm might look like this:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cffile action=&amp;quot;readbinary&amp;quot; file=&amp;quot;#ExpandPath(&apos;/images/&apos; &amp;amp; url.f )#&amp;quot; variable=&amp;quot;myFile&amp;quot;&amp;gt;   &amp;lt;cfcontent type=&amp;quot;#getMimeType(url.f)#&amp;quot; variable=&amp;quot;#myFile#&amp;quot; reset=&amp;quot;true&amp;quot; &amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Note:&amp;nbsp; I created this method called getMimeType() for an example site:&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cffunction name=&amp;quot;getMimeType&amp;quot; &amp;gt;  &amp;lt;cfargument name=&amp;quot;fileName&amp;quot; /&amp;gt;  &amp;lt;cfset var extension = ListLast(arguments.fileName,&amp;quot;.&amp;quot;) /&amp;gt;  &amp;lt;cfswitch expression=&amp;quot;.#extension#&amp;quot;&amp;gt;   &amp;lt;cfcase value=&amp;quot;.bmp&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;image/bmp&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.css&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;text/css&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.js&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;text/javascript&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.jpg&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;image/jpeg&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.jpeg&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;image/jpeg&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.jpe&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;image/jpeg&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.doc&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/msword&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.docx&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/msword&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.gif&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;image/gif&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.gz&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/x-gzip&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.htm&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;text/htm&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.html&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;text/html&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.ico&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;image/x-icon&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.mov&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;video/quicktime&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.mp3&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;audio/mpeg&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.ppt&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/vnd.ms-powerpoint&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.pps&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/vnd.ms-powerpoint&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.tgz&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/x-compressed&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.txt&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;text/plain&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.wav&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;audio/x-wav&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.wmv&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;video/x-ms-wmv&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.xls&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/vnd.ms-excel&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.xlsx&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/vnd.ms-excel&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.zip&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/zip&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfcase value=&amp;quot;.xml&amp;quot;&amp;gt; &amp;lt;cfreturn &amp;quot;application/xml&amp;quot;&amp;gt; &amp;lt;/cfcase&amp;gt;   &amp;lt;cfdefaultcase&amp;gt;    &amp;lt;cfoutput&amp;gt;#extension#&amp;lt;/cfoutput&amp;gt; FILE TYPE NOT SUPPORTED    &amp;lt;cfabort&amp;gt;   &amp;lt;/cfdefaultcase&amp;gt;  &amp;lt;/cfswitch&amp;gt;  &amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;</description><pubDate>Tue, 24 Nov 2009 17:37:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/24/Google-App-Engines-Virtual-File-System-with-OpenBD/</guid><category>ColdFusion,Internet,Web Development,BlueDragon</category></item><item><title>Coldfusion on the Google App Engine with Open BlueDragon</title><link>http://ajlcom.instantspot.com/blog/2009/11/20/Coldfusion-on-the-Google-App-Engine-with-Open-BlueDragon/</link><description>&lt;p&gt;&lt;strong&gt;The future is now!&amp;nbsp; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;A little melodramatic maybe, but this technology is exciting.&amp;nbsp; Free cfml app servers with clustering (including data and file storage).&amp;nbsp;&lt;/p&gt; &lt;p&gt;First, if you don&apos;t know what the Google App&amp;nbsp;Engine is yet, go &lt;a href=&quot;http://code.google.com/appengine/&quot;&gt;here&lt;/a&gt; first and do a little reading.&amp;nbsp; Once you have read enough of that to be sufficiently excited, we need to set up the development and deployment tools.&amp;nbsp; Paul Kukiel has put together a really nice demo on how to do this &lt;a href=&quot;http://blog.kukiel.net/2009/09/coldfusion-on-google-app-engine-with.html&quot;&gt;here&lt;/a&gt;.&amp;nbsp; &lt;strong&gt;NOTE&amp;nbsp;THERE&amp;nbsp;IS&amp;nbsp;ONE&amp;nbsp;THING&amp;nbsp;THAT&amp;nbsp;IS&amp;nbsp;INCORRECT&amp;nbsp;IN&amp;nbsp;THE&amp;nbsp;VIDEO &amp;nbsp; &lt;/strong&gt; Do not delete the &amp;quot;war&amp;quot; directory, merely paste the openbd war over the existing one.&amp;nbsp; This is important.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Next, reading and writing data with the Google datastore.&amp;nbsp;&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt;Storing data in a scalable web application can be tricky. A user could be interacting with any of dozens of web servers at a given time, and the user&apos;s next request could go to a different web server than the one that handled the previous request. All web servers need to be interacting with data that is also spread out across dozens of machines, possibly in different locations around the world.  &lt;br /&gt; &lt;/blockquote&gt;&lt;blockquote&gt;Thanks to Google App Engine, you don&apos;t have to worry about any of that. App Engine&apos;s infrastructure takes care of all of the distribution, replication and load balancing of data behind a simple API&amp;mdash;and you get a powerful query engine and transactions as well.&lt;/blockquote&gt; &lt;p&gt;Thanks to the fine people at Open BlueDragon, this task is made very very simple.&amp;nbsp; Every cfc in the openBD GAE inherits the following methods from component.cfc.&amp;nbsp; GoogleWrite(), GoogleRead(), and GoogleKey().&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;-- Example object Status.cfc:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfcomponent displayname=&amp;quot;Status&amp;quot; output=&amp;quot;false&amp;quot;&amp;gt;   &amp;lt;cfproperty name=&amp;quot;Message&amp;quot; displayname=&amp;quot;Message&amp;quot; type=&amp;quot;string&amp;quot; /&amp;gt;  &amp;lt;cfproperty name=&amp;quot;DateTimeCreated&amp;quot; displayname=&amp;quot;DateTimeCreated&amp;quot; type=&amp;quot;date&amp;quot; /&amp;gt;   &amp;lt;cffunction name=&amp;quot;init&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;Status&amp;quot;&amp;gt;   &amp;lt;cfreturn this/&amp;gt;  &amp;lt;/cffunction&amp;gt;   &amp;lt;cffunction name=&amp;quot;getMessage&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;string&amp;quot;&amp;gt;   &amp;lt;cfreturn this.Message /&amp;gt;  &amp;lt;/cffunction&amp;gt;   &amp;lt;cffunction name=&amp;quot;setMessage&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;void&amp;quot;&amp;gt;   &amp;lt;cfargument name=&amp;quot;Message&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;   &amp;lt;cfset this.Message = arguments.Message /&amp;gt;   &amp;lt;cfreturn /&amp;gt;  &amp;lt;/cffunction&amp;gt;   &amp;lt;cffunction name=&amp;quot;getDateTimeCreated&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;date&amp;quot;&amp;gt;   &amp;lt;cfreturn this.DateTimeCreated /&amp;gt;  &amp;lt;/cffunction&amp;gt;   &amp;lt;cffunction name=&amp;quot;setDateTimeCreated&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;void&amp;quot;&amp;gt;   &amp;lt;cfargument name=&amp;quot;DateTimeCreated&amp;quot; type=&amp;quot;date&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;   &amp;lt;cfset this.DateTimeCreated = arguments.DateTimeCreated /&amp;gt;   &amp;lt;cfreturn /&amp;gt;  &amp;lt;/cffunction&amp;gt;    &amp;lt;/cfcomponent&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;-- Writing data to the datastore:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfscript&amp;gt; //saving a new Status to Google datastore Status = createObject( &amp;quot;component&amp;quot;, &amp;quot;model.Status&amp;quot; ).init(); Status.setMessage( &amp;quot;I love Google App Engine and OpenBD!&amp;quot; ); Status.setDateTimeCreated( Now() );  /*now all we do is call the googleWrite() method on our object, notice this returns the objects new google key*/ googleKey = Status.googleWrite(); &amp;lt;/cfscript&amp;gt; &lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;-- &lt;strong&gt;Querying the datastore:&lt;/strong&gt;&amp;nbsp; for more on this visit the &lt;a href=&quot;http://wiki.openbluedragon.org/wiki/index.php/GoogleAppEngine:Datastore&quot;&gt;openBD wiki page on the datastore&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;!--- notice dbtype=&amp;quot;google&amp;quot; and the quasi-SQL  ---&amp;gt; &amp;lt;cfquery dbtype=&amp;quot;google&amp;quot; name=&amp;quot;result&amp;quot;&amp;gt; Select from Status &amp;lt;/cfquery&amp;gt;  &amp;lt;!--- The result of this query, is an array of matching Status objects.  Not the usual query recordset. ---&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Securing your new web app&lt;/strong&gt; with the UserServiceFactory (com.google.appengine.api.users.UserServiceFactory)&lt;/p&gt; &lt;p&gt;Once I figured this step out, it was almost embarassingly easy to secure a page, allowing access only to validated Google account holders.&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfscript&amp;gt; UserServiceFactory = CreateObject(&amp;quot;java&amp;quot;,&amp;quot;com.google.appengine.api.users.UserServiceFactory&amp;quot;);  User = UserServiceFactory.getUserService().getCurrentUser();  /*Here I am doing a test to see if there is a valid user object returned, aka &amp;quot;logged in&amp;quot;.  At this time, I haven&apos;t found the ideal solution for this*/  isLoggedIn = false;  try{    user.getEmail();    isLoggedIn = true; } catch (any excpt){}  &amp;lt;/cfscript&amp;gt;  &amp;lt;!---  building login/logut links  ---&amp;gt;  &amp;lt;cfif NOT isLoggedIn&amp;gt; YOU NEED TO &amp;lt;a href=&amp;quot;&amp;lt;cfoutput&amp;gt;#UserServiceFactory.getUserService().createLoginURL(toString(&amp;quot;http://#cgi.SERVER_NAME#&amp;quot;))#&amp;lt;/cfoutput&amp;gt;&amp;quot;&amp;gt;LOGIN&amp;lt;/a&amp;gt; &amp;lt;cfelse&amp;gt;  &amp;lt;cfoutput&amp;gt;#request.user.getEmail()#&amp;lt;/cfoutput&amp;gt;:  All your email are belong to us   &amp;lt;br /&amp;gt;  &amp;lt;a href=&amp;quot;&amp;lt;cfoutput&amp;gt;#UserServiceFactory.getUserService().createLogoutURL(toString(&amp;quot;http://#cgi.SERVER_NAME#&amp;quot;))#&amp;lt;/cfoutput&amp;gt;&amp;quot;&amp;gt;LOGOUT&amp;lt;/a&amp;gt; &amp;lt;/cfif&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Time to build some real applications.&lt;/strong&gt;&amp;nbsp; Early indications from some experimentation by &lt;a href=&quot;http://www.daveshuck.com&quot;&gt;Dave Shuck&lt;/a&gt;, are revealing that the Mach-ii MVC framework along with the Coldspring IOC framework are working on the Google&amp;nbsp;App Engine.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Other features, new or otherwise:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;&lt;a href=&quot;http://code.google.com/appengine/docs/python/config/cron.html&quot;&gt;cron support&lt;/a&gt;&lt;/li&gt;     &lt;li&gt;&lt;a href=&quot;http://code.google.com/appengine/docs/python/tools/uploadingdata.html&quot;&gt;database import&lt;/a&gt;&lt;/li&gt;     &lt;li&gt;&lt;a href=&quot;http://code.google.com/securedataconnector/&quot;&gt;access to firewalled data&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;There is just no reason that we as cfml developers shouldn&apos;t be churning out app after app on this platform.&amp;nbsp;&lt;/p&gt;</description><pubDate>Sat, 21 Nov 2009 03:54:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/20/Coldfusion-on-the-Google-App-Engine-with-Open-BlueDragon/</guid><category>ColdFusion,Web Development,BlueDragon,Internet,Google App Engine</category></item><item><title>Tweaking the Content Editor:  Adding Images</title><link>http://ajlcom.instantspot.com/blog/2009/11/11/Tweaking-the-Content-Editor--Adding-Images/</link><description>&lt;p&gt;We have always allowed image uploading on InstantSpot, but for too long it has been rather embarassingly complex.&amp;nbsp; So much so that I bet many didn&apos;t even know it was an option.&amp;nbsp; I have made some changes to the editor (blog/page) to hopefully remedy this situation.&amp;nbsp;&lt;/p&gt; &lt;p&gt;To commemorate this event, I have uploaded a picture of Conrad and his impossibly small head.&lt;/p&gt; &lt;p&gt;&lt;img width=&quot;500&quot; height=&quot;375&quot; src=&quot;/userfiles/073006/90/Conrad.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</description><pubDate>Thu, 12 Nov 2009 04:07:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/11/Tweaking-the-Content-Editor--Adding-Images/</guid><category>InstantSpot News</category></item><item><title>Fedor VS Brett Rogers</title><link>http://ajlcom.instantspot.com/blog/2009/11/09/Fedor-VS-Brett-Rogers/</link><description>&lt;p&gt;I&apos;m a big fan of the Adam Carolla podcast, and one of his &lt;a href=&quot;http://www.adamcarolla.com/ACPBlog/2009/11/05/adam-and-brett-rogers/&quot; target=&quot;_blank&quot;&gt;recent guests&lt;/a&gt; was MMA fighter Brett Rodgers.&amp;nbsp; I don&apos;t really follow MMA very closely, but after listening to Brett I was really interested to hear how this fight turned out. Fedor Emelianenko is the #1 ranked fighter in the sport, while Brett just defeated Andrei Arlovski (who according to Brett&apos;s trainer was ranked #2).&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://ajlcom.instantspot.com/userfiles/073006/90/70-Adam_Brett_and_Mike.jpg&quot; style=&quot;max-width: 800px;&quot; alt=&quot;&quot; /&gt; &lt;div align=&quot;left&quot;&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The fight was carried on CBS over the weekend (Nov 7, 2009) and it turned out to be a pretty good one in my opinion.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=&quot;youtube-video&quot;&gt;&lt;object height=&quot;355&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/y8zMVAv1XOM&amp;amp;feature=youtube_gdata&quot;&gt; &lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt; &lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/y8zMVAv1XOM&amp;amp;feature=youtube_gdata&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; height=&quot;355&quot; width=&quot;425&quot;&gt; &lt;/embed&gt;     &lt;/object&gt;&lt;/div&gt; &lt;div align=&quot;center&quot;&gt;Fedor Emelianenko vs Brett Rogers (FULL FIGHT)&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img src=&quot;http://img.zemanta.com/pixy.gif?x-id=80e76fbf-362a-8392-863b-f9b7868753b8&quot; alt=&quot;&quot; class=&quot;zemanta-pixie-img&quot; /&gt;&lt;/div&gt;</description><pubDate>Mon, 09 Nov 2009 12:41:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/09/Fedor-VS-Brett-Rogers/</guid><category>Miscellaneous,Cool Videos</category></item><item><title>Pushing Weight: Back to Basics</title><link>http://ajlcom.instantspot.com/blog/2009/11/03/Pushing-Weight-Back-to-Basics/</link><description>&lt;p&gt;This post is going to be the kick-off for a new series of blog posts tracking my strength and fitness progress.&amp;nbsp; In the past I have followed complex body-part split routines that focused more on bodybuilding, with a secondary goal of getting stronger.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Back to Basics&lt;/strong&gt; is my simple plan.&amp;nbsp; Eat enough food to keep the scale moving up (.5 lb to 1lb per week) and strive to get stronger in a few basic lifts.&amp;nbsp; This approach is very different from what I am used to in terms of volume and variation.&amp;nbsp; As long as strength continues to increase, then I will consider this a successful routine.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The Routine&lt;/strong&gt; consists of four workout days with a focus on Squat, Deadlift, Bench, Overhead Press.&amp;nbsp;&lt;/p&gt; &lt;p&gt;Workout 1 - Lower&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;Squat (6 sets / heavy)&lt;/li&gt;     &lt;li&gt;Deadlift (4 or 5 sets / moderate)&lt;/li&gt;     &lt;li&gt;Calves&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Workout 2 - Upper&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;Bent over Barbell Row ( 3 sets / moderate)&lt;/li&gt;     &lt;li&gt;Bench (5 sets /&amp;nbsp; heavy)&lt;/li&gt;     &lt;li&gt;Overhead Press (4 or 5 sets / moderate)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Workout 3 - Lower&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;Deadlift (5 sets / heavy)&lt;/li&gt;     &lt;li&gt;Squats (5 sets / moderate)&lt;/li&gt;     &lt;li&gt;Calves&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Workout 4 - Upper&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;Pull - ups (4 sets / bodyweight)&lt;/li&gt;     &lt;li&gt;Bench (5 sets / moderate)&lt;/li&gt;     &lt;li&gt;Overhead Press (6 sets / heavy)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I have created a log here &lt;a href=&quot;http://proglog.instantspot.com&quot;&gt;proglog.instantspot.com&lt;/a&gt; to track my progress and updates.&lt;/p&gt;</description><pubDate>Tue, 03 Nov 2009 21:21:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/11/03/Pushing-Weight-Back-to-Basics/</guid><category>Fitness,Pushing Weight</category></item><item><title>Progressive Overload</title><link>http://ajlcom.instantspot.com/blog/2009/10/29/Progressive-Overload/</link><description>&lt;p&gt;Progressive Overload is the name of my blog as of yesterday (10/28/09).&amp;nbsp; I think the concept is extremely important to making gains in the weight room, but there might be some carry-over into other areas of our lives.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Progressive overload&lt;/strong&gt; is the gradual increase of stress placed upon the body during exercise training. It was developed by Thomas Delorme, M.D. while he rehabilitated soldiers after World War II.&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-0&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Progressive_overload#cite_note-0&quot;&gt;&lt;/a&gt;&lt;/sup&gt; This technique is recognized as a fundamental principle for success in various forms of strength training programs including fitness training, weight lifting, high intensity training and physical therapy programs. &lt;/em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Progressive_overload&quot;&gt;(from wikipedia)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Moral of the story, if you want to improve in a certain area of your life, never stop pushing yourself...it should always be hard if you want to always get better.&amp;nbsp;&lt;/p&gt;</description><pubDate>Thu, 29 Oct 2009 13:55:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/10/29/Progressive-Overload/</guid><category>Musings,Web Development,Fitness</category></item><item><title>Ode to Crushed Red Pepper</title><link>http://ajlcom.instantspot.com/blog/2009/10/28/Ode-to-Crushed-Red-Pepper/</link><description>&lt;p&gt;I love crushed red pepper and I use it in large quantities every day.&amp;nbsp;&lt;/p&gt; &lt;p&gt;In fact, I am going to write a haiku about it right now:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Oh crushed red pepper&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;So spicy, hot and awesome&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Please never run out&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 28 Oct 2009 16:48:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/10/28/Ode-to-Crushed-Red-Pepper/</guid><category>Musings</category></item><item><title>Mixing a little Flex with my Mach-II</title><link>http://ajlcom.instantspot.com/blog/2009/10/23/Mixing-a-little-Flex-with-my-MachII/</link><description>&lt;p&gt;One of my latest projects was to create a little contact manager / sales tool to integrate with an existing  system (written in Mach-II).&amp;nbsp; Requirements dictated that I needed to have access to my already logged in user (must be aware of client session). &amp;quot;Down the road&amp;quot; requirements, are that we&apos;d like to make an AIR port of this new feature as a standalone application. As a big fan of Flex, I thought it would be a great opportunity to test the efficacy of writing this new feature as a drop in Flex mini-application.&amp;nbsp;&lt;/p&gt; &lt;p&gt;Since security is handled by the existing application,&amp;nbsp; we needed to make sure the functionality of this app respected the existing security guidelines.&amp;nbsp; The best way I could think of was also the easiest...just start calling events and see what happens.&lt;/p&gt; &lt;p&gt;Lucky for me, it all just worked.&amp;nbsp; So here are a few examples that might help get you started if you are working on the same sort of project.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;On creationComplete I call a method named &amp;quot;init()&amp;quot; to get that user&apos;s set of contact data:&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt; private var myLoader:URLLoader;  public function init():void {  var myReq:URLRequest = new URLRequest(&apos;/index.cfm/event/GetContactData);  myLoader = new URLLoader()  myLoader.addEventListener(Event.COMPLETE, dataComplete);  myLoader.load(myReq); }&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Important:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; Notice the event listener I added to call the dataComplete method once the request was completed.&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Once we have that initial set of data, all that is left is to start POSTing the create/edit/deletes the user is making to his contacts.&lt;/p&gt; &lt;p&gt;Here is an example of doing an HTTP POST request and passing my Contact object to a Mach-II event:&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;private function saveContact(Contact:ContactVO):void {  var myHTTPService:HTTPService = new HTTPService;  myHTTPService.method= &amp;quot;POST&amp;quot;;  myHTTPService.url = &apos;/index.cfm/event/SaveContact&apos;;  myHTTPService.addEventListener(ResultEvent.RESULT,function():void{init()});  myHTTPService.send(Contact);  Alert.show(&apos;Contact has been saved.&apos;); }&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Note:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; Check out how we send the Contact object without doing anything tricky?&amp;nbsp; All of the properties of my ContactVO are available as event Args in my Mach-II listener.&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here is another example of doing an HTTP POST request, but passing individual variables:&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;private function submitNote(htmlText:String,plainText:String,Contact:ContactVO):void {  var myHTTPService:HTTPService = new HTTPService;  var obj:Object = new Object();  myHTTPService.method= &amp;quot;POST&amp;quot;;  myHTTPService.url = &apos;/index.cfm/event/saveNote&apos;;  obj[&apos;notetext&apos;] = htmlText;  obj[&apos;notepreview&apos;] = plainText;  obj[&apos;contactid&apos;] = Contact.ContactId;  myHTTPService.addEventListener(ResultEvent.RESULT,function():void{init()});  myHTTPService.send(obj); }&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Note:&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&amp;nbsp; Notice how we create an object and define the properties we want to send, and then pass that new object in the POST.&lt;/span&gt;&lt;/p&gt;</description><pubDate>Fri, 23 Oct 2009 15:11:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/10/23/Mixing-a-little-Flex-with-my-MachII/</guid><category>ColdFusion,MachII,Web Development,Flex</category></item><item><title>Programmers and Gluteal Atrophy</title><link>http://ajlcom.instantspot.com/blog/2009/10/22/Programmers-and-Gluteal-Atrophy/</link><description>&lt;p&gt;As a man approaching my mid-30&apos;s and having had an office job for right at 10 yrs now, I was very surprised what awaited me the first time I went back to deadlifting and squatting.&amp;nbsp; I was weak!&amp;nbsp; So shocked was I by this that I thought that surely something must be wrong and/or broken inside me.&amp;nbsp; Not only did I feel weaker than I thought I should be, but I was extremely inflexible.&amp;nbsp; Ten years of sitting around was causing me problems.&lt;/p&gt; &lt;p&gt;From wikipedia:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Sitting for long periods can lead to the gluteal muscles atrophying through constant pressure and disuse. This may be associated with (although not necessarily the cause of) lower back pain, difficulty with some movements that naturally require the gluteal muscles, such as rising from the seated position, and climbing stairs.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;About a year and half ago, I started to get myself back into the routine of working out.&amp;nbsp; I mainly focused on running at first (more on that in another post) but eventually realized that I hated running :) and I loved moving heavy weights.&amp;nbsp;&amp;nbsp; It has taken me several months of dedicated deadlifting and squatting to begin to feel like I am approaching a good baseline strength (totalling 1000 lbs between bench/deadlift/squat) and my back is feeling better than it has in probably a decade.&lt;/p&gt; &lt;p&gt;So to all of my fellow programmers out there, get into the gym and deadlift.&amp;nbsp; You will be glad you did!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Thu, 22 Oct 2009 05:40:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/10/22/Programmers-and-Gluteal-Atrophy/</guid><category>Web Development,Fitness</category></item><item><title>Oh yeah, I almost forgot I had this blog!</title><link>http://ajlcom.instantspot.com/blog/2009/10/22/Oh-yeah-I-almost-forgot-I-had-this-blog/</link><description>&lt;p&gt;Twitter + general laziness has effectively killed my creative blogging juices.&amp;nbsp; It is just way to easy to post a link and blurb in a tweet.&amp;nbsp; Now, I don&apos;t think I am ready to abandond Twitter altogether, since it seems to be the way many people are sharing relevant tech info (among other things), but I have decided to stop &amp;quot;tweeting&amp;quot; as much and focus my energies to creating blog content.&lt;/p&gt; &lt;p&gt;That said, I need to update any readers that happen along that I am going to be repurposing this particular blog to be include more of my &amp;quot;life-stuff&amp;quot; in addition to any tech-related content I feel the need to share.&amp;nbsp;&lt;/p&gt; &lt;p&gt;In closing, here is a bunny with a pancake on its head:&lt;/p&gt; &lt;p&gt;&lt;img align=&quot;middle&quot; alt=&quot;&quot; src=&quot;http://imgur.com/1JUcQ.jpg&quot; /&gt;&lt;/p&gt;</description><pubDate>Thu, 22 Oct 2009 05:18:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/10/22/Oh-yeah-I-almost-forgot-I-had-this-blog/</guid><category>Miscellaneous</category></item><item><title>Added Self-Documentation on Scriptalizer.com</title><link>http://ajlcom.instantspot.com/blog/2009/03/05/Added-SelfDocumentation-on-Scriptalizercom/</link><description>&lt;p&gt;Minor update to &lt;a href=&quot;http://www.scriptalizer.com&quot;&gt;Scriptalizer.com&lt;/a&gt; today.&amp;nbsp; I added the option to include a comment block in the generated file.&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;/***************************  File generated by Scriptalizer.com DateTime: Thursday, March 5, 2009 2:24:36 PM CST  File list:  SpryData.js  SpryEffects.js  SpryXML.js  xpath.js *****************************/ &lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;As you can see, this will help you remember what files you &amp;quot;squished&amp;quot; together :)&lt;/p&gt; &lt;p&gt;FYI, saved over 100K on those Spry files.&lt;/p&gt; &lt;h3&gt;Javascript Filesize summary:&lt;/h3&gt; &lt;ul&gt;     &lt;li&gt;Size before: 217.45 KB&lt;/li&gt;     &lt;li&gt;Size after: 113.64 KB&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;103.80KB SAVED!&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Thu, 05 Mar 2009 21:08:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/03/05/Added-SelfDocumentation-on-Scriptalizercom/</guid><category>Web Development,Javascript,CSS</category></item><item><title>Ubuntu - 4 GB Ram on 32 bit machine </title><link>http://ajlcom.instantspot.com/blog/2009/02/18/Ubuntu--4-GB-Ram-on-32-bit-machine-/</link><description>&lt;p&gt;I have a 32bit machine at work, that has 4 gigs of RAM.&amp;nbsp; In order to get my kernel to recognize the correct amount of RAM I have _ALWAYS_ customized and recompiled a new kernel, which obviously removed my ability to upgrade to the latest/greatest from the repositories.&lt;/p&gt; &lt;p&gt;Well, those days are over for me!&amp;nbsp; This week I rebuilt my machine, and opted to use Ubuntu 9.04 Alpha 4 (which by the way is very stable and awesome).&amp;nbsp; And since I had a fresh system, I wanted to look around and see if there was an easier way to handle my RAM challenge.&lt;/p&gt; &lt;p&gt;Look no further.&amp;nbsp; Just install the following packages and then reboot, its just that easy.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;linux-server&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;linux-image-server&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;linux-headers-server&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;linux-restricted-modules-server&lt;/strong&gt; (I actually had to do the one for my kernel linux-restricted-modules-2.6.28-7-server)&lt;/p&gt; &lt;p&gt;The result is a nicely set up, compiz enabled, Gnome environment, but with a whopping 4 gb of memory.&lt;/p&gt; &lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;sudo apt-get install linux-server linux-image-server linux-headers-server linux-restricted-modules-2.6.28-7-server  # # Here is the Mem section from running &apos;top&apos; # Mem:   4040568k total,  3833644k used,   206924k free,    87580k buffers    &lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;</description><pubDate>Wed, 18 Feb 2009 13:48:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/02/18/Ubuntu--4-GB-Ram-on-32-bit-machine-/</guid><category>Linux,Ubuntu</category></item><item><title>Possible javascript file MIME types</title><link>http://ajlcom.instantspot.com/blog/2009/02/11/Possible-javascript-file-MIME-types/</link><description>&lt;p&gt;Here is a list of potential MIME types for uploaded javascript files.&amp;nbsp; If you know of more please comment here.&amp;nbsp;&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;text/ecmascript&lt;/li&gt;     &lt;li&gt;application/ecmascript&lt;/li&gt;     &lt;li&gt;text/jscript&lt;/li&gt;     &lt;li&gt;application/x-js&lt;/li&gt;     &lt;li&gt;application/javascript&lt;/li&gt;     &lt;li&gt;application/x-javascript&lt;/li&gt;     &lt;li&gt;text/javascript&lt;/li&gt;     &lt;li&gt;text/x-js&lt;/li&gt; &lt;/ul&gt;</description><pubDate>Wed, 11 Feb 2009 16:03:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/02/11/Possible-javascript-file-MIME-types/</guid><category>Web Development,Javascript</category></item><item><title>Modfiying Laptop Cooling with i8k (Dell E1505)</title><link>http://ajlcom.instantspot.com/blog/2009/02/09/Modfiying-Laptop-Cooling-with-i8k-Dell-E1505/</link><description>&lt;p&gt;Ever since installing Ubuntu 8.10, I have noticed my laptop operating temps are a little hotter than I like.&amp;nbsp; Not dangerous hot, but definitely in the &amp;quot;uncomfortable to my lap&amp;quot; range.&amp;nbsp; After a little research I found the package &amp;quot;i8kutils&amp;quot;.&lt;/p&gt; &lt;blockquote&gt;&lt;strong&gt;Definition: &lt;/strong&gt;&lt;strong&gt;i8kutils&lt;/strong&gt;: Dell Inspiron and Latitude laptop utilities This is a collection of utilities to control Dell Inspiron and Latitude laptops. It includes programs to turn the fan on and off, to read fan status, CPU temperature, BIOS version and to handle the volume buttons and Fn-keys. The package includes also a small Tk applet, designed to be swallowed in the gnome panel, which monitors the CPU temperature and comtrols automatically the fans accordingly to user defined thresholds. The programs require the kernel module i8k.o which can be compiled from the package sources or found in Linux kernel 2.4.14 and later versions. The kernel module has been tested only on Inspiron 8000 laptops but it should work on any Inspiron and Latitude laptops.&amp;nbsp; (from About.com)&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;WARNING.&amp;nbsp; Be careful with your settings, you might break your stuff!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 1:&amp;nbsp; Install i8kutils&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo apt-get install i8kutils&lt;/code&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 2: Modify /etc/modules&amp;nbsp; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo gedit /etc/modules&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Add this &lt;em&gt;i8k force=1&lt;/em&gt; to the end of the file and save it.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Step 3:&amp;nbsp; Create i8kmon file (it will be a new file)&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo gedit /etc/i8kmon&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Here is the config I used for my laptop:&lt;/p&gt; &lt;p&gt;&lt;code&gt; # Run as daemon, override with --daemon option&lt;br /&gt; set config(daemon)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt; &lt;br /&gt; # Automatic fan control, override with --auto option&lt;br /&gt; set config(auto)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt; &lt;br /&gt; # Report status on stdout, override with --verbose option&lt;br /&gt; set config(verbose)&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt; &lt;br /&gt; # Status check timeout (seconds), override with --timeout option&lt;br /&gt; set config(timeout)&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt; &lt;br /&gt; # Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}&lt;br /&gt; set config(0)&amp;nbsp;&amp;nbsp; {{-1 0}&amp;nbsp; -1&amp;nbsp; 45&amp;nbsp; -1&amp;nbsp; 55}&lt;br /&gt; set config(1)&amp;nbsp;&amp;nbsp; {{-1 1}&amp;nbsp; 45&amp;nbsp; 60&amp;nbsp; 55&amp;nbsp; 70}&lt;br /&gt; set config(3)&amp;nbsp;&amp;nbsp; {{-1 2}&amp;nbsp; 60&amp;nbsp; 128&amp;nbsp; 70&amp;nbsp; 128}&lt;br /&gt; &lt;br /&gt; # end of file &lt;/code&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Once you are ready, you can either restart the system or run the following command:&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo modprobe i8k force=1&lt;/code&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Optional Step 4:&amp;nbsp; Install/config gnome-swallow-applet&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;code&gt;sudo apt-get install gnome-swallow-applet&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Right-click on the toolbar to add the new swallow applet.&amp;nbsp; Then, in the application to watch enter &lt;em&gt;i8kmon&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The gnome-swallow-applet along with i8kmon is pretty neat.&amp;nbsp; It allows you to see the current temp as well as what fan speed is currently running.&amp;nbsp; But it also allows you to force the speed up or down when you want.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt; It wasn&apos;t uncommon for my laptop to work in the 120F+ range, now after running &lt;em&gt;&lt;strong&gt;acpi -f -t&lt;/strong&gt;&amp;nbsp; &lt;/em&gt;in terminal&lt;em&gt;,&lt;/em&gt; you can see the results.&lt;/p&gt; &lt;p&gt;&lt;code&gt;alynch@badonkadonk:~$ acpi -f -t&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Battery 0: Full, 100%&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thermal 0: ok, 99.5 degrees F&lt;/code&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Mon, 09 Feb 2009 06:21:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/02/09/Modfiying-Laptop-Cooling-with-i8k-Dell-E1505/</guid><category>Linux,Technology,Ubuntu</category></item><item><title>Turn your Ubuntu 8.10 into gOS </title><link>http://ajlcom.instantspot.com/blog/2009/02/06/Turn-your-Ubuntu-810-into-gOS-/</link><description>&lt;p&gt;I have to admit, after seeing Dave opting to install gOS recently I got a little envious.&amp;nbsp; So, I decided to turn my compiz/emerald Ubuntu 8.10 into a nice little gOS environment.&amp;nbsp; Turns out it was pretty dang quick and easy.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;First step get the GTK theme.&amp;nbsp;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;After installing gOS 3.0 in a VM I realized that it was a spiffed up Gnome.&amp;nbsp; Good sign!&amp;nbsp; After a couple searches I came up with this theme on deviant art (&lt;a href=&quot;http://mariuxv.deviantart.com/art/gOS-3-0-Theme-99216140&quot;&gt;gOS-3-0-Theme&lt;/a&gt;)&amp;nbsp; Lucky for me, that theme contained the gOS icons, gtk theme, wallpaper, AND an Emerald theme.&amp;nbsp; (nice!)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Next, get google-gadgets&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Google-gadgets is similar to the gadgets you see in Vista, but better since there is a .deb for it :).&amp;nbsp; Go &lt;a href=&quot;http://www.getdeb.net/app/Google+Gadgets&quot;&gt;here&lt;/a&gt; to grab the latest release, download it, and double-click on it to install the deb.&amp;nbsp; If you want to have it start on boot, create a startup entry for it in System &amp;gt; Preferences &amp;gt; Sessions &amp;gt; and execute &lt;strong&gt;ggl-gtk&lt;/strong&gt; or &lt;strong&gt;ggl-gtk -ns&lt;/strong&gt; if you don&apos;t want the sidebar.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Finally, the menu bar.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The lastest release of gOS uses wbar for some reason, but from browsing the source it looks like the code hasn&apos;t been updated since late &apos;07.&amp;nbsp; So, I chose AWN (avant window navigator) instead.&amp;nbsp; The fact that you can install AWN by installing it via &lt;strong&gt;apt-get install avant-window-navigator&lt;/strong&gt; helps. :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Ahhh, don&apos;t you just love Linux!&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img height=&quot;312&quot; width=&quot;500&quot; src=&quot;/userfiles/073006/90/gOS.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Sat, 07 Feb 2009 04:06:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/02/06/Turn-your-Ubuntu-810-into-gOS-/</guid><category>Google,Linux,Ubuntu</category></item><item><title>Looking to hire ColdFusion/Flex Developer (Addison, TX)</title><link>http://ajlcom.instantspot.com/blog/2009/01/29/Looking-to-hire-ColdFusionFlex-Developer-Addison-TX/</link><description>&lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;I am looking to hire a full time (on site only) ColdFusion developer.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;The type of applications we work on range from support of old legacy applications to object oriented ColdFusion business layer with Flex 3 UI.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;Experience working in frameworks is a major plus.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;strong&gt;Industry&lt;/strong&gt;:  Mortgage software&lt;br /&gt; &lt;strong&gt;Location&lt;/strong&gt;: Addison, TX&lt;br /&gt; &lt;strong&gt;Start Date&lt;/strong&gt;: Immediate&lt;br /&gt; &lt;strong&gt;Salary&lt;/strong&gt;: Depends on Experience&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Arial&quot;&gt; &lt;meta http-equiv=&quot;CONTENT-TYPE&quot; content=&quot;text/html; charset=utf-8&quot;&gt; &lt;title&gt;&lt;/title&gt; &lt;meta name=&quot;GENERATOR&quot; content=&quot;OpenOffice.org 2.4  (Linux)&quot;&gt;  &lt;style type=&quot;text/css&quot;&gt;  &lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;     &lt;/meta&gt; &lt;/meta&gt; &lt;/font&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0in;&quot;&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;strong&gt;About FICS&lt;/strong&gt;:&lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;br /&gt; FICS is a small, family owned company (50ish employees).   &lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;Founded in 1983 and headquartered in Dallas, Texas, Financial Industry Computer Systems, Inc.&lt;br /&gt; (FICS&amp;reg;) specializes in providing flexible, comprehensive residential and commercial technology &lt;br /&gt; solutions to the mortgage industry. FICS&apos; solutions are designed around the latest technology, &lt;br /&gt; while incorporating innovative imaging and Web-based capabilities into its full suite of products.&lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;br /&gt; &lt;br /&gt; &lt;strong&gt;&lt;font&gt;Job Function:&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt; &lt;font face=&quot;Arial&quot;&gt;&lt;br /&gt; &lt;/font&gt;&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;Troubleshooting/enhancing/support of existing web applications.&lt;/font&gt;&lt;/li&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;Developing primarily in ColdFusion with more and more Flex/ActionSript as we are moving towards Flex as our main UI technology.&lt;/font&gt;&lt;/li&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;HTML, JavaScript, CSS, minor image manipulation/creation (buttons, etc) &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;strong&gt;Requirements:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;At least 2 years ColdFusion experience&lt;/font&gt;&lt;/li&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;Web  design/layout experience with HTML, CSS and JavaScript&lt;/font&gt;&lt;/li&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;ActionScript/Flex  experience is a plus&lt;/font&gt;&lt;/li&gt;     &lt;li&gt;&lt;font face=&quot;Arial&quot;&gt;A  good troubleshooting ability is necessary.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Please send resumes to aaronjlynch AT gmail DOT com&lt;/p&gt; &lt;p&gt;Thanks!&lt;/p&gt; &lt;p&gt;Aaron&lt;/p&gt;</description><pubDate>Thu, 29 Jan 2009 14:07:00 GMT</pubDate><guid>http://ajlcom.instantspot.com/blog/2009/01/29/Looking-to-hire-ColdFusionFlex-Developer-Addison-TX/</guid><category>ColdFusion,Web Development,Flex</category></item></channel></rss>