What's On The Agenda At SOTR2013

View All Sessions

Mongo(DB) only pawn... in game of life

by Rob Dudley

Ah NoSQL, the modern web's panacea for all database ills...

This session focuses on the incredibly popular MongoDB from 10Gen Inc. and covers setting up MongoDB safely from an architectural perspective before moving on to connect to and query a MongoDB server from the browser using just JavaScript and then, more sensibly, using Marc Esher's excellent CFMongoDB Library. As a bonus you get some Map Reduce juice and (if there's time) an overview of the fundamental paradigm shifts needed to move on from a traditional RDBMS.

[Link to presentation]


Service Oriented Architecture vs Monolithasaurus

by Joe Roberts

SOA is an approach to application design that allows us to build robust, scalable software. This is not about scary enterprise systems, this is about building applications with interoperable, lean services that can provide incredible flexibility and freedom.

You will learn the pros (and cons) of this approach, and how you can apply it to your own projects.

Using common idioms like REST, HTTP and message queues, complex applications can appear simple again. Simplicity leads to better design, increased agility and developer happiness.

[Link to presentation]


ColdFusion Anti-Patterns

by Darren Walker

Have you ever written some code using a clever pattern that you thought was awesome, only to find some 'expert' on the 'internet' actually criticising the pattern and calling it rude names. Well, I am not that expert. However in this session I plan to look at the reasons why perfectly reasonable looking patterns of software development are considered poor form. We'll look at what approaches might be more beneficial to your application code, and explore some common misconceptions about software design. Primarily I'll be covering object orientated patterns (Singletons, base beans, God objects, anaemic domains) but there will be some procedural CFML classics in there too. Come along, feel free to bring your own opinions and pet peeves too!

[Link to presentation]


Caching for Performance and Scalability

by Rob Brooks-Bilson

If you’re at all concerned about application performance and scalability (and who isn’t?), caching should be an integral part your ColdFusion application architecture. Luckily, ColdFusion 10 comes bundled with powerful caching capabilities that leverage Ehcache, allowing you to boost the performance and scale of your applications with ease. This session covers everything you need to know about caching with ColdFusion 10 and Ehcache in order to immediately start taking advantage of the concepts and techniques in your applications.

[Link to presentation]


BDD with JS: Architecture, Tools & Patterns

by Enrique Amodeo Rubio

JS is a natural fit for BDD. Since "end to end tests" drive the UI of our apps, why not use JS to do it? After all, nowadays most of the UIs have tons of HMTL, CSS and JS inside. It seems natural to use the same language that implements you UI to drive it, even if the server side is written in another language. But writing test code is not enough, so you should use some architecture and some good practices to keep your tests maintainable. In this talk I will introduce you different testing architectures and what tools do you have available in JS to implement them (nodejs, mocha, zombiejs, phantomjs...). I will compare them and try to give some hints about when to use what. Finally I will talk about some design patterns that have helped me to keep my test code base maintainable. Draft Agenda (the exact contents may change depending of how long the talk must be): * Short intro to BDD and end to end testing * Lifecycle * The cost of BDD * Different architectures and tools for different goals. * Patterns for your test code base.

[Link to presentation]


Frakking effective planning: not just for Cylons

by Sally Jenkinson

Effective planning and requirements gathering is key to providing effective solutions. In this session we'll discuss a solid approach for planning the technical strategy for web and mobile projects, including some of the primary areas you should consider when tackling a new project, and how to respond to client demands. We'll also cover the impact your choices may have on the delivery method or selection of tools and technology.

[Link to presentation]


Brackets: An Open Source Code Editor For The Web

by Raymond Camden

Brackets is a new open source project started by Adobe to push tooling on the web forward. Based on the principle that the best developers to build tools for web developers are in fact web developers, Brackets is built in JavaScript, HTML and CSS. MIT-licensed and hosted on github, Brackets is a code editor that challenges the status quo with innovations like inline Quick Editing and live browser connectivity. This session will provide an overview of Brackets and demonstrate how to hack on the project so you can customize and extend it to meet your needs.

[Link to presentation]


Cloudy with a Chance of Tests

by Mike Henke

The advantages of unit testing and continuous integration (CI) are numerous but who has the time to writing tests on your legacy code while still being productive for your boss. This session will explain the advantages, show how to setup Jenkins and run the most basic unit test ever -- does your ColdFusion code compile. After this session, you should have the knowledge to setup Jenkins and run simple inspections against your code base. After that you can impress your boss and slowly add tests while becoming a testing rockstar.

[Link to presentation]


I'm pretty sure that HTML6 is going under the codename Angular JS

by John Whish

