<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site Dave Shuck&apos;s InstantSpot</title><link>http://daveshuck.instantspot.com</link><language>en-us</language><copyright>This work is Copyright &#xA9; 2008 by Dave Shuck&apos;s InstantSpot</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Fri, 21 Nov 2008 12:39:08 GMT</pubDate><item><title>Some videos from Adobe Max 2008 in San Francisco</title><link>http://daveshuck.instantspot.com/blog/2008/11/20/Some-videos-from-Adobe-Max-2008-in-San-Francisco</link><description>&lt;ul&gt;     &lt;li&gt;Adobe kicks off Day 1 in San Francisco&amp;nbsp; (keynote highlights and commentary from attendees) &lt;embed src=&quot;http://services.brightcove.com/services/viewer/federated_f8/1596744118&quot; bgcolor=&quot;#FFFFFF&quot; flashvars=&quot;videoId=2479288001&amp;amp;playerId=1596744118&amp;amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;amp;servicesURL=http://services.brightcove.com/services&amp;amp;cdnURL=http://admin.brightcove.com&amp;amp;domain=embed&amp;amp;autoStart=false&amp;amp;&quot; base=&quot;http://admin.brightcove.com&quot; name=&quot;flashObj&quot; seamlesstabbing=&quot;false&quot; type=&quot;application/x-shockwave-flash&quot; swliveconnect=&quot;true&quot; pluginspage=&quot;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&quot; width=&quot;486&quot; height=&quot;412&quot;&gt;&lt;/embed&gt; &lt;/li&gt;     &lt;li&gt;From Adobe Flash Catalyst to Adobe CS4, see highlights from Day 2&amp;nbsp; (keynote highlights and commentary from attendees) &lt;embed src=&quot;http://services.brightcove.com/services/viewer/federated_f8/1596744118&quot; bgcolor=&quot;#FFFFFF&quot; flashvars=&quot;videoId=2573940001&amp;amp;playerId=1596744118&amp;amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;amp;servicesURL=http://services.brightcove.com/services&amp;amp;cdnURL=http://admin.brightcove.com&amp;amp;domain=embed&amp;amp;autoStart=false&amp;amp;&quot; base=&quot;http://admin.brightcove.com&quot; name=&quot;flashObj&quot; seamlesstabbing=&quot;false&quot; type=&quot;application/x-shockwave-flash&quot; swliveconnect=&quot;true&quot; pluginspage=&quot;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&quot; width=&quot;486&quot; height=&quot;412&quot;&gt;&lt;/embed&gt; &lt;/li&gt;     &lt;li&gt;What was your geek-out moment of the day? (Day 1) &lt;embed src=&quot;http://services.brightcove.com/services/viewer/federated_f8/1596744118&quot; bgcolor=&quot;#FFFFFF&quot; flashvars=&quot;videoId=2479302001&amp;amp;playerId=1596744118&amp;amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;amp;servicesURL=http://services.brightcove.com/services&amp;amp;cdnURL=http://admin.brightcove.com&amp;amp;domain=embed&amp;amp;autoStart=false&amp;amp;&quot; base=&quot;http://admin.brightcove.com&quot; name=&quot;flashObj&quot; seamlesstabbing=&quot;false&quot; type=&quot;application/x-shockwave-flash&quot; swliveconnect=&quot;true&quot; pluginspage=&quot;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&quot; width=&quot;486&quot; height=&quot;412&quot;&gt;&lt;/embed&gt; &lt;/li&gt;     &lt;li&gt;What was your geek-out moment of the day (Day 2) &lt;embed src=&quot;http://services.brightcove.com/services/viewer/federated_f8/1596744118&quot; bgcolor=&quot;#FFFFFF&quot; flashvars=&quot;videoId=2572134001&amp;amp;playerId=1596744118&amp;amp;viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&amp;amp;servicesURL=http://services.brightcove.com/services&amp;amp;cdnURL=http://admin.brightcove.com&amp;amp;domain=embed&amp;amp;autoStart=false&amp;amp;&quot; base=&quot;http://admin.brightcove.com&quot; name=&quot;flashObj&quot; seamlesstabbing=&quot;false&quot; type=&quot;application/x-shockwave-flash&quot; swliveconnect=&quot;true&quot; pluginspage=&quot;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&quot; width=&quot;486&quot; height=&quot;412&quot;&gt;&lt;/embed&gt;&lt;/li&gt; &lt;/ul&gt; </description><pubDate>Thu, 20 Nov 2008 21:29:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/11/20/Some-videos-from-Adobe-Max-2008-in-San-Francisco</guid><category>Conferences</category></item><item><title>How to install KDE 4.1 on Ubuntu Hardy 8.01 and my impressions of it</title><link>http://daveshuck.instantspot.com/blog/2008/07/30/How-to-install-KDE-41-on-Ubuntu-Hardy-801-and-my-impressions-of-it</link><description>&lt;p&gt;With yesterday&apos;s announcement of the 4.1.0 release of KDE, my willpower did not allow me to go another day without giving KDE4 another shot.  For a bit of history, I have been using Gnome for several years.  In the past 3 months or so I began using KDE 3.5.9 long enough that I began to enjoy it and realize that it is a nice desktop environment as well.  At this point I really have no favorite between the two and like different things about both of them.&lt;/p&gt; &lt;p&gt;When the first releases of KDE 4 started showing up several months ago, I gave it a shot but was extremely underwhelmed.  While it came with all the warnings from the community that the 4.0 release was nothing more than the introduction of a new platform which developers would expand, some of the basic pieces of it just felt wrong.  I can clearly say that after spending most of an afternoon using it, running my development environment, and doing basic daily functions, 4.1 is light years beyond the first peak I had of it.  I am *really* enjoying it so far and I have a feeling it will be my desktop of choice for the immediate future.&lt;/p&gt; &lt;p&gt;One thing that seems to not be common knowledge to some people is that you can just install it and try it out without affecting your existing desktop environments, be it KDE 3.5.x or Gnome.  For example, my current installation started out as Kubuntu 8.04 Hardy Heron.  Shortly after installing I added Gnome by running:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;sudo apt-get install ubuntu-desktop&lt;/pre&gt;&lt;/div&gt;  Then in the GDM or KDM login window, I had options for either logging in using Gnome or the default KDE.  Thankfully the two coexist without bothering each other, and I can switch back and forth at will.  I took the same approach today when installing KDE 4.1, planning to keep both Gnome and KDE 3.5 as fallback positions or simply to use when I am in the mood.&lt;/p&gt; &lt;p&gt;If this type of setup sounds like something you want to try out, do the following.  First, add the following repo into your /etc/apt/sources.list file:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;deb http://ppa.launchpad.net/kubuntu-members-kde4/ubuntu hardy main&lt;/pre&gt;&lt;/div&gt;  After adding that you will want to update your repos by running:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;sudo apt-get update&lt;/pre&gt;&lt;/div&gt;  Then to install KDE 4.1 you will run the following: &lt;div class=&quot;code&quot; &gt;&lt;pre&gt;sudo apt-get install kubuntu-kde4-desktop kdeplasma-addons amarok-kde4 and kontact-kde4 kate-kde4 kmail-kde4 &lt;/pre&gt;&lt;/div&gt;  Notice that I am also updating several applications, such as kate, amaroK, kmail, and kontact.  Kdeplasma-addons also brings you some extra goodies beyond the base install.  During that installation you will be prompted to choose your login manager.  KDE4 brings you yet another option beyond GDM and KDM.  I chose it and it is a really nice clean look.  I recommend giving it a look.  Once the installation completes, restart X or reboot and have fun!&lt;/p&gt;</description><pubDate>Thu, 31 Jul 2008 03:02:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/07/30/How-to-install-KDE-41-on-Ubuntu-Hardy-801-and-my-impressions-of-it</guid><category>Ubuntu,Linux</category></item><item><title>Dependent objects made even easier in Mach-II 1.6</title><link>http://daveshuck.instantspot.com/blog/2008/07/23/Dependent-objects-made-even-easier-in-MachII-16</link><description>&lt;p&gt;In case you were wondering if Mach-II could get any cooler, the answer is *yes*!&lt;br /&gt;&lt;br /&gt;For a few versions now, Mach-II has added the ability to inject ColdSpring beans in to your framework components (listeners, plugins, and filters) by use the parameter resolveMachIIDependencies when instantiating the ColdSpring plugin or property. &lt;br /&gt;&lt;br /&gt;Take this example... Say that I have a LoginListener.cfc that is dependent on a ColdSpring bean LoginService that lives in our /com directory.  I would first define that bean in our ColdSpring config like this: [codeblock 178]&lt;br /&gt;&lt;br /&gt;Then, in our LoginListener we would need to create a setter that matched the Bean that we have defined in ColdSpring like so: [codeblock 179]&lt;br /&gt;&lt;br /&gt;By taking these two actions, and insuring that your LoginService as an init() method as a constructor, when you initialize your application, &lt;strong&gt;variables.LoginService&lt;/strong&gt; will automatically be available to you as an instance of your LoginService bean.  That alone was pretty dang cool.  &lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;But wait there&apos;s more!&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;With Mach-II 1.6, this process has become even less cumbersome.  In some CFML tags, you can add unexpected attributes without throwing exceptions and are in essence ignored to offer a better solution for managing dependent objects.  By default, Mach-II will look for a &quot;depends&quot; attribute in your &lt;cfcomponent&gt; tags, which can contain a comma separated list of your dependencies.  For our simple LoginListener, our tag would look like this:&lt;/cfcomponent&gt; [codeblock 180]&lt;br /&gt;&lt;br /&gt;Now, instead of repetitive getters/setters, just by merely having that attribute, our LoginListener will now contain the method &lt;strong&gt;getLoginService()&lt;/strong&gt; which will return an instance of the LoginService.  That is just ridiculously easy!&lt;br /&gt;&lt;br /&gt;As I said, the attribute actually accepts a comma separated list, so as we add dependencies, our &lt;cfcomponent&gt; tag might look more like this:&lt;/cfcomponent&gt; [codeblock 181]&lt;br /&gt;&lt;br /&gt;If you have made it this far, you have probably deducted that we will now have access to &lt;strong&gt;getLoginService()&lt;/strong&gt;, &lt;strong&gt;getUserService()&lt;/strong&gt;, and &lt;strong&gt;getLoggingService()&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;As I mentioned earlier, Mach-II will look for the attribute &quot;depends&quot; by default, but you can customize it to use other attribute names if you wish. You can find that information and &lt;a href=&quot;http://greatbiztoolsllc-trac.cvsdude.com/mach-ii/wiki/FAQUsingNewColdspringProperty&quot;&gt;more on the Mach-II wiki&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;</description><pubDate>Wed, 23 Jul 2008 14:39:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/07/23/Dependent-objects-made-even-easier-in-MachII-16</guid><category>ColdFusion</category></item><item><title>Related checkbox validation with JQuery</title><link>http://daveshuck.instantspot.com/blog/2008/07/16/Related-checkbox-validation-with-JQuery</link><description>&lt;p&gt;I was given a problem yesterday where I needed to do the following client-side validation.  If a user selects a checkbox that they wish to enable credit card transactions, I need to display a panel of specific credit card companies and they need to select at least one before submitting.&lt;/p&gt; &lt;p&gt;If you think about writing the JS to do this without a library it is a somewhat lengthy task.  In essence, you would need to do some type of an onsubmit function on your form, check the value of the key checkbox.  If it was checked, check the value of each credit card checkbox to see if the user had selected one of the children.  After writing this in JQuery, I thought it might be worth demonstrating what an easy task this is.&lt;/p&gt; &lt;p&gt;Let&apos;s start with the specific part of my form that has my checkboxes:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;label for=&amp;quot;RequireCCInfo&amp;quot;&amp;gt;Require Credit Card Information?&amp;lt;/label&amp;gt; &amp;lt;input name=&amp;quot;RequireCCInfo&amp;quot; id=&amp;quot;RequireCCInfo&amp;quot; value=&amp;quot;1&amp;quot; type=&amp;quot;checkbox&amp;quot;&amp;gt; &amp;lt;div id=&amp;quot;CreditCardCompanyPanel&amp;quot;&amp;gt;  &amp;lt;div&amp;gt;   &amp;lt;input id=&amp;quot;ccAmex&amp;quot; class=&amp;quot;ccCheckBox&amp;quot; value=&amp;quot;1&amp;quot; type=&amp;quot;checkbox&amp;quot;&amp;gt;   &amp;lt;label for=&amp;quot;ccAmex&amp;quot;&amp;gt;American Express&amp;lt;/label&amp;gt;  &amp;lt;/div&amp;gt;  &amp;lt;div&amp;gt;   &amp;lt;input id=&amp;quot;ccVisa&amp;quot; class=&amp;quot;ccCheckBox&amp;quot; value=&amp;quot;1&amp;quot; type=&amp;quot;checkbox&amp;quot;&amp;gt;   &amp;lt;label for=&amp;quot;ccVisa&amp;quot;&amp;gt;Visa&amp;lt;/label&amp;gt;  &amp;lt;/div&amp;gt;  &amp;lt;div&amp;gt;   &amp;lt;input id=&amp;quot;ccDiscover&amp;quot; class=&amp;quot;ccCheckBox&amp;quot; value=&amp;quot;1&amp;quot; type=&amp;quot;checkbox&amp;quot;&amp;gt;   &amp;lt;label for=&amp;quot;ccDiscover&amp;quot;&amp;gt;Discover&amp;lt;/label&amp;gt;  &amp;lt;/div&amp;gt;  &amp;lt;div&amp;gt;   &amp;lt;input id=&amp;quot;ccMc&amp;quot; class=&amp;quot;ccCheckBox&amp;quot; value=&amp;quot;1&amp;quot; type=&amp;quot;checkbox&amp;quot;&amp;gt;   &amp;lt;label for=&amp;quot;ccMc&amp;quot;&amp;gt;Master Card&amp;lt;/label&amp;gt;        &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;There is nothing too notable in all of that other than the fact that you should notice that I have added a class &amp;quot;ccCheckBox&amp;quot; to all of my dependent checkboxes.  I will explain more on that in a bit, but I wanted to point out that it is there.  You will also notice that I am not doing anything in the way of hiding the &amp;quot;CreditCardCompanyPanel&amp;quot; div.  We need to determine at request time whether that will be hidden or not based on whether the &amp;quot;RequireCCInfo&amp;quot; checkbox is checked.&lt;/p&gt; &lt;p&gt;Now, here is the fun part...  I am including the JS that I use for this task below:&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;  (document).ready(function(){  $(&amp;quot;#RequireCCInfo&amp;quot;).change(function(){   toggleCreditCardCompanyPanel();  });    function toggleCreditCardCompanyPanel() {   if ($(&amp;quot;#RequireCCInfo&amp;quot;).attr(&amp;quot;checked&amp;quot;) == true)  $(&amp;quot;#CreditCardCompanyPanel&amp;quot;).show();    else $(&amp;quot;#CreditCardCompanyPanel&amp;quot;).hide();  }  $(&amp;quot;#SaveButton&amp;quot;).click(function(){   var pass = false;   if ($(&amp;quot;#RequireCCInfo&amp;quot;).attr(&amp;quot;checked&amp;quot;) == true){    $(&amp;quot;.ccCheckBox&amp;quot;).each(function() {                   if ($(this).attr(&amp;quot;checked&amp;quot;) == true) pass = true;               });   }   else pass = true;   if (pass) $(&amp;quot;#frmMyForm&amp;quot;).submit();   else alert(&apos;You must select at least on credit card company if &amp;quot;Require Credit Card Information&amp;quot; is checked.&apos;);  });   toggleCreditCardCompanyPanel(); }); &amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;First, by using the $(document).ready() function we are telling JQuery to run this JS once the DOM has been completely loaded.  Let&apos;s look at each section within that ready() block...&lt;/p&gt; &lt;p&gt;The first thing you will see is the $(&amp;quot;#RequireCCInfo&amp;quot;).change() method.  JQuery gives us the concept of binding a listener to an element.  For our example, this listener says that anytime that an element with an ID of &amp;quot;RequireCCInfo&amp;quot; is changed, that we will run the code in its function().  You will see that anytime our &amp;quot;RequireCCInfo&amp;quot; checkbox is changed we are going to run a function called toggleCreditCardCompanyPanel().   As you can see we have that method defined immediately after our &amp;quot;RequireCCInfo&amp;quot; checkbox.&lt;/p&gt; &lt;p&gt;In our toggleCreditCardCompanyPanel() method, we are making the decision as to whether or not our &amp;quot;CreditCardCompanyPanel&amp;quot; will be displayed based on whether our user has decided to check the box labeled &amp;quot;Require Credit Card Information?&amp;quot;.   By using the JQuery selectors we are in essence saying:  If a checkbox with an ID of &amp;quot;RequireCCInfo&amp;quot; is checked, display an element with the ID &amp;quot;CreditCardCompanyPanel&amp;quot;.  Otherwise we will hide this element.&lt;/p&gt; &lt;p&gt;Next comes our validation on form submit... and pretty cool stuff!&lt;/p&gt; &lt;p&gt;Basically I have added a listener which is bound to our submit button with the ID of &amp;quot;SaveButton&amp;quot; which will submit our form &amp;quot;frmMyForm&amp;quot;.   Anytime that this button is clicked, we will run the code in the function() block.   We start this function by setting a value pass=false.  We will use this variable to determine whether our form has passed validation.  Next we get just a small taste of the magic of JQuery selectors.    First, as we did in the toggleCreditCardCompanyPanel() function, we are determining if the element with the ID of &amp;quot;RequireCCInfo&amp;quot; is checked.  If so, by using the each() function, we are going to loop through all elements on the page with the class &amp;quot;ccCheckBox&amp;quot; (remember that from above?).  In each iteration of the loop we are going to determine if the element has been checked.  If so, we are going to set pass=true since we know that our validation has passed.&lt;/p&gt; &lt;p&gt;Lastly, now that we have determined that our form is either going to pass/fail, we take the appropriate action.  If pass==fail, we are simply going to alert a message telling the user that if they are going to enable credit cards that they have to choose at least one credit card company.  Otherwise, we are going to call the submit() method on our form.&lt;/p&gt; &lt;p&gt;I almost took the time to write out the equivalent of this in POJS (plain old JavaScript) to show how much easier life is with JQuery, but I realized I didn&apos;t have the time, patience, or will.  JQuery has spoiled me!&lt;/p&gt;</description><pubDate>Wed, 16 Jul 2008 14:41:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/07/16/Related-checkbox-validation-with-JQuery</guid><category>ColdFusion,Javascript,Tips and Tricks</category></item><item><title>Sorry for the RSS Feed mishap!</title><link>http://daveshuck.instantspot.com/blog/2008/07/03/Sorry-for-the-RSS-Feed-mishap</link><description>OK, so the sleep-deprived minds behind InstantSpot hit the wrong switch this morning, and suddenly on AXNA, coldfusionbloggers.com, and God knows what else, I was being credited with a lot of blog entries that I never wrote.  The issue was resolved almost immediately, however, the posts are probably going to continue to show up on the aggregators until they age off.  Sorry for the feed spam everyone!&lt;br /&gt; &lt;br /&gt; EDIT:&lt;br /&gt; Here is a little more detail for those that were asking -&lt;br /&gt; &lt;br /&gt; Bottom line... Aaron and I just completely goofed in a pre-coffee misstep this morning.  In our logs we saw this continual 404 on a feed url that doesn&apos;t exist in our system.  We thought &quot;Hey, let&apos;s just point it to the main RSS and have it at least do *something*!  Turns out this was a feed url from 3+ years ago when my blog used BlogFusion.  So suddenly it started resolving for both AXNA and cfbloggers. As soon as we saw what happened we killed it, but it was too late unfortunately. &lt;br /&gt;</description><pubDate>Thu, 03 Jul 2008 16:06:52 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/07/03/Sorry-for-the-RSS-Feed-mishap</guid><category>ColdFusion,Blog</category></item><item><title>Wow - Flash 10 for Windows, Mac... and LINUX?!</title><link>http://daveshuck.instantspot.com/blog/2008/07/03/Wow--Flash-10-for-Windows-Mac-and-LINUX</link><description>Most of you may not realize this, but historically Linux support for Flash has been somewhat of an afterthought by Adobe.  While you everyone else was using Flash 8, we were using Flash 7.   In fact, they just skipped that version entirely for Linux.  When Flash 9 beta came out, they assured us that Linux was in the works.  Eventually we did get Flash 9, but well after the rest of the world.  &lt;br /&gt;&lt;br /&gt;That brings me to this morning when opening up the &lt;a href=&quot;http://feeds.adobe.com/&quot;&gt;aggregators&lt;/a&gt; and &lt;a href=&quot;http://digg.com/linux_unix/Flash_on_Linux_no_longer_breaks_webpages&quot;&gt;Digg&lt;/a&gt; (go digg it!),  I find that they have released a beta for Flash 10 (Astro) for all 3 platforms concurrently!  I find this pretty exciting, and want to thank the Adobe Flash development crew for keeping us current!&lt;br /&gt;&lt;br /&gt;For all the information about updatess/features on this version, check out the &lt;a href=&quot;http://blogs.adobe.com/penguin.swf/2008/07/turkish_localization_also_wmod.html&quot;&gt;Penguin.SWF blog&lt;/a&gt; and their announcement.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Thu, 03 Jul 2008 12:58:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/07/03/Wow--Flash-10-for-Windows-Mac-and-LINUX</guid><category>Flash</category></item><item><title>Adobe&apos;s actions speak loudly about their lack of support for ColdFusion</title><link>http://daveshuck.instantspot.com/blog/2008/06/18/Adobes-actions-speak-loudly-about-their-lack-of-support-for-ColdFusion</link><description>I keep hearing from Adobe that it stands behind ColdFusion today and from here on out, and by all accounts if you based your perception on the continual development of the product you would think that it is definitely a part of their focus.  We are already hearing CF9 features for goodness sake!&lt;br /&gt;&lt;br /&gt;If this is true, why is it that the Adobe marketing seems so out of step with this message?  &lt;br /&gt;&lt;br /&gt;When I attended the Flex 3 kickoff meeting for the &lt;a href=&quot;http://www.d-flex.org&quot;&gt;Dallas Flex User Group&lt;/a&gt;, they used an Adobe presentation that went into some detail about talked about server-side language interoperability with Flex, explicitly citing .Net, Java, PHP, yet they apparently didn&apos;t feel that their own product ColdFusion made the cut.  Given how gracefully the two work together, coupled with the fact that it is &lt;i&gt;their&lt;/i&gt; product, how can that really be excused?  Actually as I look back at that post, &lt;a href=&quot;http://daveshuck.instantspot.com/blog/2008/02/01/My-notes-on-Adobes-Flex-3-presentation-DFlex-UG-kickoff-meeting&quot;&gt;I pondered that question here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This past week someone posted the following image to our &lt;a href=&quot;http://dfwcfug.instantspot.com/page/Email-List&quot;&gt;ColdFusion User Group list&lt;/a&gt; asking why Adobe would &lt;i&gt;so&lt;/i&gt; obviously exclude ColdFusion when showing showing various languages talking to Flex and posted this image from the Adobe site.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;b&gt;***EDIT: Adobe has updated the image below since the time of this blog posting&lt;/b&gt;***&lt;/font&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://www.adobe.com/devnet/images/248x148/learn_adobe_com.gif&quot; /&gt;&lt;br /&gt;&lt;br /&gt;I mean... come ON!  That seems like such a glaring and purposeful ommission.  &lt;br /&gt;&lt;br /&gt;Earlier this year, I received the shirt below from Adobe.  It irked me when I got it, but after seeing this theme of publicly dismissing ColdFusion over and over, I took a picture of it last night for this post.  Here is the &quot;entire&quot; Adobe family as seen through their eyes.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://farm4.static.flickr.com/3062/2589479968_f6fdabf9bb.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Adobe, I truly want to believe that you support ColdFusion and I repeatedly try to convince my my employers and clients that you are, but over and over, you continually weaken my case.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Wed, 18 Jun 2008 17:09:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/06/18/Adobes-actions-speak-loudly-about-their-lack-of-support-for-ColdFusion</guid><category>ColdFusion</category></item><item><title>Safe Family Browsing - Glubble revisited</title><link>http://daveshuck.instantspot.com/blog/2008/06/10/Safe-Family-Browsing--Glubble-revisited</link><description>Last December I &lt;a href=&quot;http://daveshuck.instantspot.com/blog/2007/12/17/Kid-safe-browsing-with-Glubble&quot;&gt;made a blog post&lt;/a&gt; about an alpha release product for Firefox called &lt;a href=&quot;http://www.glubble.com&quot;&gt;Glubble&lt;/a&gt;.  Considering the fact that they are in full-production mode, and it is now a regular part of the way that my family uses the internet, I thought it was time to shower a little praise on a really cool product!  At the time of my first post, Glubble was in its infancy, and on my first pass I found it to be completely unusable, although conceptually I thought it was a great idea.  Upon reading my blog post, Ian Hayward - founder of Glubble and contributer to the Mozilla project - contacted me and followed up to make sure I was aware when their 1.0 release hit the streets.  The enthusiasm he displayed and the kind of personal attention he showed indicated that I should at minimum give it another look.   I am really glad I did.&lt;br /&gt;&lt;br /&gt;First, let me give a disclaimer.  Glubble is not a solution that solves all problems.  If someone is knowledgable and persistant, there are certainly workarounds to the restrictions that it provides.  If you have a teenager that is trying to circumvent your processes, this is likely not the tool for the job, and you should look at a solution a little deeper such as firewall restrictions.   However, if you have a child under the age of 12 and would like an easy to use and reasonably safe solution for allowing your child to be on the internet, I recommend Glubble.  Rather than taking the approach of blocking specific keywords or sites, Glubble takes the approach that all content is blocked and that you can then allow your children to see specifically what you dictate.  In fact, you can actually allow a site access to one child and not another if you desire. &lt;br /&gt;&lt;br /&gt;Glubble installs as a plugin to Firefox.  As a Linux guy, I honestly have no clue if there is any alternative for Internet Explorer users, but you shouldn&apos;t be using it anyway. :)   When the plugin is installed and the browser is run for the first time, it prompts you through either logging in to an existing Glubble account or creating a new one.  When you create an account, you become the proud owner of your very own &quot;Glubble&quot;.  Think of this as a specific hub that your family is attached to.  As an owner you can add users, which by default are bound to the restrictions you set, but can also be promoted to manage your Glubble.  &lt;br /&gt;&lt;br /&gt;When you visit your Glubble home, you will see if your kids are currently online, where they last visited, and more.  On the right there is a &quot;wall&quot; (think Facebook) that allows you to leave messages back and forth, and will display requests and approval/declines for new sites.  &lt;br /&gt;&lt;br /&gt;Here is a shot of my home (click for full size)&lt;br /&gt;&lt;a href=&quot;http://farm4.static.flickr.com/3180/2567375529_cc30492a77_o.png&quot;&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://farm4.static.flickr.com/3180/2567375529_bdfd9b9ea1.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Glubble comes pre-setup with scores of children friendly sites which you can granularly enable/disable.    &lt;br /&gt;&lt;br /&gt;Here is a screenshot of the default sites that are included out of the gate (click for full size)&lt;br /&gt;&lt;a href=&quot;http://farm4.static.flickr.com/3169/2567347743_96feb77156_o.png&quot;&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://farm4.static.flickr.com/3169/2567347743_fd9cf3bc85.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What&apos;s even cooler, is that within the built-in sites, you can even have further granular control of specific elements within them if you so desire.  Take a look at this. (click for full size)&lt;br /&gt;&lt;a href=&quot;http://farm3.static.flickr.com/2051/2567375389_be2795799d_o.png&quot;&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://farm3.static.flickr.com/2051/2567375389_666eb5a043.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pretty cool huh?  As you can see I can allow or remove any particular section.  As my children come across a new site that is not approved, they are presented with a screen that explains that the site is not yet allowed and then gives them the option to request it from one of the approved &quot;managers&quot; (aka Mommy and Daddy).   Meanwhile, while I am at work and have a browser open, a small window displays at the top of my browser telling me that Hudson or Parker have requested access to whatever site they hit.  I can then approve it remotely, which instantlly makes it available for them.  Additionally, if I come across a site that I would like them to see and have access to, I can add it from my end.  In the two screenshots below, I will add a site I created about my &lt;a href=&quot;http://www.hikethecanyon.org&quot;&gt;Grand Canyon hike with my dad&lt;/a&gt;.&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://farm4.static.flickr.com/3026/2568254670_6136fbb1d5_o.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I click on the +Add button, I am prompted with this....&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://farm4.static.flickr.com/3045/2567431655_395427cb05.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see, you can quickly build a nice and manageable library of safe websites for your children.  Another testimony is the fact that my kids actually enjoy using it.  When I recently put a new Linux distro on my son&apos;s computer, one of his requests was for me to install Glubble.  To him, it is an easy way to access the content he likes.  To me, I like the content that he can access!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Tue, 10 Jun 2008 16:59:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/06/10/Safe-Family-Browsing--Glubble-revisited</guid><category>Browsers,Family</category></item><item><title>Firebug with Firefox 3 in Ubuntu Hardy Heron</title><link>http://daveshuck.instantspot.com/blog/2008/05/06/Firebug-with-Firefox-3-in-Ubuntu-Hardy-Heron</link><description>Several months ago when I first tried out Firefox 3, I found that I couldn&apos;t get Firebug to work.  At that time, I was still on 7.10 (Gutsy) and just rolled back to Firefox 2 and carried on about my business.  Once I upgraded to 8.04 (Hardy), where its default Firefox is FF3, I tried again.  I still had failures and no matter which &quot;fix&quot; I came across, I still was never able to open Firebug in a panel, but only in a separate window.  &lt;br /&gt;&lt;br /&gt;That all changed this morning!  I was looking through packages and discovered that there is a Firebug package in the Ubuntu repos.  I promptly uninstalled Firebug from the extensions settings in the Firefox and closed my browser.  I went to terminal and typed:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ sudo apt-get install firebug&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;... I then opened up Firefox 3 and BAM!  It works exactly like it should.  I have no idea what the difference is in this version of Firebug, but for whatever reason, my problems are solved.</description><pubDate>Tue, 06 May 2008 14:42:06 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/05/06/Firebug-with-Firefox-3-in-Ubuntu-Hardy-Heron</guid><category>Browsers,Ubuntu</category></item><item><title>CF8 error after upgrading to Ubuntu 8.10 Hardy Heron -   libstdc++.so.5</title><link>http://daveshuck.instantspot.com/blog/2008/05/01/CF8-error-after-upgrading-to-Ubuntu-810-Hardy-Heron----libstdcso5</link><description>This afternoon I did an upgrade from Gutsy to Hardy on my main development environment.  I experienced *almost* no disruption to my system, with one exception (so far!).  When I instantiated a ColdFusion 8 application which instantiates a webservice onApplicationStart, I received the following exception:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;                                  jikes: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory&lt;/b&gt;      &lt;br /&gt;&lt;br /&gt;Jikes!  Well fortunately the fix is quite simple.  Go to a terminal and install libstdc++5 like so:&lt;br /&gt;&lt;code&gt;$ sudo apt-get install libstdc++5&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Restart your application and carry on!  I am not sure what changed between the distros, but apparently the libraries that ColdFusion uses for invoking webservices depend on this package.&lt;br /&gt;</description><pubDate>Thu, 01 May 2008 23:07:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/05/01/CF8-error-after-upgrading-to-Ubuntu-810-Hardy-Heron----libstdcso5</guid><category>ColdFusion,Ubuntu,Linux</category></item><item><title>Strange component path behavior with event gateway</title><link>http://daveshuck.instantspot.com/blog/2008/04/22/Strange-component-path-behavior-with-event-gateway</link><description>&lt;p&gt;I am working on a client project using an SMS event gateway using CF8.  I had written out a proxy API to allow the SMS gateway to talk to the core application using a shared data model that is strapped together using ColdSpring.   I had written a test harness cfm template during development and just kind of assumed that I could instantiate this proxy component from my event gateway without issue and carry on about my business.  For some reason, however, I am seeing some behavior that I wasn&apos;t expecting.  I have resolved this by way of using a ColdSpring mapping in the CF Admin.  However, I am still curious why the following takes place. &lt;br /&gt; &lt;br /&gt; Here is the general picture:&lt;br /&gt; &lt;br /&gt; I have an app that sits in /www/myclientapp/www&lt;br /&gt; &lt;br /&gt; The proxy components and event gateway component sit in /www/myclientapp/api/proxy and there is an Application.cfc in the &amp;quot;api&amp;quot; directory.  I have a coldspring directory in both /www/myclientapp/www/coldspring and /www/myclientapp/api/proxy/coldspring.&lt;br /&gt; &lt;br /&gt; When I run a testharness file in /www/myclientapp/api/proxy/testharness.cfm, I can instantiate the data model properly and there are no issues.  However, when I talk to the event gateway component that sits in the ..../proxy directory, I get errors instantiating ColdSpring in the Application.cfc stating &lt;br /&gt; &lt;em&gt;&amp;quot;&lt;font size=&quot;3&quot;&gt;Could not find the ColdFusion Component or Interface coldspring.beans.DefaultXmlBeanFactory. --- path: /www/myclientapp/api/proxy/coldspring/beans/DefaultXmlBeanFactory.cfc&amp;quot;&lt;/font&gt;.&lt;br /&gt; &lt;/em&gt;&lt;br /&gt; So, digging into this a bit further I did a FileExists() test on that cfc and it returns true.  HUH?  &lt;br /&gt; &lt;br /&gt; Here is my question.  How can the following two statements be true:&lt;br /&gt; &lt;br /&gt; 1)  FileExists(ExpandPath(&amp;quot;coldspring/beans/DefaultXmlBeanFactory.cfc&amp;quot;)) returns &amp;quot;true&amp;quot;.&lt;br /&gt; &lt;br /&gt; 2)  CreateObject(&amp;quot;component&amp;quot;,&amp;quot;coldspring.beans.DefaultXmlBeanFactory&amp;quot;) errors out with the error you see above.&lt;br /&gt; &lt;br /&gt; Hopefully someone smarter than me can shed some light on this problem!&lt;/p&gt;</description><pubDate>Tue, 22 Apr 2008 13:41:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/04/22/Strange-component-path-behavior-with-event-gateway</guid><category>ColdFusion</category></item><item><title>ColdFusion in odd places - using the directory watcher on my desktop</title><link>http://daveshuck.instantspot.com/blog/2008/04/21/ColdFusion-in-odd-places--using-the-directory-watcher-on-my-desktop</link><description>&lt;p&gt;Since recently installling yet another distro on my laptop, I was unable to get the FTP functionality of my webcam software (Camorama) to work properly.  The program will save snapshots locally, but bombs on transfer.   Rather than troubleshoot it to death, I decided to whip out a quick and dirty ColdFusion directory watcher event gateway and have it watch for updated images, and then push them to my webserver via FTP.&lt;/p&gt; &lt;p&gt;For anyone interested in this non-earth shattering bit of code, here it is.  First I created a config file:&lt;/p&gt; &lt;p&gt;WebcamWatcher.cfg&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;# The directory we want to watch.  directory=/home/dshuck/Webcam_Pictures  # Do we want to recurse the directories? recurse=no  # miliseconds between checks interval=6000  # The comma separated list of extensions to match. extensions=*  # component method for change events changeFunction=onChange  # component method for add events addFunction=onAdd  # no delete events for now deleteFunction= &lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;Now to create the methods in our WebcamWatcher.cfc.  In short, either a changed file or an added file will trigger the putImage function which first creates the FTP connection, changes directories to my webcam directory, then pushes the file to the server.  Here is the code:&lt;/p&gt; &lt;p&gt;WebcamWatcher.cfc&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfcomponent output=&amp;quot;false&amp;quot;&amp;gt;  &amp;lt;cffunction name=&amp;quot;onAdd&amp;quot; output=&amp;quot;false&amp;quot;&amp;gt;   &amp;lt;cfargument name=&amp;quot;CFEvent&amp;quot; type=&amp;quot;struct&amp;quot; required=&amp;quot;yes&amp;quot;&amp;gt;   &amp;lt;cfset var Data=CFEvent.data /&amp;gt;     &amp;lt;cflog file=&amp;quot;DirectoryWatcher&amp;quot; application=&amp;quot;No&amp;quot;         text=&amp;quot; ACTION: #data.type#;  FILE: #data.filename#;  calling putImage()&amp;quot; /&amp;gt;   &amp;lt;cfset putImage() /&amp;gt;  &amp;lt;/cffunction&amp;gt;     &amp;lt;cffunction name=&amp;quot;onChange&amp;quot; output=&amp;quot;false&amp;quot;&amp;gt;     &amp;lt;cfargument name=&amp;quot;CFEvent&amp;quot; type=&amp;quot;struct&amp;quot; required=&amp;quot;yes&amp;quot;&amp;gt;     &amp;lt;cfset var data=CFEvent.data&amp;gt;     &amp;lt;cflog file=&amp;quot;DirectoryWatcher&amp;quot; application=&amp;quot;No&amp;quot;         text=&amp;quot; ACTION: #data.type#;  FILE: #data.filename#; TIME: #timeFormat(data.lastmodified)# calling putImage();&amp;quot; /&amp;gt;   &amp;lt;cfset putImage() /&amp;gt;  &amp;lt;/cffunction&amp;gt;   &amp;lt;cffunction name=&amp;quot;putImage&amp;quot; access=&amp;quot;private&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;void&amp;quot;&amp;gt;   &amp;lt;cfftp action = &amp;quot;open&amp;quot;       username = &amp;quot;joeuser&amp;quot;      connection = &amp;quot;MyConnection&amp;quot;       password = &amp;quot;mycoolpassword&amp;quot;       server = &amp;quot;www.mywebserver.com&amp;quot;       stopOnError = &amp;quot;true&amp;quot; /&amp;gt;      &amp;lt;cfif cfftp.Succeeded&amp;gt;    &amp;lt;cfftp      connection=&amp;quot;MyConnection&amp;quot;      action=&amp;quot;changedir&amp;quot;      directory=&amp;quot;htdocs/mywebcamdirectory&amp;quot; /&amp;gt;        &amp;lt;cfif cfftp.Succeeded&amp;gt;     &amp;lt;cfftp       connection = &amp;quot;MyConnection&amp;quot;      action = &amp;quot;putFile&amp;quot;       name = &amp;quot;uploadFile&amp;quot;       transferMode = &amp;quot;binary&amp;quot;       localFile = &amp;quot;/home/dshuck/Webcam_Pictures/webcam.jpeg&amp;quot;       remoteFile = &amp;quot;DaveWebcam.jpg&amp;quot; /&amp;gt;    &amp;lt;/cfif&amp;gt;     &amp;lt;/cfif&amp;gt;   &amp;lt;cflog file=&amp;quot;DirectoryWatcher&amp;quot; application=&amp;quot;false&amp;quot; text=&amp;quot;file push to webserver...#cfftp.Succeeded#&amp;quot; /&amp;gt;  &amp;lt;/cffunction&amp;gt; &amp;lt;/cfcomponent&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;So, now the internet can yet again be graced with my &amp;quot;almost live&amp;quot; presence.   I can almost hear the selective sigh of relief.&lt;/p&gt; &lt;p&gt;I have to consider this to be a somewhat odd place for ColdFusion and it got me thinking... What kinds of odd places do you or have you used ColdFusion?&lt;/p&gt;</description><pubDate>Mon, 21 Apr 2008 05:02:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/04/21/ColdFusion-in-odd-places--using-the-directory-watcher-on-my-desktop</guid><category>ColdFusion,InstantSpot,Tips and Tricks</category></item><item><title>Adding spell checking to Evolution mail client</title><link>http://daveshuck.instantspot.com/blog/2008/04/01/Adding-spell-checking-to-Evolution-mail-client</link><description>&lt;p&gt;I am not sure why I have never pusued this until today, but I for some reason have never spent the time to figure out why I didn&apos;t have spell checking in my Evolution mail client. I knew that Evolution used the packages aspell and gnome-spell, which I already had installed, so why wasn&apos;t it working?&lt;/p&gt; &lt;p&gt;When I went into my composer settings in the Evolution preferences, I saw a big empty box that was the list of dictionaries that Evolution was using.&amp;nbsp; You would think there would be some method of adding them from there, but unfortunately it isn&apos;t quite that obvious. To add the English dictionary I had to install the package aspell-en. Once I added this I reopened Evolution and Bamn!&lt;/p&gt; &lt;p&gt;There it is. For the copy/paste inclined, try the following:&lt;/p&gt; &lt;p&gt;&lt;code&gt;#sudo apt-get install aspell gnome-spell aspell-en&lt;/code&gt;&lt;/p&gt;</description><pubDate>Tue, 01 Apr 2008 13:41:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/04/01/Adding-spell-checking-to-Evolution-mail-client</guid><category>Ubuntu,Tips and Tricks</category></item><item><title>Gone cruising... see you on the 9th!</title><link>http://daveshuck.instantspot.com/blog/2008/03/01/Gone-cruising-see-you-on-the-9th</link><description>The bags are packed and we are heading to Galveston tomorrow morning at 5am to board the Carnival Conquest.  We will be hitting Jamaica on Wednesday, Grand Cayman on Thursday and Cozumel on Friday, returning Sunday the 9th.</description><pubDate>Sun, 02 Mar 2008 05:47:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/03/01/Gone-cruising-see-you-on-the-9th</guid><category>General</category></item><item><title>We&apos;re on the ColdFusion Weekly!</title><link>http://daveshuck.instantspot.com/blog/2008/02/28/Were-on-the-ColdFusion-Weekly</link><description>&lt;p&gt;The latest version of the &lt;a href=&quot;http://www.coldfusionweekly.com/&quot;&gt;ColdFusion Weekly&lt;/a&gt; podcast was released yesterday.&amp;nbsp; &lt;a href=&quot;http://www.mattwoodward.com/blog/&quot;&gt;Matt&lt;/a&gt; and &lt;a href=&quot;http://blog.maestropublishing.com/&quot;&gt;Peter&lt;/a&gt; were kind enough to have &lt;a href=&quot;http://ajlcom.instantspot.com/blog/&quot;&gt;Aaron&lt;/a&gt; and I on to talk about &lt;a href=&quot;http://www.instantspot.com&quot;&gt;InstantSpot.&lt;/a&gt;&amp;nbsp; This was actually our second time to have this opportunity, although we had *much* more to talk about given our experiences over the last 14 months since the previous visit!&amp;nbsp;&lt;/p&gt; &lt;p&gt;We covered a lot of areas from how it all came about in the first place, to some of our trials and tribulations rolling out the latest release and all points in between.&amp;nbsp;&amp;nbsp; If you would like to hear some of our experiences and the technology behind our network, I urge you to check it out.&lt;/p&gt; &lt;h3&gt;&lt;img width=&quot;12&quot; height=&quot;12&quot; alt=&quot;Download Icon&quot; src=&quot;http://www.coldfusionweekly.com/images/icon_dl.png&quot; /&gt;    &lt;a onclick=&quot;javascript:urchinTracker (&apos;/versions/3-02&apos;);&quot; href=&quot;http://media.libsyn.com/media/coldfusionweekly/cfweekly_3.02_final.mp3&quot;&gt;Download Version 3.02&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Thu, 28 Feb 2008 13:26:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/02/28/Were-on-the-ColdFusion-Weekly</guid><category>ColdFusion,InstantSpot</category></item><item><title>Playing with my new webcam under Linux  - watch me work!</title><link>http://daveshuck.instantspot.com/blog/2008/02/25/Playing-with-my-new-webcam-under-Linux---watch-me-work</link><description>&lt;p&gt;I made an impulse buy this past week ordering a Tripp-Lite clip-on webcam for my laptop.  My wife and I are leaving next weekend to go on a week-long cruise without our kids, and I thought it might be fun to post some video blog entries for them while we are gone so they (and ultimately you as well) can see what we are up to.&lt;br /&gt; &lt;br /&gt; I chose the Tripp-Lite camera due to pretty consistently positive cost/value reviews, although I was a bit worried that I couldn&apos;t find a single instance of anyone on the internet actually using one under Linux.  Why should that stop me, huh?   When it arrived I plugged it in and... nada... nothing!   Although my laptop could see the device, I couldn&apos;t seem to get the drivers to work.  After doing some digging around I found that it uses the Z-Star Microelectronics Corp. ZC0301 WebCam chipset, which seems to be very common in the cheapo-Chinese-made webcam space.   There is an &lt;a href=&quot;http://mxhaard.free.fr/download.html&quot;&gt;unbelievably awesome project&lt;/a&gt; out there where a guy named Michel Xhaard has written drivers for tons of webcam chipsets, and although mine was included I just couldn&apos;t seem to get it to work, no matter what I did.  &lt;br /&gt; &lt;br /&gt; Eventually it hit me that since I am using an Alpha version of Ubuntu (Hardy Heron), perhaps I should roll to a release version and see what happens.  Given how easy it is to swap distros in Linux, I decided to roll back to a 7.04 (Feisty) remaster disc that was laying around.  Upon plugging in my camera on the new distro it just worked natively!  YAY.&lt;br /&gt; &lt;br /&gt; So, now I am playing with the apps a bit.  I found Camorama which does video captures and can FTP them to a server at regular intervals.  I thought it might be fun to create a custom pod on my blog that shows a current picture of me working - or zoning out... picking my nose... whatever.  So, the pic of me you see on the left is the most recent of those.  The timestamp text is a little small when I resize the pic, but if you view it in full size (or pull out your magnifying glass), you can see the date. &lt;br /&gt; &lt;br /&gt; As for recording video in Linux, I created a launcher that allows me to record AVI files with audio using mencoder.  For those interested in doing that, you will first need to install mencoder:&lt;br /&gt; &lt;code&gt;$ sudo apt-get install mencoder&lt;/code&gt;&lt;br /&gt; &lt;br /&gt; I then created a shortcut icon that starts the recording:&lt;br /&gt; &lt;code&gt;mencoder tv:// -tv driver=v4l:width=320:height=240:device=/dev/video0:forceaudio:adevice=/dev/dsp -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o /home/dshuck/Desktop/webcam.avi&lt;/code&gt;&lt;br /&gt; &lt;br /&gt; Then I have another shortcut icon to stop the video:&lt;br /&gt; &lt;code&gt;killall mencoder&lt;/code&gt;&lt;br /&gt; &lt;br /&gt; Look for pointless videos in the near future...&lt;/p&gt;</description><pubDate>Mon, 25 Feb 2008 16:10:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/02/25/Playing-with-my-new-webcam-under-Linux---watch-me-work</guid><category>Ubuntu,Fun,Linux</category></item><item><title>Happy birthday to my littlest sweetheart</title><link>http://daveshuck.instantspot.com/blog/2008/02/13/Happy-birthday-to-my-littlest-sweetheart</link><description>&lt;p&gt;My baby girl turns 2 today....&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;/js/swfobject.js&quot;&gt;&lt;/script&gt;    &lt;script type=&quot;text/javascript&quot;&gt;function updategallery() {      var so = new SWFObject(&quot;/swf/polaroid.swf&quot;, &quot;polaroid&quot;, &quot;100%&quot;, &quot;600px&quot;, &quot;8&quot;, &quot;#FFFFFF&quot;);      so.addVariable(&quot;xmlURL&quot;,&quot;/gospot/member.PolaroidXml/id/197&quot;);     so.write(&quot;photos14DDCE78-9763-DB15-427A89164DF7EE60&quot;);     }    &lt;/script&gt; &lt;div id=&quot;photos14DDCE78-9763-DB15-427A89164DF7EE60&quot;&gt;    &lt;strong&gt;This site requires Flash Player 8.0 or greater&lt;/strong&gt;    &lt;br /&gt; Please click &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;here&lt;/a&gt; to download.&lt;br /&gt;     If you are sure you have the required version, press this link: &lt;a href=&quot;readme.html?detectflash=false&quot;&gt;bypass the detection&lt;/a&gt;.    &lt;/div&gt;&lt;script type=&quot;text/javascript&quot;&gt;updategallery();&lt;/script&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 13 Feb 2008 21:33:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/02/13/Happy-birthday-to-my-littlest-sweetheart</guid><category>Family</category></item><item><title>Interesting mashup - Selenium and CFCUnit testing tools</title><link>http://daveshuck.instantspot.com/blog/2008/02/13/Interesting-mashup--Selenium-and-CFCUnit-testing-tools</link><description>&lt;p&gt;At last night&apos;s &lt;a href=&quot;http://dfwcfug.instantspot.com&quot;&gt;DFW ColdFusion User Group&lt;/a&gt; meeting, Tom Woestman shared an interesting project that he is working on in which he has basically integrated CFCUnit with Selnium to perform both component level testing and clientside testing at the same time in a single suite.&amp;nbsp; I admittedly&amp;nbsp; had a hard time grasping this a bit at first as I have always considered CFCUnit tests to be a completely different category than clientside browser testing. &amp;nbsp; For example, when I create CFCUnit tests, I generally have 1-to-1 relationship between a particular test and a service component.&amp;nbsp; (FooService.cfc and FooServiceTest.cfc).&lt;/p&gt; &lt;p&gt;He also showed how he is using Selenium-RC (Remote Control) which runs as a Java application and spawns the appropriate browser, peforms the test and returns results.&amp;nbsp; Pretty awesome stuff!&lt;/p&gt; &lt;p&gt;He stated last night that he isn&apos;t quite ready to open this up to the general public yet as he feels that it is not quite polished.&amp;nbsp; However, he indicated that he is going to start a blog and begin talking about his use of it in the near future.&amp;nbsp; Expect some links from me as he does as I find this to be pretty interesting and valuable stuff!&lt;/p&gt; &lt;p&gt;Also, DFWCFUG member Derek Bumpas video recorded the presentation last night, so I will try to make that video available if he gets it compressed down to a reasonable size.&lt;/p&gt;</description><pubDate>Wed, 13 Feb 2008 06:49:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/02/13/Interesting-mashup--Selenium-and-CFCUnit-testing-tools</guid><category>ColdFusion</category></item><item><title>Yes ColdFusion fans... we *are* a ColdFusion site!</title><link>http://daveshuck.instantspot.com/blog/2008/02/07/Yes-ColdFusion-fans-we-are-a-ColdFusion-site</link><description>&lt;p&gt;I don&apos;t know how pervasive this point of confusion is, but today a regular face in the ColdFusion community was making some remarks &lt;a href=&quot;http://daveshuck.instantspot.com/blog/2008/02/07/5-InstantSpot-invitations&quot;&gt;in this comment thread&lt;/a&gt; and further on his InstantSpot site that InstantSpot is not a ColdFusion-based application, with the insinuation that he won&apos;t support our efforts because of this.&lt;/p&gt; &lt;p&gt;Just to be clear, no matter whether or not you actually see &amp;quot;.cfm&amp;quot; in the URL, we are running InstantSpot on Adobe ColdFusion 8, using Mach-II 1.6, ColdSpring and other community tools.   We are strong advocates for ColdFusion, work with our local ColdFusion User Group, try to be evangelists for it wherever we can, and we will continue to do so.&lt;/p&gt;</description><pubDate>Thu, 07 Feb 2008 19:32:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/02/07/Yes-ColdFusion-fans-we-are-a-ColdFusion-site</guid><category>ColdFusion,InstantSpot</category></item><item><title>5 InstantSpot invitations</title><link>http://daveshuck.instantspot.com/blog/2008/02/07/5-InstantSpot-invitations</link><description>&lt;p&gt;If anyone is interested in creating an InstantSpot blog, we are opening up 5 new Spots today and would love to see some more ColdFusion peeps!  Enter your invitation code on the &lt;a href=&quot;http://www.instantspot.com&quot;&gt;main page&lt;/a&gt;. As soon as someone uses a code it&apos;s gone:&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;&lt;strike&gt;k7Nh92Sw&lt;/strike&gt;&lt;/li&gt;     &lt;li&gt;&lt;strike&gt;GEAGGH7B&lt;/strike&gt;&lt;/li&gt;     &lt;li&gt;&lt;strike&gt;rs4DPq9a&lt;/strike&gt;&lt;/li&gt;     &lt;li&gt;&lt;strike&gt;OUWKCEgG&lt;/strike&gt;&lt;/li&gt;     &lt;li&gt;&lt;strike&gt;lepvefKv&lt;/strike&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strike&gt;Get &apos;em while their hot! :)&lt;/strike&gt;&lt;/p&gt;  &lt;b&gt;EDIT:  All gone!&lt;/b&gt;</description><pubDate>Thu, 07 Feb 2008 14:26:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2008/02/07/5-InstantSpot-invitations</guid><category>InstantSpot</category></item></channel></rss>