An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Entries for month: November 2009

FW/1 passes 1,000 downloads milestone!

November 24, 2009 ·

Framework One, now at version 0.7.7 thanx to the continued hard work of team member Ryan Cogswell, today surpassed the milestone of a thousand downloads!

[Read more →]

Tags: fw1 · coldfusion

On Hal Helms, Ruby on Rails and the Death of ColdFusion and Fusebox

November 22, 2009 ·

About two weeks ago, Hal Helms blogged that he is leaving ColdFusion for Ruby on Rails. Naturally it stirred a lot of the traditional "is ColdFusion dead?" worrying from the community, so much so that Hal posted a follow-up on ColdFusion's death which suggests we focus on the value of applications, rather than any specific technology. Hal's been a father figure for a lot of CFers. His podcasts and blog posts have always been good listening / reading, with a lot of thought-provoking content. He was one of the early evangelists for OO in ColdFusion although more recently he's pulled back from this position and said several times that he feels certain "gurus" are pushing OO too hard and spreading misinformation (although he wouldn't name any names, which kinda created more heat than light and left a general sense of FUD around OO in some parts of the community - like we needed more of that!). Hal listed half a dozen reasons for his shift from ColdFusion to Ruby on Rails and I'd like to talk more about those reasons in this blog post.

[Read more →]

Tags: oss · fusebox · coldfusion

Google Wave - Disappointed?

November 19, 2009 ·

As Google Wave rolls out more invitations, I'm seeing a lot of people complaining that it doesn't seem to do much useful stuff. I'm actually finding Google Wave very useful. So why do I like it and many other people don't? I came across a great blog post by Daniel Tenner that asks "What problems does Google Wave solve?" where he talks a lot about what Google Wave is not and that provides a big clue as to why many people aren't finding it very useful. Most of the complaints and confusion I see are from people whose experience is just public waves. That's understandable. We have no point of reference for completely open collaboration tools, except perhaps wikis. But a wiki has (some) structure and has 'pages' and 'content' and a sense of navigation. That's missing from Google Wave - by design, since that's not what it is aimed it. Public waves really are a waste of time (in my experience so far). Where Google Wave really shines is in closed group collaboration. If you have a team that is working on a project that needs to refine ideas, concepts, proposals, documents and be able to maintain discussion threads in context, then Google Wave can be very effective. Waves work best when they have a narrow focus and a set of dedicated contributors - rather than some random, open-ended topic and a big crowd of people going "So, what's this Google Wave all about then?". And, no, I don't have any invites at the moment. I'll tweet when I do.

Tags: personal

FW/1 Team Expands!

November 17, 2009 ·

I'm pleased to announce that Ryan Cogswell has joined the Framework One team as a committer! Ryan has been providing excellent feedback on the framework for quite a while and always provides suggested code changes with his ideas. I've been incorporating almost everything that he has raised so I felt it was time to provide him with full Subversion access and become a full-fledged member of the development team. Ryan's recent additions to FW/1 include a number of enhancements that make the framework more robust and more flexible, especially around error situations or accidental misuse of certain framework features - which all help developers be more successful with FW/1. The latest enhancement from Ryan is the ability to string together multiple FW/1 applications as "subsystems" so that URLs can take the form app1:section.item and app2:section.item, allowing for modular construction of large, complex applications. New modules can just be dropped in alongside existing modules and seamlessly integrated! Nice work Ryan - thank you! As the FW/1 mailing list has grown to nearly 80 members since I launched the project in late July and several people have sites in production based on FW/1, I'm going to start blogging more here as I feel it is now realistic to start promoting FW/1 as a serious option for CF developers at large who are looking for a framework that provides structure without getting in the way. I'll be submitting talks to cf.Objective() 2010 and CFUnited 2010 that will introduce FW/1 to a larger audience (if the talks are accepted, of course)!

Tags: fw1 · coldfusion

cf.Objective() 2010 - Call For Speakers

November 12, 2009 ·

Updated with the PDF to download to make the process easier!
cf.Objective() 2010 is ramping up and is ready for the public call for speakers and topics! We have the same broad tracks as last year:
  • Architecture & Design in Software
  • RIA: Flex/Ajax/AIR
  • Process & Methodology
  • Integration & Tools
