Not speaking, but still attending.

Well, once all the dust settled I didn't make the cut for the CFUnited speakers list. I'm not discouraged, however. It's still very early in my career and I have ample opportunity to speak in the future. I think a lot of my problem is that no one knows who I am, what my background is, or what I'm good at. I need to make use of future conferences (and certain un-conferences I might add) to get the word out. I would also like to congratulate my colleague, mentor and good friend Yancy Wharton on making the list with his topic, "How to Setup a Local Development Environment". He's a brilliant programmer and deserves the recognition of speaking at CFUnited. I will still be attending CFUnited this August, so maybe I'll see some of you there. All I can say is look out CF World, here I come!

Vote for the Green-Haired Guy

Alright, it's shameless self-promotion time. As many of you may know, the survey has been posted at for topics for the 2009 conference. I'd like to take a moment to tell you about the topic I posted.

The title of my topic is Using CFCs with Flex/Air Applications. It's a fairly basic topic, but one I work with quite a bit. The application I'm currently developing at work relies on Remote Objects and CFCs to obtain the data it needs to populate Data Grids and Dropdown Menus. I would like attendees of this session to walk away knowing how to use the power of CFCs to access remote databases using the ColdFusion server and to be able to handle the data returned from those CFCs. This will combine both Actionscript 3.0 and ColdFusion code. Naturally the actual session will be more descriptive (and a whole lot more entertaining) than this small summary, but I think everyone gets the idea.

So if you like what you see, or even if you don't, drop on by the CF United site at and fill out the survey. My topic is one of the only four listed in the CFC section. There are lots of great sessions to vote for this time around. I wish I could attend them all! See you in August!!

Happy Halloween Everyone!

I just wanted to take this time to wish everyone a safe and happy Halloween! Halloween is a very special time for me. It has been one of my favorite holidays since I was very small. I have a very wild imagination, so it always gave me the chance to really get creative with my
costume ideas. Once I got older, I began setting up outlandish displays to entertain the neighborhood kids on Halloween night. I became the most popular house on the street, during the month of October at least. I became one heck of a pumpkin carver too. I never caved to the "Hollywood evil" definition of Halloween. I know there are weirdos out there that think Halloween is a night for sacrifice and worship of evil, but they are wrong. The roots of Halloween are a celebration of the harvest, leaving gifts for the spirits of the Earth and giving back to Mother Earth for the bounty she provides. Yes, there were sacrifices involved with giving back to the Earth, but in the dark ages this was considered acceptable. When Christianity swept the world and overtook Paganism, people were led to believe that Pagan traditions and rituals were those of Satan, thus the belief that Halloween was a time for evil and mischief began. As time went on and the world became more and more civilized, Hollywood realized it could make a few bucks off of the idea that Halloween was an evil time. The whole Halloween horror series is proof enough of that. This just isn't an idea that I subscribe to. Halloween is a time for fun, jack-o-lanterns, great costumes and good friends. It's about letting the children believe they can be something else for just one night, just by wearing that costume. It's about imagination and make-believe. My next door neighbor tells me that Halloween just turns children into I can't see how anyone could cast out this great day. I will continue with my decorations, parties and entertainment as long as I'm physically able. Once again to everyone out there, Happy Halloween!

I'm a slacker....officially

When I started this blog I thought "yes, I can think of stuff to write about regularly." I'm either terribly wrong or just terribly lazy. I think it's a combination of both to be honest. I'd rather be blogging about things relevant to ColdFusion and programming, but I can never think of anything that first of all hasn't been done before, and second would be relevant to a wide variety of uses and not just the specific task I have at hand. How do you guys do it??? Am I a good programmer? I'd like to think so. Am I an experienced programmer. Not exactly. I really wish I had something more to share with the community. Hopefully I'll figure it out eventually.

On to a more personal topic. I bought a new truck today! It's not "new" new, but it's new to me. It's a 2005 Chevy Colorado in metallic orange. Hopefully this one will stay looking nice, unlike my last car. I had it less than a year and the clear coat peeled off the top and trunk lid. It looked like garbage when I traded it in. I used to wash it every weekend, summer and winter and do all the maintenance on time. After the paint started to fall apart, I stopped caring. Hopefully this truck will be the one I can take care of and it will reward me with many years of good looks and reliability.

Catching back up

I've totally been slacking in the posts department lately. Things at work and at home have kept me so busy I haven't had time to sleep, let alone post to the blog. Here's the skinny on what I've been up to.

The new site for the Navy has been up and running since Friday. I only had one error report and it was extremely simple. Turns out the country code for Norway is NO and my code doesn't like that.....who knew? Having this site go live successfully is a HUGE weight off my shoulders. Everyone on the government side and my company's side seems very happy, which makes me very happy. Now I'm moving back to my AIR project that I haven't touched since May.