AngularJS is what HTML would have been, had it been designed for building web-apps. This presentation is an introduction to using AngularJS to build data driven websites in the browser. The web is moving towards a data driven architecture, where browsers are responsible for dynamic rending and two way data binding. By the end of the session, you'll understand what AngularJS is and how it can become part of your web applications. John Whish is author of the ColdFusion ORM book and has spoken at cf.Objective() and the Scotch on the Rocks conference on several occasions.

[Link to presentation]


Ready? Bootstrap! Go!

by Guust Nieuwenhuis

Bootstrap (www.getbootstrap.com) is a sleek, intuitive, and powerful open source front-end framework for faster and easier web development. After it's initial release in August 2011, it quick gained popularity in the web development community and currently it's the most popular project on GitHub. Numerous projects, components and tools are build around it and both small and big companies are using it. Get introduced to Bootstrap and the ecosystem around it. Your front-end development will never be the same again!

[Link to presentation]


Mobile Frameworks Shootout!

by Steve Drucker

During this briefing for developers and I.T. managers, you'll get an in-depth review of the three most popular javascript-based mobile application development platforms - jQuery Mobile, Sencha Touch, and Appcelerator Titanium! You'll review the development tools, hear about the developer and debugging experience, and participate in a brief code review in order to determine which framework is the most appropriate for your next mobile project! We'll demonstrate how each framework can be used to develop the same mobile app, highlighting the strengths and weaknesses of each.

[Link to presentation]


The number one ingredient behind (technical) success: Team

by John J Peebles

Languages, frameworks, testing, toolkits, and methods. These are the things we spend our time learning, discussing and debating. We spend very little time (if any) discussing the most important factor in how we work and how we succeed: our team and our teamwork. In my talk I'll discuss what makes a great team and why you need to be on one. I'll draw from 10 years of experience running multiple startups in multiple countries, from small 2 man teams to managing an organisation of over 100 technical professionals. Technology and tools are easy. Humans and human relationships are hard.

[Link to presentation]


Using personas in service design - continuously

by Tuuli Aalto-Nyyssönen

Personas are widely used to describe important end users. Usually designers are working close with client to give the end user a human factor. Personas evolve during end user interviews, workshops and so on. Using personas is chic. Let's make it a chic tool to use! So... how to make sure the end user is in our focus during the whole web development? From the very first sketch to the 1st and 10th release? How to make personas work with the whole project team and how to update and evolve the personas continuously? To be honest... this is the problem I have been working with for a while. Found some right answers and still looking for the best practices: 1. Keep it simple and easy to approach 2. Use the data available - update! 3. Make layers: "Don´t really care if she is 40 something and urban! Just show me the important facts!"

[Link to presentation]


Ember.js - The educated javascript MV* choice

by Paul Cowan

Ember.js is simply the most exciting framework to enhance developer productivity since rails. If your application is not a responsive single page application then it simply cannot compete. Building single page applications is a complicated business that quickly turns into a snarled mess if you do not have the right abstractions in place. Memory leaks and tightly coupled code catch the unaware as they proceed to market. Ember has all the abstractions that you need to quickly produce an SPA (Single Page Application) website. I quickly tired of writing boilerplate code with backbone.js and moved to ember.js and I have not looked back since. This talk will introduce and show the abstractions that make ember.js the educated javascript mv* choice. As a developer, you need to have (at the very least) an opinion on this framework. Learn why Angular, Backbone, Knockout, Spine and the rest are also rans.

[Link to presentation]


The mindful developer: How doing 'nothing' can turbo-charge your productivity

by Andy Bellenie

Mindfulness meditation is becoming increasingly popular as a secular tool for improving focus, reducing stress, boosting productivity and developing creativity. Used by many major companies for staff development, including Google, where a course is hugely popular, mindfulness is particularly relevant for developers, who spend a great deal of time working alone and on complex projects, requiring enormous concentration and awareness. In this session, CAB member and experienced CF developer Andy Bellenie reveals his secret alter-ego as a mindfulness coach in order to demonstrate how doing taking time out to do 'nothing' can transform your day at work and beyond.

[Link to presentation]


Zombie code

by Marco Cedaro

Have you ever had the need to figure out how to survive a Javascript Zombiecodepocalipse? Have you ever dreamed about loads of living legacy code and the urge to run away from it? Hundreds of lines of code tightly coupled and hardly understandable there were trying to catch you? I've been there and I'm a survivor because I learned the art of refactoring. This talk is about how to deal with features request, deadlines and still increase the maintainability of your code.

[Link to presentation]


Just Mock It: Discovering Mocks & Stubs!

by Luis Majano

