Review Board: Code Reviews Made Easy (Installation)

We’ve been talking a lot about improving our code at work and code reviews have come up several times, and we’ve even had a few informal code review but they always seem a bit tedious. I dug around a bit looking at online tools too help and discovered Review Board:

Review Board is a powerful web-based code review tool that offers developers an easy way to handle code reviews. It scales well from small projects to large companies and offers a variety of tools to take much of the stress and time out of the code review process.

What I liked about Review Board was it’s integration with version control (in our case SVN, but many others are supported) which allows for reviews of small bits of code, pre-commit.

The work flow goes something like:

  1. Make a change to your local source tree.
  2. Create a review request for your new change.
  3. Publish the review request and wait for your reviewers to see it.
  4. Wait for feedback from the reviewers.
  5. If the reviewers approve of your changes:
    1. Submit your change to the repository.
    2. Close the review request.
  6. If the reviewers have requested changes:
    1. Update the code in your tree and generate a new diff.
    2. Upload the new diff, specify the changes in the Change Description box, and publish.
  7. Rinse and repeat the review cycle.

So pull up a chair, get comfortable and lets install Review Board…

Read More »

Ant Presentation Files

I’ve finally bundled up my Ant presentation files.  I recently gave this presentation at TACFUG (Triangle Area ColdFusion User Group) and got some pretty positive feedback.

Hopefully now with the examples – people who attended can hack these up and do something useful with them!

This file contains:

  • Older PPT version of the presentation I gave on CFMeetup (it has more useful notes in it)
  • JAR files for additional Ant task (there may be newer versions of these but they should get you started)
  • Some example files including a version of the code we use at work (Qasim Rasheed did the macrodef code)

DownloadAnt Presentation (103)

Please note:  Ant can MOVE, COPY, OVERWRITE and DELETE files on your localworkstation and/or production servers, etc.  I take no responsibility if you blow something up with these scripts!! :)

For more information on Ant please check out my wiki:   http://www.thecrumb.com/wiki/ant

Update: If you download these files and do something useful with Ant – please let me know!  I’m always interested to see what people are doing with Ant!

Railo Express – Quick and Dirty CFML Server

During the recent Adobe User Group Tour – I had to whip up a little app to randomly pick some winners from our RSVP list.

Easy enough but when I went to code it on my laptop I realized I had never installed ColdFusion on it.  Oops.  I was a bit pressed for time and really didn’t want to mess with getting IIS/Apache running and the long ColdFusion download and install.

I vaguely remembered something about an “Express” version of Railo and a quick visit to getrailo.org and I was downloading a reasonably sized 60mb zip file.

Railo Express is a live version which means that it does not need to be installed. Just extract the zip file it onto your computer and without further installation you can start. This is especially interesting if you e.g. would like to get to know Railo and want to test your applications under Railo or simply use it as development background.

Unzip.  I clicked start.bat,  Railo spooled up and 30 seconds later I had a running CFML server sitting at localhost:8888!   Wow!

So now I’ve got a copy of Railo Express stashed on my USB drive I carry around.  Super convenient to have a CFML server available with no installation required and no services running hogging up resources.

Using Environment Properties In Ant

Tinking around with Ant I found out you can reference system environment properties within your build file.

So in Windows for example you can run SET at the command line and get a long list of properties:


U:\>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
ANT_HOME=D:\ant
APPDATA=C:\Documents and Settings\priestj\Application Data
CLIENTNAME=zappa

You can easily reference these in your build file – first set property environment to “env”:


<target name="echo">
<property environment="env"/>

</target>

Now we’ll add some of our Windows system properties (note these are case sensitive!):


<target name="echo">
<property environment="env"/>
<echo message="env.ALLUSERSPROFILE:   ${env.ALLUSERSPROFILE}" />
<echo message="env.ANT_HOME:   ${env.ANT_HOME}" />
<echo message="env.APPDATA:   ${env.APPDATA}" />
<echo message="env.CLIENTNAME:   ${env.CLIENTNAME}" /> </target>

Running this we can see these properties are picked up by Ant!


Buildfile: D:\build.xml
echo:
[echo] env.ALLUSERSPROFILE:   C:\Documents and Settings\All Users
[echo] env.ANT_HOME:   C:\eclipse\plugins\org.apache.ant_1.7.0.v200803061910
[echo] env.APPDATA:   C:\Documents and Settings\priestj\Application Data
[echo] env.CLIENTNAME:   zappa

Enterprise Level Wiki and Issue Tracker For $5 Each

Check out the Atlassian Stimulus Package!

$5 / 5 days – get…

  • JIRA ( Issue tracker – 5 users )
  • Confluence ( Wiki – 5 users )

So for a whopping $10 you can have an enterprise level bug tracking and documentation system in place!

They are raising money for Room To Read

Who help improve education in the developing world by establishing libraries, schools and more.

