An Architect's View

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

An Architect's View

Speaking at cf.Objective() 2013

January 9, 2013 ·

I just got notified that my proposals for cf.Objective() 2013 were accepted. Here are the titles:

  • Learn You a What for Great Good?
  • ORM, noSQL and Vietnam
  • Humongous MongoDB

What are each of those about?

Learn You a What for Great Good?

"The Pragmatic Programmer", a landmark book by Andrew Hunt and Dave Thomas, advocates learning a new language every year. Whilst many people think that's an unrealistic goal, the idea behind it is to expand your toolbelt and to absorb new ways of thinking about problems - language shapes thought.

In this talk, we'll look at a handful of different languages and see how idiomatic solutions can differ dramatically across different languages. The goal is twofold:

  • to encourage you to investigate other languages in addition to CFML
  • to help you approach problems in CFML in a new light

In addition, you should gain insight into the following:

  • collection classes (in other languages)
  • how to use CFML arrays and structs more effectively
  • the power of closures
  • integrating other languages into a CFML application

Examples will be drawn from JavaScript, Groovy and Clojure amongst others!

(The title of the talk is a nod to the classic book "Learn You a Haskell for Great Good")

ORM, noSQL and Vietnam

In 2004, Ted Neward famously coined the phrase "Object-Relational mapping is the Vietnam of our industry". Jeff Atwood reprised the theme in 2006 in his blog post "Object-Relational Mapping is the Vietnam of Computer Science". With ColdFusion 9 and Railo 3.3, CFML developers got access to ORM and there was much rejoicing! But is ORM all it's cracked up to be? Is it a silver bullet - or just another step away from the simplicity that CFML was founded on?

There's an inherent impedance mismatch between our in-memory object models and the table-based relational model. If there's no silver bullet, what's all the fuss about "noSQL"? How do document stores like MongoDB compare to relational databases? Which battles are worth fighting in this war?

What will we cover?

  • Problems with ORM that have attracted the "Vietnam" criticisms
  • Why document stores can be a better match to typical object models
  • How typical SQL operations map to MongoDB query commands
  • Schema design considerations for MongoDB
  • Options for using MongoDB with CFML

Humongous MongoDB

MongoDB gets its name from the word "humongous" but most talks only show simple queries and simple installations. What does it take to truly support the humongous data volumes that MongoDB was designed for?

This session will look beyond "simple", covering clustering, replication and failover, as well as looking at map/reduce and the aggregation framework, preparing you to deal with truly Big Data using the cfmongodb library.

You will learn:

  • How to set up and interact with a replica set
  • MongoDB concepts such as write concern, read preference, journaling etc
  • How to deal with failovers and failures robustly
  • The concepts behind MapReduce and its pros and cons
  • The concepts behind the Aggregation Framework
  • How to do all of this from CFML!

Tags: cfobjective · coldfusion · mongodb

3 responses

  • 1 Ben Nadel // Jan 9, 2013 at 6:41 PM

    Those all sound like great talks! Can't wait :)
  • 2 Phil Duba // Jan 10, 2013 at 6:13 AM

    I agree with Ben, these sound like great sessions.
  • 3 Ilya Fedotov // Jan 10, 2013 at 9:09 AM

    These do sound great! We better get our registrations in.