Going Through ColdFusion Koans

Recently, Ryan Anklam started up a project called ColdFusion Koans. Here is the description:

The ColdFusion Koans are intended to help newcomers and veterans alike learn or fine-tune their ColdFusion programming skills. This is a community driven project so everybody is welcome to contribute new tests!

This is a fabulous idea which can only benefit the CF community, especially since so many of us have had to learn the language while "on the job" and sometimes find that their time is spent mostly on billable work, which leaves little or no room for self-improvement. The Koans exercises are simple enough that you can just keep the folder on your development environment, and set a browser window, and work through the exercise when you need a break from trying to fix that perplexing bug.

I had fun going through it. It did take a while for me to get the hang of it. But I finally figured out that the goal is to first work through one koan section, entering what you think are the right variables. Then you go back to the browser window and reload to see which passed and which failed, then go at these again until you get these passed. Try not to peek at the error info before working through the exercises. Right now, I have 73% - some of my successes surprised me because I'm just terrible at math (I have some sort of a math disability that results in math concepts not really sticking in my mind). The others I've been trying to figure out where I went wrong; some CF concepts I've not really had much experience with.

So, the next step is to go through my CF references and hopefully find the answers, and then add to the git project and send Ryan a pull notice. I encourage you all to do the same! If we all pitch in, we can come up with something like Ruby Koans.



How I Got Started in ColdFusion

First of all, I would like to thank Steve Bryant for coming up with this brilliant idea. I've spent quite a few minutes reading the posts. It's really interesting as to how diverse these experiences are.

I've always been interested in computers, but more from the "all those people are using computers and I better learn what it's all about" perspective. I remember when my father bought a TRS-80 computer for me and my sister to play with. I would spend time going through magazines and typing in the programs so I could play games. In high school, I had a friend who was in the science and tech program, and I would hang out with her in the computer lab while she played Zork.

So, when I went off to college, I declared computer science as my major as that was the first thing that came to my mind that sounded appealing. Unfortunately, that's when the reality that my math skills was seriously lacking kicked in, and I switched over to journalism (resulting in a better GPA). I got an on-campus job working in the Marketing Department at the Dining Services. There, I was introduced to the wonder of desktop publishing on Macintosh Plus (I still can't quite get over the fact that we had to do page layout in PageMaker on a 9" screen).

Years later, I was in between jobs, and finding that it was increasingly more and more difficult to get a job in desktop publishing, as it was now something that everyone could do right from their office and take the printing job over to the local printer. This was at the time when the Internet was becoming more popular and everyone were setting up their own website. So, I got an HTML book, created some samples, got some freelance jobs setting up websites, and eventually got hired by a small company (which subsequently got bought out by a bigger company which then got bought out by a still larger company) that specialized in collecting and analyzing health and education data for state and federal agencies, and institutions such as HHMI. I continued to do static web page development (all those nested tables and heavy use of FONT tags to get precisely the layout that was needed).

At the time, the company had an in-house scripting language (WebInterchange, WebIC for short) that was very much like ColdFusion; the only difference was that it used "##" as the opening and closing tags. There was a need for more programmers, so they offered workshops to anyone interested in learning this scripting language. I thought this would be a good opportunity, especially as I was getting bored with HTML programming. John Theis was one of the instructors, and I subsequently joined his team. He was one of the best bosses I've ever had and I learned so much about him. I still remember his maxim about how you should always start with a good, well-thought out database as the base; without that everything would eventually fall apart. (If you're still out there, John Theis, thank you!)

The programmer in charge of developing WebIC left without handing over the master key to the source code. Despite that, we continued to use the language, but eventually we switched over to ColdFusion. My team got assigned to a project that required ColdFusion; that would have been sometime in 2000 or so. I believe we started out with ColdFusion 5 and quickly moved to CF MX; that's the version I remember most vividly.

These days, I'm more of a project manager than a developer in the business venture that I'm working on, but I'm still a big fan of ColdFusion and I'm constantly amazed by what it can do, and I continue to believe it has a great future, especially with the wonderful community at its core.



A Comment on the Recent Controversy

Normally, I don't really get involved in controversies, because I don't really like getting involved in something I know little about and I'm not skilled at debating or such.

But here's something I'd like you all to think about.

Which part of this picture do you think is the most important?



Questions to Ask a Front-End Designer?

I've been working a project, and we've reached a point where we need to bring in a front-end designer. While I know CSS well enough to tweak it, I know when I'm out of my elements and better off handing some of the tasks over to someone who lives and breathes CSS and dabbles a bit in HTML5. I have a few ideas of the questions I'm going to ask, but what about you? What should I watch out for?



The Panic Status Board - What a Cool Idea!

Panic Status Board While checking my RSS feeds, I came across a really interesting post at the Panic blog In it they described how they came up with a status board to keep track of their projects, the number of bugs filed and resolved, and other details. I've selected a quote from the blog listing what is on display in the status board displayed here:

The idea quickly grew beyond "Project Status", and has become a hub of all sorts of internal Panic information. What you're actually looking at is an internal-only webpage that updates frequently using AJAX which shows:

  • E-Mail Queue - number of messages / number of days.
  • Project Status - sorry for the heavy censorship - you know how it is!
  • Important Countdowns
  • Revenue - comparing yesterday to the day before, not so insightful (yet).
  • Live Tri-Met Bus Arrivals - when it's time to go home!
  • The Panic Calendar
  • Employee Twitter Messages
  • Any @Panic Twitter Messages - i.e., be nice! They go on our screen!
[From Panic Blog - The Panic Status Board]

Now, this is really clever and struck a chord, as you can see from the comments thread. If you want the code for rolling your own, well, the Panic folks haven't released it, but they give you hints, such as using CSS3, and what to get as the display screen. Not to be deterred, someone has already set up a project titled Statusarchy in an effort to roll their own version. I'm sure a ColdFusion version could be rolled as well. I'm not going to do this because I don't have an office with a budget large enough to buy this really cool display, and a team working on several projects. But I'm sure some of you will be inspired to roll your own!



More Entries