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
(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
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!