ColdFusion Programmer Wanted

So, my last blog entry was about my needing a developer to help me out. I found one and he is great. I just have even more work that needs doing.

At this point, I am looking for a 1099 contractor, not a W2 employee. I need someone with current U.S. residency, but I don't particularly care where you are located. All work is remote.

[More]

Business is Booming and I Need Your Help

In less than 3 months, I will have been working for myself for 10 years. In that time, I have mostly been able to keep up with client demand on my own. This has been by a combination of hiring occasional subcontractors and turning away business.

Now, however, I have too few clients to turn away and still too much work to handle on my own.

[More]

What technologies, other than ColdFusion, should a developer know?

Fusion Authority recently ran an article called What's Hot? What's Not? Where Do We Go From Here? subtitled "What technologies, other than ColdFusion, should a developer know?". Mike Henke followed up the theme with a post called "What's Hot & Where do we go from here?".

I'm pretty sure I don't have the insight that other people have who have already written on the subject. But it seemed like a fun exercise, so I thought I would toss in my two cents with:

What technologies, other than ColdFusion, am I learning?

I'm not sure what technologies you should learn, but here are the ones that I am learning:

[More]

Essential Software for ColdFusion Development

I recently went through a rather severe computer tragedy from which I am just now recovering. As such, I have had the opportunity to rebuild my computer from scratch. Here is the software I deemed essential for my work as a ColdFusion developer. I'm curious what others have installed.

These are roughly in the order that I install them

  • Firefox: First thing I install on any computer.
  • IIS: Not really software, but I did have to enable it. Apache may be "better", but I like IIS personally and it is easy to get going. Just be sure to enable all of the correct services before you install ColdFusion
  • SQL Server Express: It is free for local development and a really good database program.
  • MS Office: The last of the Microsoft software. Despite all of the Microsoft haters out there, MS Excel is still my favorite program ever and MS Access is actually a pretty good local database.
  • ColdFusion: It's what I do.
  • ColdFusion Builder: I still miss ColdFusion Studio, but this is really growing on me.
  • Adobe CS Web Premium: I love Fireworks and it is handy to have Photoshop, Dreamweaver, and Flash as well.
  • Pidgin: Currently my IM of choice. Works well across lots of networks and runs fast.
  • CloudBerry Backup Desktop: I have tried Mozy and Rackspace's JungleDisk and liked them both well enough, but a friend recommended this so I am giving it a try.
  • ShadowProtect: Windows 7 has image back-ups, but the hardware independent restore feature of ShadowProtect seems like it could be really handy.
  • BeyondCompare: Simply the best file comparison program I have found.
  • Git for Windows: I'm in the early stages of learning Git, but I love it so far.

So, what do you think? Did I miss anything essential?

For anyone wondering what happened to my upcoming list of "How I got Started in ColdFusion" entries, I lost them but I know how to get that back so I will try to get on that soon. Sorry for the delay.

Finally Biting the Bullet on Git

OK. I am finally going to bite the bullet and start using Git. This has been on my to do list for a white, but I haven't found the time. So, instead of finding the time I am just going to move open source projects that are currently on subversion over to github.

My plan is that I will then learn Git by necessity. We'll see how that works. It is a little scary to just jump in like this, but I have yet to just "dip my toes in the water" so this seems the best way.

That being said, if anyone has any suggestions for best ways to learn Git as I go or tools I can use to make this easier, I am eager to hear about them.

I have a Git repository set up for the com.sebtools package and for my Neptune framework already. More coming very soon.

Here's to jumping in with both feet! I'll try to blog about my progress.

"Set IIS Root" ColdFusion Builder Extension is Gold

Several months ago, I posted my first ColdFusion extension. It allows me to switch the web root on IIS to any folder in ColdFusion Builder. Since my primary development machine is Windows XP, this has proven pretty handy.

In the intervening months, I have found that I have used this several times a day. In that time, I haven't needed to change the underlying code at all. So, I am going to go ahead and call it a full 1.0 version.

[More]

My First ColdFusion Builder Extension: "Set IIS Root"

I had a magic moment this weekend when my wife and both of our babies were all asleep. I thought to myself "What should I do with this free time?". So, of course, I used it to make my first ColdFusion Builder extension, "Set IIS Root".