Come and discover the importance of mock and stub objects for your ColdFusion testing, development and continuous integration. As our applications become focus on object orientation techniques, our testing will also get more complicated and sometimes impossible to test. Mocking and stubbing are core techniques for testing ColdFusion object oriented applications. This session will focus not only in the theory and necessary concepts of mocking, but also on what to test, test isolation and techniques. Take your testing to a new but necessary level. Students will learn: What is mocking? What are mock objects? What are stub objects? Testing tools What to mock when building OO applications Applying mocking techniques and debugging

[Link to presentation]


HTML5 Mobile App Development with PhoneGap

by Mark Lassoff

Unless you've been asleep for the past five years you know that mobile development is hot. Many developers, however, have become frustrated by the long process of porting apps from one divergent platform to another. The process has become costly, lengthy and unwieldily. Many developers are taking a second look at HTML5 based mobile development, as an alternative to traditional native development. In this dynamic session, master trainer Mark Lassoff will invite participants to code along as he develops a full app using HTML5, CSS, Javascript and the PhoneGap library. The app will be ready-for-release for iOS, Android and even Windows 8. While creating the app Lassoff will demonstrate many of the features of HTML5 development and the convenient PhoneGap library.

[Link to presentation]


How to be a good open source citizen

by Curt Gratz

Today more and more projects are being released to open source or developed as open source projects. You might think that there isn’t much to being a good user of open source. Install the project, use as needed, and move on. That is just fine, but what if you want to be more than just a silent user, what if you want to help. Learn how you can be a good citizen in the growing community of open source projects available to you as a developer. Learn what open source is and how it is more than just “free” software, how to get started on open source projects and how to move from a consumer to a contributor. Take practical steps towards releasing your own software open source, and learn that it doesn’t have to be “perfect” to do so. What is open source? – Defining what open source is and that it is more than just “free” software Being a Good Citizen - How can I help in a positive way Getting Started – What are the barriers of entry to open source projects and how to overcome them Contributing – Moving from a consumer to a contributor Releasing – How, When, and Why to release your own open source projects Licensing – GPL, LGPL, MIT, Apache, etc – brief (I mean brief) look into each and their advantages/disadvantages

[Link to presentation]


Don't become Agile, strive for agility

by Chris McDermott

Have you ever tried and failed to make your organisation Agile? Or, have been part of an Agile change that didn't meet the high expectations it set? Maybe you have met with too much resistance to even get off the ground. Have you ever wondered why? What if, instead of looking to make one large revolutionary change and become Agile, you looked to build a culture of continuous improvement and, while drawing from the Agile toolkit, you evolved towards the agility and predictability your business requires? In this talk I'll give an introduction to the Kanban method. I'll show how it is designed to help in the evolutionary change of your software development system and how it encourages a culture of continuous improvement.

[Link to presentation]


An introduction to Sinatra and Ruby - swing when you're winning.

by Matt Gifford

In this session we will explore how to build a RESTful-based application using the Sinatra framework, built on top of the Ruby programming language. We will explore installing Ruby, creating our first Sinatra application, the use of route definitions to handle multiple METHOD request types, including GET and POST requests, data persistence in a SQLite database, and how to return data in multiple formats including JSON and HTML. The RESTful approach and ease of use offered by Sinatra make it a great choice for underlying API requests which you can implement and call from any programming language of your choice.

[Link to presentation]


Mikado Method - Making Code Changes Less of an Impact

by Kev McCabe

The Mikado Method is a simple straight forward methodology for large scale refactoring. We’ve all been there; tasked with a change, which as optimistic developers we say won’t take us long, weeks later we’re still fighting the system. Enter the Mikado Method, a way to peel the layers of complexity away from any system. Systematically attack refactoring, in the knowledge that every change you make will be for the better of the system, rather than hoping it will be. When it comes to refactoring legacy systems, sometimes it faster just to get in there and naively attempt to make the change required rather than speed weeks analysing the affects. Naively making the change will always have knock on affects to other parts of the system. It is these knock on affects that cause what we believe to be quick changes to become large, long drawn out changes. With the Mikado Method, your system will always be runnable while you refactor, say goodbye to the feature branches of refactoring, and hello to a runnable testable system all the time. Fix one issue at a time, and keep your system deliverable at all times. The method also works when it comes to implementing new features or fixing bugs in a system, there are always side effects when we need to change code. The Mikado Method will help in all these situations. In a nut shell, it's Red, Green, Refactor on a large scale. A way to safely start paying back your technical debt.

[Link to presentation]


Cultured Localisation, or 'How not to offend one billion people'

by Ryan Stenhouse