I'm also working on getting all the new servers set up in the office. Some of them are mine, most of them are Yancy's. We have about 5 more to set up. Yancy has been installing operating systems on them while I've been making Ethernet cables for the boxes and the new IP KVM. It keeps me here kinda late sometimes.

At home I'm preparing for some pretty major renovation work. My home was built in 1920 and it's beginning to show its age. The outside isn't bad, mainly due to a new roof, fresh coat of paint, and new windows. The inside, however, has old horse hair plaster on the walls and much of it is either patched up poorly by previous owners or just cracking and falling down. Luckily I was blessed with some great mechanical and construction ability, which I probably get from my Father the home builder, so I'm doing the work myself instead of paying a contractor. I also have some friends who are electricians willing to help out. With the help of my friends and family I know things will go great. I spent most of Sunday down at Home Depot pricing out drywall, joint compound, insulation, romex and all the other goodies I will need to renovate the upstairs. I'm going to complete the upstairs area first and then move downstairs probably next year. The third floor was finished by a previous owner (poorly), but I'm going to leave that alone for now. Soon enough that area will become a darkroom for my wife. My goal for now is to complete at least one room quickly so I have a place to sleep upstairs. I'll be using my dining room for a bedroom for a while, but I'll be needing that for the Thanksgiving and Christmas dinners we always host for our family.

The VW is on the fritz too. My battery keeps dying. I think it's a combination of a bad cell in the battery and the alternator beginning to go. It's an original factory Motorola alternator from owes me nothing. On top of that I'm beginning to lose compression on the #4 cylinder due to a head stud pulling from the block AND the steering is so loose now it's terrifying to drive in the rain. When you drive on wet roads the car starts to sway back and forth until you think you're going to spin around. I think at this point I'm going to rebuild the front end and "tone down" the drag racing engine I'm building for street use. I figure I can put my racing transmission in there too and just deal with the change in gear ratios. Either way, it will still be a bit of a sleeper.

Well, that's it. I say that like that's not enough. I'll try to be on top of my blog a little more now that things have leveled off a bit. Thanks for reading!


I haven't been posting to my blog as much this week. I have a deadline coming up on a project here at work and I am heads down making sure everything is jiving the way it should before it goes live. The customers I deal with aren't the type you want angry. Luckily it's only Tuesday and I've worked out all of the reported bugs my testers have kicked back to me. Right now I'm in that "click everything" phase where I'm just making sure nothing is going to break in the middle of a demonstration or worse yet, actual use. I have to say I'm glad the end of this project is approaching. For a while there I was feeling kind of burned out on this one, but with the end in sight I was able to gain a second wind. I expect everything will go well on Friday when the new system is switched on. Until then it's just hammer away at it and see if it breaks.

For those who care, I made an attempt at the green hair again. It's better, but not great. I went and talked to a friend who's a licensed hair stylist. I'm going to have to use a special kind of stripper that removes any trace of artificial hair color, then bleach it again, then dye it again. That's for another day. For now I kind of have this brownish/greenish thing going on. It's still more green than orange.

I'm off to play with my new servers that just came in. I've decided to name them all after characters on Adult Swim...

My own little piece of the web.

Well, it's official. As of today I purchased my first two servers in what is to be a flurry of future purchases. I picked up a pair of DL360 Compaq servers on eBay for a pretty decent price and have my eye on several more. I'm quite excited by the idea of being able to host my own content. It's bad enough I'm mooching of Zoobiesoft, Yancy Wharton's web company, for my connection let alone using his disc space. Hopefully by the time I get set up I'll at least have DNS, web, database, mail, and FTP servers running. I'll also be on the lookout for a decent switch and KVM. Just to get going I may run some of the machines dual purpose, but eventually everything will have its own box. Gotta start somewhere though. If anyone close to the eastern shore of Maryland is looking to unload a server rack cheap, I'm in the market and will drive a little ways to pick up. The ones on eBay are either overpriced, missing the sides, or just plain too far away. I live down in farming country, not really the technology hub of the area. I'm off to enjoy my weekend now......and maybe get my hair color fixed.

Taking to the AIR once again

I found out this morning that I'm FINLLY, after 5 months of "on hold", being put back onto my AIR project here at work. 5 months ago I was pulled off the project for a higher priority ColdFusion application. I'm just putting the finishing touches on that site now and have to be available during customer review, but I'm very happy about firing up Flex Builder again. I've been trying to keep up on my skills by submerging myself in books and training videos so I'm definitely ready. I'm just trying to get myself prepared for all of the silly syntax errors I'll end up with from crossing over my brain from ColdFusion. The same thing happened when I went from AS3 to ColdFusion. Using = instead of eq in if statments, yadda yadda was a mess. I don't see as much of it happening this time around since I've got a little more experience under my belt now. That and I've been writing a lot of "extra curricular" Flex and AIR apps to keep my skills fresh. I probably have a lot more to offer that application now anyhow, with all the training I've had in the mean time. I love programming in ColdFusion, but I think I'm going to try and make Flex and AIR my concentration. I'll still use ColdFusion as my back end of course, but there are very few people in my company, or even my area for that matter, that have even tried to program in Flex at all. I'm going to start making changes and updates this afternoon. Wish me luck!

