And We're Back!

In more ways than one. The first way is obvious, back from a hiatus writing blog posts. The second way is back from CFUnited 2010. The third and final way, being the least fun, is back from a server outage.

The gaps in blog posts are going to end. I think by this point I have enough to write about, I just have to set aside a block of time to sit down and write. I was concerned when I started this blog that I wouldn't have enough content for it to be worth it. I sat down the other night and though of several posts I can write, so it shouldn't take me long to pump out several quality posts. It'll be nice to FINALLY provide my readers with some fun and useful tips and tricks to use in their ColdFusion, Flex and AIR apps.

CFUnited 2010 is supposed to be the last one, unless it's picked up by a new owner at possibly a new location. It was great to see all of my old friends and meet all of my new ones. I attended with a three day package and brought along my lovely wife this time around. While I was attending the various sessions offered throughout the day, she was touring the Leesburg area and enjoying what the Lansdowne Resort had to offer. Everyone in attendance was certainly trying to make the last CFUnited the best they had seen. Despite the painful sunburn I had gotten swimming the weekend before, which many of you got to see first hand, I had a great time. I even got my own shout out from Charlie Arehart during his keynote on the CF Community. Thanks Charlie!

The server outage problem is actually a reoccuring problem. My blog is hosted on my own hardware and recently I've had two machines that seem to be having BIOS issues. At the moment I don't have an available backup supply for my servers and sometimes the AC unit causes the power to drain enough to restart a couple of them. Not the greatest setup, I know. As a result, my email server and database server like to throw a "malprogrammed rom error" at startup. This error goes away with a complete power down and restart, but if they're restarted without a complete power interruption, the error just repeats. It's pretty inconvenient because I actually have to physically be there to fix that problem. I'm in the process of building a new server that will allow me to virtualize a few of my machines, so I won't have this problem any more.

Great to be back and great to have something to write about. I'll see you all again soon!

My first speaking gig! NCDevCon

Well, I finally did it. After several rejections (and to be quite honest mediocre topics on my part), I finally landed my first speaking gig thanks to the folks at NCDevCon. I promise you, if you attend my session, you won't be disappointed. My session is directly after lunch, so if I don't make it a good one I'm sure I'll have a room full of sleepy heads.

My session is titled "Keeping in Sync - Synchronizing client / remote databases in Adobe AIR". One of the very first things I found facinating about AIR, back when it was Apollo, was the built in SQLite database and the ability to push and pull information to and from other databases using Flash Remoting. I was able to utilize this functionality in a prototype AIR application I wrote for the United States Marine Corps. I do mostly ColdFusion at my current job, but I try my best to keep up with advancements in Flex and AIR development on my own time so I can stay fresh. The point of this session is to share with my colleagues how simple it really is to keep a remote database and client database synchronized with some of the great tools built right into AIR and ColdFusion 9. Terry Ryan did a very similar presentation at last year's CFUnited during his keynote. My goal is the same as his, to show how simple it really is to utilize this functionality in your own projects.

Hopefully I'll see you there! If not, I'm sure the sessions will be recorded or the slides will be posted after the conference. Come on down to NCDevCon and join in the fun!

Great time at RIAUnleashed! A very tired Jim reviews.


RIAUnleashed was great. Awesome topics, top notch speakers and great company. I walked away from this conference feeling inspired to immediately try out the new things I had learned, maybe even branch of some topics of my own to speak on at future events. Congratulations again to Brian Rinaldi for putting on an event to remember.

CFUnited 2009 - One of the greatest yet!

CFUnited 2009 was a huge success. I enjoyed every aspect of this conference. I'm one of the lucky few that is close enough to drive to this conference, so it's already a convenience. Even with the travel aside, there were several reasons I found the conference a delight this year.

The Venue: This year, CFUnited was held at the Landsdowne Resort in Leesburg, VA. This facility was VERY nice. The staff made you feel welcome from the moment you stepped through the door (which they opened for you). Check in was a breeze and everything was nicely laid out. The walls were covered in upscale artwork and the high ceilings almost gave the feeling of being in some sort of palace. The rooms were laid out much like every other hotel room is, but were very clean with high quality furnishing, full length mirrors and plenty of lighting. The beds also came with an abundance of pillows, which I enjoyed quite a bit. During the sessions the staff at Landsdowne made sure we had an abundance of snacks, drinks, pastries, yogurt, cereal bars, ice cream, etc, etc, etc.....I was never wanting for anything.

The Sessions: This year offered more sessions than I think I've ever seen at CFUnited. There was a nice mix of ColdFusion and Flex sessions as well as some design and CSS sessions. I got more out of the sessions this year than I can ever say I have at a prior CFUnited or any other conference. I don't have a bad thing to say about any session I attended.

