I've been thinking about caching strategies for different scenarios lately. I wanted to write down a some thoughts on what seem to have been working for me. Hopefully this will help me organize my thoughts and maybe others can help tell me if my thinking makes sense or if I am missing something.
Despite not being a big fan of Beans generally, I do find that there are situations in which they are useful. One of those is as configuration objects to pass in to a component. I can add the data in one packaged set.
In reading about Clojure recently, one of the big advantages of Clojure is immutable variables. I wouldn't want immutable variables in ColdFusion all of the time, but it would be really nice sometimes.
We have been using basically the same exception handling strategy for several years. It has worked pretty well in all of that time, but we recently decided to switch it up. Our previous exception handling system (the one that we have been using for years) made sure not to display valuable information to users, but did send us an email with the pertinent information.
This made for a system that was reasonably secure (in that it didn't share any sensitive data on screen), but still allowed for us to quickly find out about any problems so that we could take care of them.
I love SVG. I remember when I first heard about it (in 2002) and I just loved the idea. Images made of text! I remember being excited about generating images with dynamic data from my server-side code. I didn't have a problem that I could solve with it yet, but that didn't stop me from immediately buying two books on SVG ("Teach Yourself SVG" and "Designing SVG Web Graphics").
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:
I am a ColdFusion addict. Besides programming in ColdFusion, I also spend time reading about ColdFusion (and not enough - yet - reading about other languages). I check up on CF-Talk at least every couple of days and follow ColdFusion lists on LinkedIn and sometimes on Facebook. I follow several ColdFusion programmers on Twitter and even visit the Adobe ColdFusion Forums sometimes.
In all of these forums, one question seems to come up more frequently than any other: "Where should I host my ColdFusion web site?". After reading that question dozens (maybe hundreds) of times, it finally dawned on me that this is a demand that needs to be met. People need a good resource for ColdFusion hosting.
For myself, what I always wanted was an easy way to see which ColdFusion hosting plans met my specific criteria (for example, a ColdFusion plan that supported SQL Server and allowed CFEXECUTE). Doing that proved to be quite difficult, actually - especially as the number of criteria increased. So, I built what I wanted to exist.
On the first day of last month, we had a fun "How I Got Started in ColdFusion" day. The response was much bigger and better than I expected. Including blog entries, "How I got Started" stories in comments on different blog entries, and one Google+ entry, I have found and compiled 110 responses (sortable and filterable page of all stories I have found so far).
Where I could determine the answer, I tracked what version of ColdFusion each person was using and which year they started (though I did not attempt to determine one from the other). I also tracked broad categories of how people got started. One interesting thing that came from this was to see that there are really two different ways people get started in ColdFusion.
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.
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!