Orange with envy???

As you've probably noticed....I have green hair. Green is my favorite color, especially lime. Many of my friends on Twitter have probably also noticed I've been complaining about my hair turning orange after the last dye job. Well, this morning there is no doubt...I look like a pumpkin. I appreciate everyone who has offered possible explanations as to why this is happening. Previously I was using a hair dye that only lasted a week tops before fading to a sick looking yellow. I decided to go all out and ordered some Manic Panic Amplified Electric Lizard. The amplified versions of these dyes are supposed to be brighter and last longer, so I figured I'd give it a try. After bleaching and putting in the green, I was very disappointed. The green didn't seem to take at all as my hair looked the same sick yellow it was prior to putting in the bleach. I just shrugged it off and figured I'd try again later. A few days after this I started to notice little patches of red-orange in my hair. At first I thought maybe it was just where the bleach hadn't quite whited out my roots, but there were orange spots that were nowhere near my roots. This morning I got up, washed my hair and looked like this. Keep in mind when viewing this picture that I had my hair dyed ELECTRIC GREEN on FRIDAY NIGHT. It's now Wednesday morning and you would never know I had any green in there. I'm concluding it's a reaction between the dye and my water or shampoo since it seems to change every time I wash my hair. I'm interested to see what I look like tomorrow...

My entry for the Adobe AIR Cookbook

Well, I finally decided on my entry for the Adobe AIR Cookbook contest. I had to do this for a work project and I found very little documentation on how to pull this off. My entry is the addition of a "Select/Deselect All" checkbox that will automatically select or deselect all checkboxes in a certain column of a datagrid. For my application at work, the user was selecting the checkboxes to determine which records they would be downloading to their local machine. In some cases the datagrid had several hundred entries, so checking them all manually just wouldn't do. Let's take a look at the code...

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="" layout="absolute" creationComplete="initgridData();">
        //For this example, I'm using an ArrayCollection for my data provider. This data could also come from
        //the local SQLite database or from a CFC calling to a remote server.
import mx.collections.ArrayCollection;

private var gridData:ArrayCollection = new ArrayCollection([
{checked:false, name:'Jim Leether', address:'123 Spruce Street', phone:'(555)555-1234'},
{checked:false, name:'Yancy Wharton', address:'728 Main Street', phone:'(555)555-4926'},
{checked:false, name:'Anne Smith', address:'923 Log Cabin Lane', phone:'(555)555-7365'},
{checked:false, name:'Robert Davidson', address:'498 Electric Avenue', phone:'(555)555-1674'},
{checked:false, name:'Cathy Perdue', address:'246 Cedar Drive', phone:'(555)555-2795'},
{checked:false, name:'Tom Jones', address:'562 Division Street', phone:'(555)555-4965'}]);

//Initialize your data provider at creation complete
public function initgridData():void {
myDataGrid.dataProvider = gridData;

//Loop over your data provider and either check or uncheck all boxes
private function selectAllCheckboxes():void{
                var allRows:int = gridData.length;
                for (var i:int = 0; i < allRows; i++){
                    if (selectAll.selected == true){
                        trace ("Checked is true");
                        gridData[i].checked = true;
                        trace ("Checked is false");
                        gridData[i].checked = false;
                //After the loop, reset the data provider to refresh the check boxes
                myDataGrid.dataProvider = gridData;

    <!-- Create a DataGrid with a check box in the first column using the mx:itemRenderer tag -->
    <mx:DataGrid id="myDataGrid" left="10" top="10">
            <mx:DataGridColumn headerText="Selected" textAlign="center" dataField="checked" width="90">
                        <mx:CheckBox click="data.checked=!data.checked" selected="{data.checked}"/>
            <mx:DataGridColumn headerText="Name" dataField="name" width="110"/>
            <mx:DataGridColumn headerText="Address" dataField="address" width="150"/>
            <mx:DataGridColumn headerText="Phone" dataField="phone" width="110"/>
    <!-- This checkbox will call the function that selects or deselects all the checkboxes in the datagrid -->
    <mx:CheckBox id = "selectAll" label="Select/Deselect All" click="selectAllCheckboxes();" left="10" top="175"/>

As you can see, it looks complicated, but it's really very simple. The code simply loops over the value of each checkbox in the datagrid's data provider and gives it the same value as the "Select/Deselect All" checkbox. Once it finishes updating the datasource, it just refreshes the display. The check boxes will still function independantly from the Select All box as well. Hopefully this will get some attention.

More Entries

Copyright © 2008 - Jim Leether BlogCFC was created by Raymond Camden. This blog is running version Contact Jim