Monday, June 4, 2012

*Updated* ColdFusion Koans Contribution Drive - Win A Copy Of CFBuilder!

**Update New Screencast**

I've just added a screencast to show you how easy it is to contribute without having to touch Git at all!

The title says it all, its time for another ColdFusion Koans contribution drive.  One thing that the title does not say is that I'll actually be giving away TWO copies of ColdFusion Builder!   Adobe has been generous enough to sponsor this drive and donate the two copies of ColdFusion Builder,  I can't thank them enough for their generosity.  

Now its our turn as a community to show Adobe what we can do.  Right now the Koans test suite sits at 80 lessons, I'd like to see that at least double. Please share the word with your fellow developers, tweet about it, blog about it.   Lets rise up and show Adobe how awesome the ColdFusion community really is and how much we care about the next generation of ColdFusion developers learning not only the ColdFusion language, but the proper way to write professional code.

In addition I'll  send a GitHub sticker for the first 9 people who submit a pull request that is brought into the Koans project.   Don't worry, there aren't many reasons why I won't accept a test; only if I find something incorrect with a test or a test is duplicating an existing test will I not pull something in.  In those cases I'll likely just ask you to correct something and resend the pull request instead of flat out rejecting anything.

I'd like to thank Mike Henke and John Whish (of ORM Book fame) who have graciously volunteered their time to help me review the entries to make sure the Koans project is a high quality learning tool for everyone.

What are the Koans?  

By now you are either ready to get to work or  you are completely lost.  If you are lost let me back up a second and explain the Koans project.  Here is a little introduction to the ColdFusion Koans post I did awhile back, and here is a screencast on getting started with the Koans.   In summary, the Koans are a set of unit tests that are designed to teach people ColdFusion and Unit testing at the same time.  You download the Koans, copy the directory to your webroot, open index.cfm, then edit the source code to make all the tests pass.

What should I add?

There is a Readme included in the project's source file that has a few suggested topics such as new ColdFusion 10 functionality, more unit testing lessons, and object oriented topics.   However feel free to add anything you think would be useful to someone learning unit testing or ColdFusion.  Add a test for a particular tag you find yourself using a lot.   Add a test for a pattern you find particularly useful.  Be creative!

I don't know anything about unit testing. 

Thats just fine, and the Koans are for you!  I suggest working through the Koans (you'll even get an entry for doing so, see the "How Will The Contest Work") and I'm sure you'll learn a thing or two about unit testing and come up with an idea or two to make the Koans even better.

How Will The Contest Work?

Now that I've gotten that out of the way let me tell you how the contest will work.   Each new test added to the Koans project will get you one entry into the drawing  (If you have no clue where to start see the "I don't know GitHub Section" below).  If you add 5 new tests you'll get 5 entries into the drawing.   If you complete the Koans project and tweet a picture of the completed koans with the hash tags #ColdFusion #Koans you'll get an entry into the drawing.   If you blog about the Koans you'll get an entry into the drawing.   I'll be selecting the winners on June 30th at approximately 12:00 PM central time.

I Don't Know Git or GitHub!

This is yet another reason to contribute, adding a simple test and sending me a pull request is a great introduction to Git and GitHub!  The best part is that GitHub makes things so easy you don't even have to install Git or know a single Git command to contribute.   To do a Git-less pull request follow these steps:

  • Click on the Download as .zip link to download the Koans source code.

  • Extract the .zip file into your webroot and rename it to something a bit more friendly, I use ColdFusion-Koans.
  • Open the  directory in your browser, typically something like http://localhost/ColdFusion-Koans/index.cfm to make sure everything is working.
  • Open any of the Lesson files in your favorite IDE or Text Editor.  The lesson files are located in the "Koans"  directory, each lesson has its on .cfc.
  • Add a new test to any of the lessons by adding a new function that is public in visibility.
  • Refresh index.cfm in your browser to make sure that everything looks good.
  • Assuming that you have a GitHub account (if you don't it only takes a second to signup), goto the Koans project page and browse to the .cfc file that you just edited.  Click on the "Edit This File" button.  
  • Copy and paste your code from your IDE into the text editor GitHub provides.
  • Add a descriptive Commit Message below the code and click on "Propose File Change"

That's it.  I'll get the pull request and bring your changes in.

If you have any questions please feel free to contact me at or on twitter at @bittersweetryan.  Good Luck Everyone!
Fork me on GitHub