If you're interested in speaking, download the speaker request form (PDF, 152KB), fill it out and then send it to Jim Louis per the instructions in the form. The PDF has all the delivery dates, speaker consent agreement and so on. Topics must be submitted by November 30th! You have about two weeks. Some background on the cf.Objective() selection process... As I previously blogged, we have a twelve person content advisory board this year who have already come up with suggested topics for about 80% of the schedule and invitations have gone out to an initial list of speakers (usually two or three per topic). Many of those speakers have already replied (they also have until November 30th) and we're starting to sift through their submissions to pick the best one for each topic. The public CFP will help us fill the remaining 20% of the schedule. This process us ensures we have a well-rounded set of topics as well as letting us get at least part of our schedule organized and posted before the end of the year to help folks decide to register with their company's year end budget!

Tags: coldfusion · cfobjective

Restarting Railo with Ant

November 10, 2009 ·

On Twitter, Marc Esher just asked if my Scala compile-deploy process also included restarting Railo to pick up the new JAR file. Yes. I do it via Ant as follows:
<target name="restartrailo" description="Restarts the Railo server.">
      <get
         src="http://${server.name}:${server.port}/test/command/restart_server.cfm?admin_password=${admin.password}"
         dest="${www}/test/command/restart_output.txt"/>
      <loadfile property="restart.status" srcFile="${www}/test/command/restart_output.txt"/>
      <echo message="Restart status: ${restart.status}"/>
      <delete file="${www}/test/command/restart_output.txt"/>
   </target>
restart_server.cfm looks like this:
<cfsilent>
   <cftry>
      <cfadmin
         action="restart"
         type="server"
         password="#url.admin_password#"
         remoteClients=""/>

      <cfset status = "RESTARTED"/>
   <cfcatch type="any">
      <cfset status = "FAILED: #cfcatch.message# (#cfcatch.type#)"/>
   </cfcatch>
   </cftry>
</cfsilent><cfoutput>#status#</cfoutput>
A failure to restart Railo does not cause the build to fail (but it probably should - I ought to set the HTTP status to 500 if I get an exception to cause the Ant get task to fail).

Tags: railo

Compiling Scala code with Ant

November 10, 2009 ·

I'm working on a Railo project that is using some Scala code for part of the system and I'm using Ant to drive the build process. The Scala website has a lot of tools and documentation and you can read about compiling Scala with Ant for the basics of how to get started. What they don't cover there is what is needed to bundle up that compiled Scala code and put it somewhere that Railo can get at. Here's the Ant task I use to create and deploy a JAR:
<target name="publisher" depends="build-scala,docs-scala" description="Deploys the Publisher and generates its documentation.">
      <jar destfile="${www}/WEB-INF/railo/lib/Publisher.jar" basedir="${build.dir}"/>
      <copy file="${scala.home}/lib/scala-library.jar" todir="${www}/WEB-INF/railo/lib"/>
   </target>
${www} defines my web root and ${scala.home} defines where Scala is installed on my system. Read on for more details of the build-scala and docs-scala tasks...

[Read more →]

Tags: coldfusion · oss · railo

TextMate, CFML, Scala, Git

November 10, 2009 ·

Another note to self. I love TextMate! It's my primary code editor for most work these days (on Mac OS X). It's lightweight and extensible and there are lots of bundles available for it. Rob Rohan has created TextMate bundles for ColdFusion, Railo and BlueDragon - I use the Railo one day-in, day-out and I'm very happy with the syntax highlighting and shortcuts it provides. I've also started doing some Scala work recently and there is a pretty good TextMate bundle for Scala as well. And of course a bundle for Git - which is also self-updating (from git)!

Tags: osx · oss · railo · coldfusion

What Makes Better Code?

November 09, 2009 ·

As you might guess from some of my tweets and blog posts lately, I've been reading more about Agile, Lean and XP software processes, looking at how I can improve my own working practices and those of the teams I work with. Once again the XP mailing list has provided a good read with a link to large-scale research at Microsoft into the effectiveness of certain software practices. As the researcher points out, the vast scale and diversity of Microsoft's software development ecosystem allows for some in-depth analysis that compares different approaches on similar teams. The article is worth reading all the way through and shouldn't really contain any surprises but there are a couple of things I wanted to pull out and highlight.

[Read more →]

Tags: tdd · programming

Running Railo 3.1.1.017

November 09, 2009 ·

Although this blog is often running on a bleeding edge "dev" release of Railo, I want to draw your attention to this version as it is a "preview" release, in preparation for our upcoming 3.1.2 public release. If you're comfortable running pre-release software, please consider updating to 3.1.1.017 and helping us test this prior to the public release. You can read more about the 3.1.1.017 preview release on the Railo blog.

Tags: oss · railo · coldfusion