Trac_Fu Progress, SVN Browser Support and a New Home

The Trac_Fu issue tracker is coming along nicely! The project has a new home over on RIAForge.org and development is moving right along. I found over on Rick Osbornes site that he had blogged about building a Trac replacement in ColdFusion and mentioned using his CFDiff Subversion browser as component of that. The guys on the ColdFusion Weekly podcast had talked about it shortly after Ricks blog post so I decided to integrate it into Trac_Fu to help fill that void.

Rick did a good job with the svn browser. It didnt take much work at all to get it to work in my Fusebox5 framework for Trac_Fu. So far I only have it supporting one repository but that will change VERY shortly since Trac_Fu has support for multiple projects.

The great Ray Camden has granted permission to use his Canvas Wiki engine as the Wiki backend for Trac_Fu and I must say that this is coming along nicely! Since Canvas was originally written in Model-Glue, its taking a bit of refactoring to get it work with Fusebox5 but basically Im just passing in the contentVariables and allowing the Canvas CFC to render all the links and then displaying that back to the screen. So almost every page is being rendered using the wiki. Ray had enough fore thought to add in the ability to write your own rendering additions and this has really aided in the ability to add the TracLinks style wiki links so that you can reference ticket numbers and revisions in the svn browser quite easily.

As just a bit of a teaser, I thought I would post the first screenshot of Trac_Fu actually running Ricks svn browser showing the Trac_Fu repository over on RIAForge.org.

RIAForge and AntFarm

RIAForge.org has officially opened its doors as of yesterday and I must say Ray Camden has done a fine job! Its a very nice site. What is RIAForge you ask? Well, in a nutshell its a site for hosting opensource initiatives based on Adobe’s technologies such as ColdFusion, Flash, Flex and the likes. There’s even a Photoshop section!

RIAForge offers you an issue tracker, blog, forums, and subversion support right out of the box. Very nice. So nice in fact that I have set AntFarm up on RIAForge. You can find it at antfarm.riaforge.org.

I committed the first version of the source to subversion today. Its a working version but not all the features are implemented yet. Still alot of work to do by far.

No documentation yet either. This has been a rough week at work since I have put in about 70 hours so far and its only Thursday night!

I will try and get some of the documentation up with it and do some general cleanup on the code and create a zip of the 0.0.1 release this weekend.

ColdFusion, Ant and Subversion = AntFarm Build Manager

I have beeen working on a little ColdFusion application at work that will allow us to quickly create builds of our applications and move them to the dev/staging server for us to prepare for testing by our QA team. I have to admit I put off learning Ant for a long time but now I am SO glad that I did.
I got started playing with Ant based on a suggestion from Sean Corfield. I was asking Sean if there were any ways to checkout a copy of the latest code from Subversion and copy it to our dev server without having to do it manually and he quickly pointed me to Ant.So this little application Im calling AntFarm houses configurations of all of our projects and allows you to quickly create builds and deploy them. Its actually coming in quite handy since we have multiple developers all contributing to the same projects in subversion. Here are the features so far:

  • Holds configs for multiple projects
  • Checks code out from your subversion repository based on the project
  • Cleans up the code removing and unwanted files like .project files that somehow always find their way into subversion
  • Dynamically creates the version for the project and appends the subversion revision number to the build
  • Creates a tag in your subversion repository named with the appropriate version
  • Deploys the code to your deployment path (currently only works on local and mapped directories)
  • The project list shows you the latest build version and allows you to open the ant log for that build.
  • Allows use of your own custom build files or use the prepackaged one

Thats about all I can think of for now. Im really wanting to release this as opensource for everyone to modify as they see fit but I have to make sure that my boss doesnt mind since some of it was written on company time. Im sure he will be ok with it.
Its written on CF7 using Fusebox 5 so you will need to install the Fusebox framework as well as the latest version of ant in order to run it.
Heres a little snippet from the build.xml file that I will include with AntFarm. This gets the revision of the checked out code and then writes that to a file. Then I use the REPLACE task to replace that revision number with the full buildversion property. Its really quite nat!


And thats really all there is to that. I will post somemore tomorrow once I make sure its ok to release it.

Sniffing the Model-Glue….

I’ve been coding ColdFusion applications for about 8 years now and I consider myself to be a pretty good developer. I have used Fusebox for every app I have built going all the way back to 1999. I follow pretty sound coding practices and read all the blogs and try to keep up with whats going on in the CF Community. But for some reason, I am just not getting a handle on this Model-Glue thing!
I have spent almost all day today setting up Model-Glue:Unity and trying to get a simple app up and running using a few CFC’s and some views. I read the Model-Glue Quickstart in the documentation and managed to get the basic application template up and running but thats about the extent of it. I feel like someone has Model-Glued my head to the table and then flipped it upside down on me.
I know there is something that I am just missing or not grasping that is preventing me from moving forward with it but I cannot put my finger on it. No matter how many times I go through the code, or read a tutorial or refer to the documentation.
Maybe I have just been doing Fusebox for too long and have no experience with any other frameworks. Maybe my brain just thinks in fuses and circuits and then short-circuits when I try to alter the way that I think about an application.
Im not going to give up but, WOW, I certainly need a break so Im going back to doing some Fusebox development for the evening. Ahhh, the comforting feeling of something familiar!

