MY CHARTS CAN BEAT UP YOUR
CHARTS
@dfgrumpy
dave@dkferguson.com
www.cfhour.comDave Ferguson
I am an Adobe Community Professional
I started building web applications a long time ago
Contributor to Learn CF in a week
I have a ColdFusion podcast called
CFHour w/ Scott Stroz (@boyzoid)
(please listen)
Stuff about me…
cf.Objective() 2014 @dfgrumpy
Enabling the internet to work in real time.
WebSockets
cf.Objective() 2014 @dfgrumpy
A web what?
WebSocket is a web technology providing for bi-
directional, full-duplex communications channels over a
single TCP connection.
http://en.wikipedia.org/wiki/WebSocket
cf.Objective() 2014 @dfgrumpy
What I meant to say was….
WebSockets provide a way for a server to push data
to a connected client over a dedicated channel and
port.
cf.Objective() 2014 @dfgrumpy
What does this all mean?
 No more heartbeat JavaScript calls.
 setTimeout()
 No more long polling.
 BlazeDS
 Instantly update a client when server side changes
occur.
 Other fun cool tricks (more on this later)
cf.Objective() 2014 @dfgrumpy
What do I need to do?
 Define a channel in Application.cfc.
 Use a single tag to enable the client.
 Write a function to publish a message.
 Write some JavaScript to process the incoming
message.
 You will write LOTS of JavaScript.
cf.Objective() 2014 @dfgrumpy
Simple Websocket Demos
cf.Objective() 2014 @dfgrumpy
Enabling the internet to work in real time.
WebSockets
cf.Objective() 2014 @dfgrumpy
D3.js
 Bind arbitrary data (json, tsv, csv) to the DOM.
 Manipulate using data-driven transformations.
 Not a monolithic framework.
 Uses dynamic properties and selectors that somewhat
resemble jQuery.
 Highly efficient transitions and effects.
cf.Objective() 2014 @dfgrumpy
D3.js example
cf.Objective() 2014 @dfgrumpy
D3.js example
@dfgrumpycf.Objective() 2014
d3.js Demo
cf.Objective() 2014 @dfgrumpy
Using ColdFusion to power D3.js
 Easily create json data
 Use Websockets to push data
 Create multi-user interactive charts
cf.Objective() 2014 @dfgrumpy
D3 and CF Demo
cf.Objective() 2014 @dfgrumpy
D3 Resources
@dfgrumpycf.Objective() 2014
 d3js.org
 Loads of examples:
 bl.ocks.org/mbostock
 christopheviau.com/d3list/
 techslides.com/over-1000-d3-js-examples-and-demos/
 D3 charting API
 dimplejs.org
One more thing….
 WebSocket changes ColdFusion 11
 Can now use Port 80
 Can now be used over SSL
 Now supports clustering
 Including failover
cf.Objective() 2014 @dfgrumpy
THANKS
@dfgrumpy
dave@dkferguson.com
www.cfhour.comDave Ferguson

My charts can beat up your charts

  • 1.
    MY CHARTS CANBEAT UP YOUR CHARTS @dfgrumpy dave@dkferguson.com www.cfhour.comDave Ferguson
  • 2.
    I am anAdobe Community Professional I started building web applications a long time ago Contributor to Learn CF in a week I have a ColdFusion podcast called CFHour w/ Scott Stroz (@boyzoid) (please listen) Stuff about me… cf.Objective() 2014 @dfgrumpy
  • 3.
    Enabling the internetto work in real time. WebSockets cf.Objective() 2014 @dfgrumpy
  • 4.
    A web what? WebSocketis a web technology providing for bi- directional, full-duplex communications channels over a single TCP connection. http://en.wikipedia.org/wiki/WebSocket cf.Objective() 2014 @dfgrumpy
  • 5.
    What I meantto say was…. WebSockets provide a way for a server to push data to a connected client over a dedicated channel and port. cf.Objective() 2014 @dfgrumpy
  • 6.
    What does thisall mean?  No more heartbeat JavaScript calls.  setTimeout()  No more long polling.  BlazeDS  Instantly update a client when server side changes occur.  Other fun cool tricks (more on this later) cf.Objective() 2014 @dfgrumpy
  • 7.
    What do Ineed to do?  Define a channel in Application.cfc.  Use a single tag to enable the client.  Write a function to publish a message.  Write some JavaScript to process the incoming message.  You will write LOTS of JavaScript. cf.Objective() 2014 @dfgrumpy
  • 8.
  • 9.
    Enabling the internetto work in real time. WebSockets cf.Objective() 2014 @dfgrumpy
  • 10.
    D3.js  Bind arbitrarydata (json, tsv, csv) to the DOM.  Manipulate using data-driven transformations.  Not a monolithic framework.  Uses dynamic properties and selectors that somewhat resemble jQuery.  Highly efficient transitions and effects. cf.Objective() 2014 @dfgrumpy
  • 11.
  • 12.
  • 13.
  • 14.
    Using ColdFusion topower D3.js  Easily create json data  Use Websockets to push data  Create multi-user interactive charts cf.Objective() 2014 @dfgrumpy
  • 15.
    D3 and CFDemo cf.Objective() 2014 @dfgrumpy
  • 16.
    D3 Resources @dfgrumpycf.Objective() 2014 d3js.org  Loads of examples:  bl.ocks.org/mbostock  christopheviau.com/d3list/  techslides.com/over-1000-d3-js-examples-and-demos/  D3 charting API  dimplejs.org
  • 17.
    One more thing…. WebSocket changes ColdFusion 11  Can now use Port 80  Can now be used over SSL  Now supports clustering  Including failover cf.Objective() 2014 @dfgrumpy
  • 18.