This was announced on Monday and they’ve already reached their $25,000 goal!

On the Atlassian Developer blog Adrian Hempel has a nice write up on how you can  Setup Jira and Confluence in Minutes by running in Amazon’s Elastic Compute Cloud (EC2).  

Making Your Build Files User Friendly

I’m working on a build file for the Model-Glue project and want to make it as user friendly as possible.  Turns out this is very easy in Ant!

First always include a description in your build file – you can be a bit more verbose, I kept this short for the example:


<description>
Ant script to create new Model-Glue 3.0 application.
</description>

Of course if anyone edits your build file they will see the description, but we can also display this when the build file is first run. First I make my default target ‘help’:


<project name="Model-Glue" default="help" basedir=".">

Then create a ‘help’ target:


<target name="HELP" description="Displays a list of help to the user.">
<java fork="no" classname="org.apache.tools.ant.Main">
<classpath>
<fileset dir="${ant.home}\lib">
<include name="**/*.jar" />
</fileset>
</classpath>
<arg line="-projecthelp" />
</java>
</target>

This is simply running the exec task and running Ant with the ‘-p’ switch (which is short for ‘-projecthelp’ which simply prints a list of the build files targets as well as the description.  In all our other targets we’ll make sure to include a ‘description’:


<target name="build"  description="Copy Model-Glue files to new
project directory.">
<echo message="Copy Model-Glue!"/>
</target>

Now if we run our build file we’ll see something like the following output (either at the command line or in the Eclipse console:

D:\>ant
Buildfile: build.xml

help:
 [exec] Buildfile: build.xml
 [exec]
 [exec] Ant script to create new Model-Glue 3.0 application
 [exec]
 [exec] Main targets:
 [exec]
 [exec]  build  Copy Model-Glue files to new project directory.
 [exec]  help   Displays a list of help to the user.
 [exec] Default target: help

Now the user can easily determine the purpose of the build file and see a list of possible targets to run.

Where Does CFEclipse Fit In An Open CFML World?

old_carsLately with all the news about open source CFML I’ve been wondering where CFEclipse fits in?  We all know Bolt is on the horizon but being an Adobe product I simply don’t see it supporting the other CFML engines.

While CFEclipse certainly isn’t going anywhere – I do wonder about it’s future. Mark Drew has moved on to Railo (a good thing!).  While Mark has stated CFEclipse is not dead, I do wonder how much time he will realistically be able to commit to the project.

So What’s The Big Deal?

I use CFEclipse everyday and it does work, but much like a car, without regular maintenance things begin to fall apart.  Today there are over 200 open tickets in the CFEclipse bug tracker.  The Adobe ColdFusion Extensions are broken.  And I wonder if interest is waning because Bolt is coming?

The Future

I’ve always thought that CFEclipse should be an open “CFML” editor and given the Eclipse plugin architecture it seems like CFEclipse could be built to support the CFML Advisory Board’s ‘core’ CFML language by default and other vendors could supply plugins (free or commercial) that would provide language support for their products. Grand ideas for sure…

The Solution?

I’m not sure what the solution is?  People on the mailing list have openly stated they would be willing to pay to have features added to CFEclipse. But who to pay is the question?  While we have an abundance of users -  people with the time, skills and knowledge to work under the hood have been hard to find.

It may be too early for this but I have wondered if the new CFML kids on the block (OpenBD and Railo) would have spare resources available to help support CFEclipse?

For years the biggest complaint about ColdFusion was the lack of a good IDE.  CFEclipse has filled that gap, and with the alternatives (Bolt, Homesite and Dreamweaver) being Adobe products -  the CFML community will have much to gain by keeping CFEclipse healthy and open.

Why Closed Source Frustrates Me And Another Plea To Adobe

Today I’ve been thinking how great open source is…

  • All the recent Railo and OpenBD news – big things for CFML!
  • E Text Editor goes ‘open company‘ (now maybe we’ll see a Linux version!)
  • And my daily work with JIRA is enhanced because I know I can peek under the hood at any time…

And then I get an email on the CFEclipse mailing list about the ColdFusion extensions from Adobe being broken.

Usually when people post off-topic items on the CFEclipse mailing list I try to help out as much as possible.  But in this case I really can’t do squat and it’s frustrating.  I’ve blogged about the ColdFusion extension issue before:  Dear Adobe, The Eclipse Extension Is Broken…

But…

  • The extension source is closed so no one outside of Adobe can do anything to help fix it
  • Adobe has no public bug tracker for their tools (except Flex) so I don’t know where to ‘officially’ go to report an issue

So I’m left to whine on my blog and hope someone from Adobe stops by…  Ben Forta actually responded to the thread above but his anwser was a bit vague.  It sounds like this CF Extension functionality will be rolled into Bolt but will there still be a free version available for Eclipse afterwards???

Copyright © 2007 thecrumb.com. All rights reserved.