The People: I can't say enough about the people. Some I knew before, some I didn't, but I met some of the greatest people in the CF community at CFUnited. People like Dan Wilson, Dee Sadler, Lisa Heselton, Ben Nadel, Aaron West, Ray Camden......the list goes on and on. Having meals with these folks and just chatting in the halls made for great networking and just a lot of fun in general. These are some top notch programmers that know how to have some fun as well. Did anyone else drive an entire clover leaf system trying to make a U turn on the interstate while waving your hands around like you're on a roller coaster??? I didn't think so...

Stellr: To Liz and the team, THANK YOU. You made this year perfect. Without your hard work none of this would have been possible. It can't be anywhere near easy to put together an event of this magnitude and have everything go as smoothly as it did. I know I'm not alone when I express my gratitude for what went into CFUnited 2009. I can't wait to see what you've got in store for next year.

There are probably a ton of things I missed, but I think you get the idea. I hope CFUnited continues to use Landsdowne and the venue for next year and I can't wait to attend again. See you next year at CFUnited 2010!

RIAdventure 2009 - Well Worth The Trip

Honestly, I don't know what took me so long to blog about RIAdventure. Perhaps it was the fact that I had such a good time there that I didn't want to return to the normal grind of the day to day hammering on code. Regardless of what it was, I have to share my experience with everyone. RIAdventure was an "unconference" that took place back in February aboard the beautiful Norwegian Sky cruise ship. Joshua Cyr did a great job planning this event and everyone in attendance had a good time. We spent our days touring the islands of the Bahamas and our nights in lounges and restaurants, discussing our experiences, both personal and professional, and just getting to know the members of our community better. I enjoyed meeting everyone there. Some I had met before like Yancy Wharton and Joshua, but I also got to know people I follow on Twitter and had maybe never met in person like Dan Skaggs, Aaron West and Dan Wilson. The lack of sessions made it possible to make a friends rather than just acquaintances. It didn't hurt that we were in the tropics in February either. I had never been to the Bahamas before and Josh did a great job working with a travel agent to make the trip as affordable as possible for everyone. My wife and I are looking forward to this event next year and hope to see many more of you there. Joshua Cyr is already looking for suggestions for next year's destination! Follow jcyr on Twitter and let him know where you'd like to go.

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 CFUnited.com 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 http://www.CFUnited.com 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!!

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 yadda...it 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!

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="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initgridData();">
    
    <mx:Script>
<![CDATA[
        //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;

[Bindable]
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;
                    }else{
                        trace ("Checked is false");
                        gridData[i].checked = false;
                    }
                }
                
                //After the loop, reset the data provider to refresh the check boxes
                myDataGrid.dataProvider = gridData;
            }
]]>

</mx:Script>
    
    <!-- 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:columns>
            <mx:DataGridColumn headerText="Selected" textAlign="center" dataField="checked" width="90">
                <mx:itemRenderer>
                    <mx:Component>
                        <mx:CheckBox click="data.checked=!data.checked" selected="{data.checked}"/>
                    </mx:Component>
                </mx:itemRenderer>
            </mx:DataGridColumn>
            <mx:DataGridColumn headerText="Name" dataField="name" width="110"/>
            <mx:DataGridColumn headerText="Address" dataField="address" width="150"/>
            <mx:DataGridColumn headerText="Phone" dataField="phone" width="110"/>
        </mx:columns>
    </mx:DataGrid>
    
    <!-- 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"/>
    
    
</mx:WindowedApplication>

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.

Lynda.com Flex Training....Highly Recommended

Today I started on the Flex 3 Beyond the Basics course on Lynda.com. I have to say I'm impressed. This is the first course I've taken on Flex. I'm basically a self-taught Flex programming, using only information I've found on different blogs and documentation on the Adobe site to find my way. The instructor on the videos is easy to follow and speaks very clearly. In just the few hours I spent watching the videos today I've picked up a world of tips and tricks I just didn't know before. I've been working on mostly ColdFusion projects at work recently, but I was working on an Air project for several months before that. It was put on hold until these CF projects are completed. I think this training will give me the edge I need to make some impressive tweaks to the software.

See you at RIAdventure!

Are you registered for RIAdventure, the 5 day cruise from Miami to the Bahamas where you can network with others interested in ColdFusion, Flex, AIR and other web goodness? I sure am. My wife and I will be spending our vacation time hanging out with programmers this year. As of yesterday my deposit is down, my airfare is booked and we're well on our way to cruise line bliss. If you're interested in joining the crowd visit http://www.riadventure.com for more details. See you on the ship!

More Entries

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