This talk isn’t really about localisation or internationalisation (add a ‘z’ if you prefer!) – it’s about culture and understanding. It’s about how we should all be approaching localisation challenges as people problems and to give good examples of how to get it right and where you can go so very wrong. Your framework and tool of choice is the easy part – understanding the people you’re wanting to each out to is oh-so-very hard and too often seen as only just a translation problem – a simple matter of swapping one string for another. I’ll talk about how people communicate across cultures, even when they are so different. Drawing on my experience as a teacher of english as a foreign language and my own travels and struggles to absorb another people’s language and culture, I hope I’ll change how you think about solving these problems in future. Hell, I’ll even make you laugh. I hope. The most important thing though, I’ll provoke a discussion; it could be a very good one.

[Link to presentation]


Quit your boring 9-5er

by Kay Smoljak

As web professionals, we have highly sought-after skills and expertise. Many of us sit in a chair from 9am until 5pm applying these skills to projects that make other people a lot of money, and dreaming of our next tropical holiday. Regardless of whether we enjoy what we do or not, perhaps it's time to break the shackles of conventional thinking, start using what we know about building the web for our own benefit, and live the tropical holiday instead of dreaming about it. I will present some strategies for using the skills you already have to enable you to quit your boring 9-5er and start actually living before it's too late to enjoy it.

[Link to presentation]


How To Destroy The Web

by Bruce Lawson

The future of the Web is a dangerous Babylon: people talking to each other to do business, organise revolutions, express their feelings, meet their friends, transcend their disabilities and economically empower themselves. Obviously, this must be stopped. Bruce will show you his top tips and tricks that you can use to destroy the web.

[Link to presentation]


IndexedDB - It's not just for breakfast anymore!

by Raymond Camden

In this session, I'll discuss the IndexedDB specification. IndexedDB is a client-side (JavaScript-based) technology that allows for "significant" storage of data on the client-side. I'll discuss support and show numerous examples of the technology. This is a code-heavy presentation and people should have at least some familiarity with JavaScript.

[Link to presentation]


"It doesn't work" doesn't work - how to help others help you.

by Peter Boughton

All developers have times when they need to ask their peers for help, but this can be a daunting task - sometimes knowing what and how to ask is as difficult as the problem itself - and it doesn't help when you're stressed out and get slapped down (or ignored) for not knowing how to present your question. Fortunately, there are some simple steps you can check against, to help you frame your question more appropriately (and maybe even solve your problem before you've even asked). Whether you're asking on mailing lists, forums, or the [infamous] Stack Overflow, this talk will help you discover the key to asking smart questions that others will *want* to help with.

[Link to presentation]


Speak a new language, speak Selenese!

by Danny Dinneen

Wolof, Soninke, Serer,Fula, Maninka and Diola are all recognised regional languages of the nation of Senegal and have nothing whatsoever to do with Selenese ! Selenium is a portable software testing framework for web applications. Selenese is a test domain-specific language for writing these tests. This presentation will give an introduction to software testing and the Selenium tool, an introduction to ColdFusion client library for Selenium-RC, CFSelenium. The main focus will be on speaking Selenese (Actions, Accessors, Element Locators, Variables).

[Link to presentation]


Mura 6 For Developers

by Steve Withington

Since Mura CMS was launched as an open source product at cf.Objective() 2008, Mura CMS has seen huge improvements and tremendous growth. In this session, we'll provide an overview of the latest (and greatest!) version of Mura CMS, and show you how Mura CMS can make life easier for both end-users and developers alike.

  • Learn how Mura CMS uses Bootstrap on the front and back-end and what this means for developers:
  • Learn about new editing and publishing features
  • Learn how the Admin UI has been streamlined and simplified
  • Learn how to further simplify the UI for non-technical end-users and create custom content types
  • And more!

[Link to presentation]


Railo's Top 10 Developer Features! (and sneak peeks!)

by Mark Drew

In this session, Mark Drew will guide you through his top 10 Railo Developer features, both old and new. Awesome features like the CLI, new cfscript functionality as well as a sneak peek of the Morpheus project that Railo will be releasing in conjunction with Prisma IT. This is a session not to be missed! We really hope it will be invaluable for every developer out there. And we will be demoing features that haven't been shown anywhere else.

[Link to presentation]


Websockets made easy with ColdFusion 10

by Elishia Dvorak

Websocket protocol is a new HTML5 technology allowing real time data communication between servers and clients for the first time. ColdFusion 10 has made the implementation of websockets very easy and straightforward, saving time and increasing productivity for developers. In this session we'll discuss the websocket feature in ColdFusion 10 and how fast you can implement this technology in your web applications. You'll learn the basics of websockets, support concerns, and more intermediate topics around building a websocket solution in your applications.

[Link to presentation]