CFCamp 2015 Day One

CFCamp 2015

Monkeh Works are at CFCamp in Munich and will be posting notes of sessions attended throughout the day.

Thanks to for organising this great event and for all of the sponsors for, well, sponsoring it.

Day 1

This is the brain dump from day one of the CFCamp conference and notes taken throughout the sessions attended.

Make of them what you will. May contain spelling mistakes.

20 Years of ColdFusion - Rakshith Naresh, Adobe


Language, Infrastructure and Resources


Web Services and HTML5

CF able to react to industry requirements and add in features and functions including:

Language Enhancements in CF 11

Acrobat Integration:

ColdFusion next

Raijin (12) and Aether (13)


High-level focus areas:

Also focussing on:


Preliminary testing numbers (not official white paper results)


Raijin will contain a built-in code analyzer

Within ColdFusion Builder (portal view within editor) to perform security analysis and report any vulnerabilities along with line numbers; also reports what type of vulnerability with pointers to fix issue.

Covers (not complete list):

CFIDE script separation - CFIDE now completely removed from webserver

NTML support - cfsharepoint, cfinvoke and cfobject

Language Improvements

Safe navigation operator

  writeOutput'not defined');

Make this easier using safe navigation operator:



Ordered and Sorted collections:

str = structNew("sorted"); = "zero";
str.beta = "beta";
str.alpah = "alpha";

// change order
str = structNew("sorted", "desc");

passArrayByReference setting

searchImplicitScopes setting


cf.bat file (Windows)

file, database, email and webservice operations

arguments and named arguments can be passed to the command

read(), writeLn() and writeError() methods available

API Management Capabilities

APIs being used for:

APIs - from concept to go-to-market:

  1. define business objectives
  2. design your API
  3. code your API
  4. secure your API - access control mechanism (uername and password or API key generation)
  5. manage your API
  6. engage developers
  7. measure impact
    • detailed analytics from the API

Raijin will include steps 2-7. Security, measurement and management included in CF12.

Secure your API
Manage your API
Engage Developers
Measure impact
Extra SOAP support
ColdFusion Advantage

Import Swagger API Descriptions into the API management console / dashboard

(Monkeh Works <3 Swagger)

Static site generation using Node.js - David Boyer

Generate your sites dynamically, hosting static pages and sites.

Can be easily regenerated any time, anywhere.

Not tied specifically to Node.js - can use any language.

Generate your static site by script or application.

Why Not Dynamic?

Speed is key. Dynamic servers and apps will introduce latency and bottlenecks

"Every 100ms delay costs 1% of sales" - Greg Linden - Amazon (2006)

Dynamic resources add latency

Security Concerns with Dynamic Apps

Every new additional layer to your app adds an extra point of failure.

With static sites these points of failure and bottlenecks are greatly reduced.

Running costs are much lower with static sites. HTML can be hosted anywhere (for free) with minimal layers.

Why Static?

Mix and Match
Suggested Usage (from Metalsmith site)

Metalsmith / static generation can be used for:


Recursive read of all files in the ./src directory.

Manipulates the file data through a series of plugins.

Write the results to a ./buid directory.


npm init

to create package.json file (if it doesn't already exist)

npm install metalsmith --save
npm install --save metalsmith-markdown

Use YAML definitions to crate metadata.

The markdown plugin will be able to parse this information and use it when generating your site

The YAML for THIS blog post:

layout: post.jade
title: CFCamp 2015 Day One
slug: cfcamp-2015-day-one
date: 2015-10-22
- Events
- ColdFusion
- Events
- Developers
- ColdFusion
excerpt: "Notes taken during day one at CFCamp 2015 in Munich."

Many templating engines available. This blog uses Jade (as you can see from the above YAML)

npm install metalsmith-layouts --save

The metalsmith configuration file declares which engine is used

  engine: 'jade',
  directory: path.join(__dirname, 'templates'),
  basedir: path.join(__dirname, 'templates'),
Useful Plugins

NOTE: I'll be writing up a Metalsmith article after CFCamp to document how this site is generated

Using ColdFusion as the Lynchpin of Modern, 3-Tiered Web Apps - Dave Gallerizzo

Define the 3-tiered architecture

Why is CF uniquely qualified to support a 3-tier architecture?

Benefits of 3-tiered architecture


By default most legacy CF based applications are built in what we call a 1-tier architecture

1-tier = presentation logic, business logic and data access logic with every single request.


The browser is a tool, not a tier. Code which runs IN the browser is a tier.

ColdFusion applications using components to separate data access from presentation and business logic is a 2-tier architecture.

You're still accessing the data access logic directly from the presentation tier.

ColdFusion in a 3-tiered architecture

Introduction to Data und Text Mining with Java und CFML - Kai König

What is data mining?

Why do we have so much data nowadays?

“Data mining is the extraction of implicit, previously unknown, and potentially useful information from data. The idea is to build computer programs that sift through databases automatically, seeking regularities or patterns. Strong patterns, if found, will likely generalize to make accurate predictions on future data. … Machine learning provides the technical basis for data mining. It is used to extract information from the raw data in databases…” - Ian Witten


"Things learn when they change their behaviour in a way that makes them perform better in the future"


Thing we want to learn is the concept.

The output of a learning scheme is the concept description.

Classification learning is sometimes called supervised learning. The outcome is the class.

Examples are called instances.

Discrete attribute values are usually called nominal values, continuous attribute values are called just numeric values.


Waikato Environment for Knowledge Analysis

Download for Mac OS X, Linux and Windows (any platform that runs Java)

comments powered by Disqus