Are code editors making me dumb?

We are in the process of hiring an architect and another developer and a couple of us started putting together our technical interview questions to prepare for the first round of interviews. While wading through all of the questions, something occured to me. I couldnt answer some of the questions myself!
The questions that were giving me the most trouble were the syntax related questions and picking the right function name out of a group. Come to find out, I wasnt the only one that was having trouble with them. Out of all three developers we have, the one with the least amount of experience has about 4 years of ColdFusion development experience. The next one is about 6 years and I have been developing in ColdFusion for over 8 years now. So why are we having so much trouble with what we considered to be simple questions?As we sat there and talked about the questions and how we actually code, a light bulb went off. Even though we all use different tools for coding like DreamweaverMX, Homesite+ and my favorite CFEclipse, there was one fundamental feature that we have come quite accustomed to using. The pop-up syntax insight! Now, I can remember back in the day of CF 4 spending hours of my free time actually reading the CFML Language Reference that came in the box with ColdFusion. Yeah, thats right, I actually read the entire function reference from front to back. I know, I know. I need a hobby right?
Now that many years have passed and I’m not so much into reading books on programming, has the tag insight function of most editors made me dumb? I agree that its a very great feature and my harmless use of this feature for timesaving when writing code seemed like a great thing at the time, but at what expense?
Typically in CFEclipse I will set the tag insight feature to a delay of 0ms so that it comes up automatically as Im typing. This allows me to only type a few characters of a tag or function before hitting enter and having the tag/function automagically written out for me. The same goes for the attributes of that tag. Im just trying to save myself some time while coding but I feel like years of doing this has made me lazy!
I guess everything is a trade-off. I just hate feeling like Im relying on a feature rather than just utilizing it for timesaving. Maybe I’ll turn that off for a day and see how bad it really affects me.

Feeling a little behind the times already…

I’ve been playing PC games for the better part of 10 years now and pretty heavily over the last 7 years. I’ve bought the “latest and greatest” video cards and all types of hardware just to stay ahead of the curve. It seems like technology is moving so fast that as soon as you buy the best thing on the market, the new stuff comes out with better specs and its half the price. Im pretty used to that coming from the pc world though. But I just got a huge smack in the face from Apple that I wasnt quite expecting.
As you can tell from my previous post, I just bought my first iMac and have been very happy with it. That hasnt changed, Im still very happy with it and Im finding more things everyday to like about it. But I just took a stroll over to the apple.com site as I do frequently hoping to see some new previews of the upcoming Leopard release and was greeted by a big sign that kind of made me feel like a jackass.
Apple just released a new line of iMacs including a stunning 24″ widescreen model which I can image is incredible. The thing that gets me is that I just bought my 20″ model 3 weeks ago and paid $1809 for it from the Apple store in Orlando, FL. Now 3 weeks later they introduce a new 20″ model with twice the ram, a faster processor and a brighter display, “a full 40% brighter” according to the apple.com site and its only $1499!! Damn thats aggravating!!
Sometimes I feel like I just cant win!! My timing sucks!!

I have been seduced by the dark side…

Well, maybe its not quite that dramatic. And its definately not that dark! What in the world am i rambling about? Well, I finally took the leap and replaced my main desktop/development machine with a Mac. I have been wanting to buy one for quite some time but I have been known to play a game of Counter-Strike Source or Battlefield 2 from time to time and since gaming support on Mac has been shoddy at best, I couldnt justify having 2 machines that cost so much money.
Since Apple made the switch to Intel chipsets and they released the Bootcamp beta software that allows you to run Windows XP in a dual boot configuration, I plain ran out of excuses not to buy one.
I picked it up last night from the Apple store in the Mall of Millenia in Orlando, FL. That was my first trip to an Apple store and I have to say, I was pretty impressed.
I bought the 20″ Widescreen iMac with the 2GHz Core Duo processors and its awesome. The display is absolutely gorgeous!! I have 2 Samsung 930b 19″ LCDs that I run on my windows box and I always thought they were great. That is until last night when I had the iMac running right next to one of the LCDs. It just made the LCD look dull and washed out.
I have spent quite a few hours getting everything installed and setup the way I want it and Im still not quite done. I had to take a break to play Counter-Strike on the Windows partition for a few hours. I was impressed with how well it runs the game.
I have CFEclipse up and running with the host of plugins that I like. Subclipse is all hooked up to the Trac_Fu repository and I have MySQL installed so now I can get back to coding!!
If you have considered switching to a Mac, I HIGHLY recommend you find an Apple store in your area and go check out the machines. You will not be disappointed!