We’re on the ColdFusion Weekly!

The latest version of the ColdFusion Weekly podcast was released yesterday.  Matt and Peter were kind enough to have Aaron and I on to talk about InstantSpot. 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!

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.   If you would like to hear some of our experiences and the technology behind our network, I urge you to check it out.

Download Icon Download Version 3.02

Playing with my new webcam under Linux – watch me work!

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.

I chose the Tripp-Lite camera due to pretty consistently positive cost/value reviews, although I was a bit worried that I couldn’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’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 unbelievably awesome project out there where a guy named Michel Xhaard has written drivers for tons of webcam chipsets, and although mine was included I just couldn’t seem to get it to work, no matter what I did.

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.

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.

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:

$ sudo apt-get install mencoder

I then created a shortcut icon that starts the recording:

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

Then I have another shortcut icon to stop the video:

killall mencoder

Look for pointless videos in the near future…

Interesting mashup – Selenium and CFCUnit testing tools

At last night’s DFW ColdFusion User Group 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.  I admittedly  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.   For example, when I create CFCUnit tests, I generally have 1-to-1 relationship between a particular test and a service component.  (FooService.cfc and FooServiceTest.cfc).

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.  Pretty awesome stuff!

He stated last night that he isn’t quite ready to open this up to the general public yet as he feels that it is not quite polished.  However, he indicated that he is going to start a blog and begin talking about his use of it in the near future.  Expect some links from me as he does as I find this to be pretty interesting and valuable stuff!

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.

Setting up Apache, OpenBD, Railo and ColdFusion – Part 4 – Installing Railo under Tomcat with Apache webserver

This is Part 4 in an ongoing series demonstrating how to install OpenBlueDragon, ColdFusion, and Railo concurrently with all requests passing through the Apache webserver.  You will find links to all parts of this series at the bottom under “Related Content”

In this post we will be building upon our existing environment in which we installed Apache webserver, Tomcat 6, OpenBlueDragon, and ColdFusion, by adding Railo to the mix.  If you have been following along thus far, we are well past the hard stuff at this point.  To install Railo, which is deployed as a java war file, we are going to repeat and slightly modify many of the steps that we took at the end of Part 2 when we installed OpenBD as a Tomcat web application.

Let’s start by setting up our hosts entry so that our new site resolves to localhost.railo, and set up the Apache webserver to listen for the request.  Open up /etc/hosts, and append ‘localhost.railo’ (without quotes!) to the line that begins with 127.0.0.1.   Next we want to create a new virtual host file for the site under Apache.  Do so like this:

$ cd /etc/apache2/sites-available
 sudo gedit localhost.railo

Paste the following into that new file and save it.

<VirtualHost *>
	ServerName localhost.railo
	JKMount /* worker1
</VirtualHost>

As we learned in Part 2, the line “JKMount /* worker1″ is instructing apache to pass everything to the worker we defined in /etc/apache2/workers.properties.  That worker will then pass the request on to Tomcat port 8009, under which our application actually resides.

Now that we have defined this site, we want to make sure that it gets included on our next Apache restart.  We do this by running the following:

$ sudo a2ensite localhost.railo
Site localhost.railo installed; run /etc/init.d/apache2 reload to enable.

At this point, we need to make sure there is a an application set up in Tomcat to receive our request.  First, let’s start by downloadingthe free Railo Server from their download page.  Look toward the bottom of the page and download  “Railo Custom” and download railo-3.0.2.001.war. (or newer version if it is there).  Once we have the file downloaded, we will create a new directory for our application under Tomcat.  We will then copy the Railo war file into it from our download directory.  When we have the war file under /opt/tomcat6/webappas/localhost.railo/ we will extract it, and then safely delete the war file itself.  These steps can be seen here:

$ sudo /opt/tomcat6/webapps/localhost.railo
 sudo cp railo-3.0.2.001.war /opt/tomcat6/webapps/localhost.railo/
 cd /opt/tomcat6/webapps/localhost.railo
 sudo jar xvf railo-3.0.2.001.war
 sudo rm railo-3.0.2.001.war

Since we now have the application in place, it is time to modify the Tomcat server config so that it knows to send the appropriate requests to it.  Do the following:

$ sudo gedit /opt/tomcat6/conf/server.xml

Look for the section that we added previously for our OpenBlueDragon localhost site “localhost.bd”.  We are going to copy that section, modifying the “name” and “docBase” attributes to match our new application and paste it just below the localhost.bd site.  When you are done they should look like this:

<Host name="localhost.bd"  appBase="webapps" unpackWARs="true"
	autoDeploy="true" xmlValidation="true" xmlNamespaceAware="false">
	<Context path="" docBase="localhost.bd/" reloadable="true" privileged="true" antiResourceLocking="false" anitJARLocking="false" />
</Host>

<Host name="localhost.railo"  appBase="webapps"  unpackWARs="true"
	autoDeploy="true" xmlValidation="true" xmlNamespaceAware="false">
	<Context path="" docBase="localhost.railo/" reloadable="true" privileged="true" antiResourceLocking="false" anitJARLocking="false" />
</Host>

With all that done, we are ready to restart (or start) Apache, Tomcat and our new Railo site will be available at http://localhost.railo

So with our original goal of being able to run the three CFML engines, it’s time to see how we did….
http://dl.getdropbox.com/u/101948/blog/movies/3-cfml-engines.swf