The extension allows me to right-click on any project or folder and set it as the web root in IIS directly from ColdFusion Builder. The functionality to do this was originally written by my friend, Jason Holden. Admittedly this is now only useful on flavors of Windows that have IIS, but don't allow multiple sites (Windows XP Pro, but not Windows 2003 or Vista), but I am in that group so it saves me time.

I was a little concerned about how difficult it would be to make an extension for ColdFusion Builder. It turned out to be really easy, taking me about an hour (or less) including the time to learn how to make an extension and to test it out. The ColdFusion Builder development team deserves major kudos here as do the authors of the documentation.

[More]

Preventing Errors

Hopefully some dear readers can help me out with my current quandary.

I have several components that I use on nearly every site that I develop. By using them, I save untold hours of programming and therefore provide cheaper results for my clients. At the same time, I am using solutions that have been tried and proven rather than developing from scratch every time.

There is, of course, a catch to all of this.

[More]

Upgrading My Development Environment

I admit it; I have been behind the times for a while. Most of my ColdFusion development has been on HomeSite and I haven't been much using source control. I started using CFEclipse a few months ago, but I would still switch back to HomeSite with some frequency. I decided, however, that it is time for a change.

[More]

On Code Generation

I just read Brian Rinaldi's article on building a code generator . He lists five steps to build a code generator. I think the article is a good one overall, but it inspired me to point out where I would (and have) done things differently.

His steps are as follows (quoted directly from is article):

  1. the Admin API in ColdFusion MX 7;
  2. accessing database metadata in varying RDMS;
  3. converting this data to a basic XML format;
  4. transforming your XML into code with XSL;
  5. the CFML code necessary to bring the first four parts together into a functional application. 

1. The Admin API in ColdFusion MX 7

Brian uses this to get a list of available databases. I agree that this is nice, but I don't think it is an essential part of code generation. If someone has to type in the datasource, that doesn't completely negate the value of the code generator.

If you choose to use the Admin API, however, you might consider running your code as an extension in the ColdFusion Administrator. If you run your code in the CF Admin and you use the Application.cfm at the root of the administrator (in CFMX 7), then you will have a variable called "variables.factory". This holds the Admin API - and without you having to know the username and password. I don't think that this is a security problem as someone had to enter to the username and password to get your code to run in the first place.

I will also add in that you can see an example of how to do this as well as how to get a list of supported datasources can be found in my CodeCop code checker program.

2. Accessing database metadata in varying RDMS

I agree with Brian that this is an essential step (though Peter Bell has some good thoughts on code generation and the limits of database metadata). The approach that he used, however, means that he has to write different code for each database. He could have gotten the same information by using DataMgr. A call to DataMgr's getDBTableStruct() would get all of the same information for any database supported by DataMgr (which currently includes MS Access, MS SQL Server, MySQL, and PostGreSQL).

3. Converting this data to a basic XML format

This step isn't necessary unless you want to use XSLT for your code generation (see Peter Bell's thoughts on XSLT code generation). Assuming that you want to use XSLT, however, DataMgr can help you out again. In fact, you can skip the previous step and just have DataMgr give you an XML representation of the table structure. A simple call to getXml() will return an XML string for that table. If you need to add more information to the XML, just use ColdFusion's built in XML functions to add data to the XML.

4. Transforming your XML into code with XSL
and
5. The CFML code necessary to bring the first four parts together into a functional application

These two steps are really the same for me. This is the "generate the code" portion of the process. No doubt essential (it is the point, after all). I have already mentioned that XSLT may or may not be the best choice

Let me just mention one other tool that may be of use if you decide not to use XSLT (which is a fine option). 

I have a small component (tag.cfc ) which can be extended to be an object representation of virtually any tag. I have already extended it for cfcomponent, cffunction, and cfargument (as well as some of my own custom tags). You can use it to generate code for virtually any tag. I don't want to imply that it is better than XSLT, just another approach.

Conclusion

I really liked Brian's article. It got me thinking about how I do things differently. I have been intending to work on my code generator again for some time (I actually use it for myself on most new projects, but it isn't quite "ready for Prime Time" yet). Hopefully I can work on that again as soon as I release DataMgr 2.0. 

UPDATE

Here is a handy link to Brian's response (so you don't have to copy and paste from the comment below):

http://www.remotesynthesis.com/blog/index.cfm/2007/1/17/Generating-Code-vs-Generating-Applications  

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.