cf.Objective() 2010 — Day 1

Through work I received the opportunity again to attend the annual cf.Objective Conference held in the Twin Cities. I have attended the conference for the last four years since its inception in 2007. To summarize it is a conference for advanced ColdFusion developers. If you are brand new to ColdFusion you would be better off attending CFUnited. Some session you might see at cf.Objective would be about Frameworks, ORM, CF integration with Flex, etc.

In this post I am summarizing the sessions I attended on the first day.

Adobe Keynote (not really though)

Terry Ryan talked for a while about the new releases adobe has had in the last year (ColdFusion 9, ColdFusion Builder). He mentioned the updated ULA stating you can maintain full Then he demoed some of the features in ColdFusion Builder. He also showed a couple plugins/apps he is building for CF Builder.

  • Code Assist
  • Code Insight
  • SQL Insight
  • ORM Insight
  • CF Builder Plugins with CF
  • Instant Code Review (peer code review over instant messenger)
  • Aptactular (Code generator, not publicly available)

After CF Builder he went over the process of using Catalyst the to create a Flex app and skin starting with a Photoshop mockup.

Overall there was not any new information released. They did preface this presentation with this information.

ColdFusion 9: A New Way of Building Applications

with Daniel Vega

Dan talked about some new features that make development easier in ColdFusion 9.

  • Implicit Arrays — MyArray = { 'value1', 'value2', 'value3' }
  • ArrayFind() — returns the key of a value in an array (0 if does not exist)
  • ArrayContains() — returns a true/false if value exists in an array
  • Script Components — including full language support in script
  • Inline If Statements — # (condition) ? true result : false result #
  • Implicit Structures
  • Components
  • creating an object with ‘new’ operator instead of CreateObject()
  • define a constructor method with ‘initmethod’ component attribute
  • implicit getters and setters with ‘accessors’ component attribute

After his overview of new features he likes he talked about architecting applications (using CF9) features. He went over several examples of bad architecture like “God CFCs” or components that have all of the data and methods needed to interact with data in the database. Ex. Blog.cfc written by Ray Camden. He also mentioned the more recent pattern of creating too many CFCs. Then we get into the ‘new’ ways of doing things.

  • Caching using cfcache
  • fragment caching available in CF9
  • timespan caching
  • idletime caching
  • dependant caching

Dan then demoed a commerce application he created written with the framework ‘ColdMVC’. He urged us to focus not on the framework but on the concepts used to write the specific app.

… at this point I got distracted with ‘urgent’ work stuff. :(

Building High Performing Applications with ColdFusion 9

with Josh Adams

This was apparently a presentation that is given online at Adobe’s website all the time. If you are interested here it is.

Continuous Integration with MXUnit, Ant, and Hudson

with Marc Esher

This presentation was an introduction to CI with ColdFusion using MXUnit, Ant and Hudson, not an introduction to those individual technologies. The idea behind Continuous Integration is to automate tasks a programming does to package and/or deploy code. This kind of automation is intended not only to make workflow faster but to prevent user error.

  1. Programmer Commits Code to Source Control Repository
  2. Hudson Pings the Source Code Repo for changes
  3. Hudson finds a change and runs scripts including but not limited to Ant scripts and running unit test.

Hudson has a nice admin interface that tells you the status of projects and allows you to manually initiate builds. It even provides data about the test results over time. It is very configurable.

You don’t use CI to debug failed test. You use it to tell you what tests have failed.

This presentation mostly made me more excited to learn about unit testing and using ant.

Productive Work Practices

with Peter Bell

In this presentation Peter talked about being more efficient, have better work flow. There were a lot of really good take-aways from this presentation. I have to say it was the most inspiring session I had today. I really hope Peter posts his slides. He did a really good job of breaking things down into logical bullets.

I briefly spoke with Peter after his presentation because I wanted to make sure I could get to the slides, but also because I was interested in whether he had heard of and uses Getting Things Done (GTD) by David Allen.

Build a Better Search with Apache Solr

with Shannon Hicks

Solr is an open source search engine that runs on Java and is included in CF9. It is made to search not just documents but all kinds of data. It is also a java framework that can be extended to meet specific needs. Solr is implemented in a very basic way with ColdFusion 9.

If you want to use Solr as a really fast version of Verity, you can use cfindex and cfsearch.

Based on Shannon’s demo (which was not exactly simple, mostly because of the nature of the content) it is very clear that Solr is far more powerful than Verity. Solr uses xml configuration files to define how solr acts, what data to index, and how to return the information when the index is queried. The two major configuration files are solrconfig.xml and schema.xml.

One interesting feature he highlighted was Solr’s built in spell check functionality. Which much like google, allows you to offer spelling corrections in your search results.

Someone asked about indexing collections of binary documents like PDFs and Shannon mentioned another apache project called Tika that performs such tasks.

End of the day. Back to the office to complete some work.