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.

How I got Started in ColdFusion

After having announced "How I got Started in ColdFusion" day, I feel obligated to write mine.


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.

August 1, 2011 is "How I Get Started in ColdFusion" Day

During the cf.Objective() conference at which I was a speaker (I did mention that I would work that into all future anecdotes!), I got into a conversation with some other developers (including Tony Garcia and Greg Moser) about how we got started in ColdFusion. I realized two important things:

1) Every "How I Got Started in ColdFusion" story is interesting. I have heard dozens so far and I have found each and every one of them to be interesting.

2) Very few of these stories seem to match how we expect people to get involved in ColdFusion.

So, I propose that all of us post a blog entry on August 1 telling how we got started in ColdFusion. If you don't have a blog, send me your story and I will post in on my blog.

This could be a really good way for our community to get a feel for how people really get into ColdFusion, which can help guide our discussions of what we can do to better spread the word.

I'm looking forward to hearing/reading how more people got started in ColdFusion!

SQL Excluding Record sets

I was eating with another speaker at cf.Objective() (I am resolved to find a way to work my having spoken at a conference into all future anecdotes) and an interesting SQL question came up: How to delete everything except the first 1000 records. To my mind, this brought up a general class of problems in SQL. Which is, returning results that exclude the result of a query.

With that in mind, let's look at a few of those.


Neptune Programs: RSS Reader

It looks like my "one new Neptune program per month" goal got missed by a bit. I am going to blame a combination of cf.Objective, a recent vacation and associated upsurge in work.

In any event, here is the program for June (with only days to spare). RSS Reader is a simple program to get RSS feeds and display them on your site. While you could certainly use <CFFEED>, it is slow to get feeds on every page request and <CFFEED> sometimes has bugs (RSS Reader itself uses Ray Camden's rss.cfc under the hood).


cf.Objective Custom Tags Presentation

I had the high honor and great opportunity to speak at the most recent cf.Objective() conference.

If you haven't ever been to this conference, I would highly recommend it. This was the sixth year of the conference (my third) and it was fantastic all around. The other presentations were universally good (if not great). As always, I learned a lot - both in the presentations themselves and in conversations with other speakers and attendees.

For my part, I gave a presentation title "Don't Forget About Custom Tags", attempting to convince people that custom tags are still relevant and a great tool to have in your toolbox (and one which should be used frequently).

I zipped up the presentation (PowerPoint file and code) for anyone interested in seeing it.

I felt a bit more nervous than I expected, so I felt a little flat, but hopefully people enjoyed the presentation and I will get the opportunity again (I'll find out the answer to the first when I get the chance to read the reviews).

Thanks and congratulations to all of those responsible for putting on another great conference!

Scheduler Program

One thing that I run into frequently in my programming life is the desire to schedule events. I like CFSCHEDULE, but by iteself it has a few limitations that I don't like. It is a bit limited in the intervals available and I have to have an HTTP page set up for it.

What I want is the ability to schedule a CFC method to be run directly from that CFC. Fortunately, Scheduler.cfc allows me to do just that. Scheduler.cfc itself still requires a scheduled task to run it. Scheduler.cfc also has the ability to report data about the scheduled tasks that it has run, but (as it is just a CFC) it doesn't have a UI to report that data.

The Scheduler program solves both of those. It is essentially a wrapper for Scheduler.cfc. When the program is installed (copying it to a folder after installing Neptune), it automatically creates a "/schedule.cfm" and creates a ColdFusion scheduled task to execute it every 15 minutes (you can, of course change that). It also creates a page that reports all of the scheduled tasks running on the system as well as how long they execute (in seconds) on average, as well as the ability to see details of every time that they have run.

This information can be invaluable if you are trouble-shooting a scheduled task.


Neptune Framework in Beta 2

It took a little longer than I had hoped to get this out - mostly owing to being behind on a number of other things. Even so, I am really excited about this release of the framework.

For an overview of what Neptune is, you can read the Neptune framework announcement or see the Neptune documentation.

So, what's new in Beta 2?


English-Friendly Interval Calculation

I am working on a small program to digest and store RSS feeds (in part using Ray Camden's nice RSS.cfc). One thing I ran into is that I want to be able to specify how frequently feeds should get updated. It seems obvious that I should have an argument for this in the init() method of my CFC. What I don't want, however, is to either limit myself to one interval (days, for example) or to have multiple arguments just for the interval.

Moreover, I really want to be able to specify the interval in a human-readable format. So, I created a UDF (implemented as a method in my CFC) to make date calculations based on a readable string indicating the interval.

Here are some examples of intervals that it will calculate:

  • daily
  • annually
  • every day
  • every other minute
  • every 3rd quarter
  • every fourth year
  • every other Saturday
  • 4th Saturday
  • three weeks
  • 2 months, 2 days, 11 minutes
  • - every second Sunday

Most of these should be pretty obvious, but the last two might require a touch of explanation. The UDF will accept a comma delimited list, in which case it will apply all of the intervals to the date given.

If the interval starts with a "-" then it will subtract the interval given. The subtraction will only apply to the entire interval, not to single items in the list.


More Entries

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