Presentations

Confirmed Code Camp presentations are listed below. More will be announced as we confirm them. If you are interested in presenting please contact us at cmhcodecamp@gmail.com for more information.


Descriptions
Key Note: Those Who Know History are Doomed to Watch Others Repeat It

Presented by Guy Royse [SpeakerRate]

[Back to the Top]

Mark Twain said that history doesn't repeat but that it often rhymes. This is true not only of the history of civilization but also of software development. The history of computing, like anything, has recurring patterns, cycles, and trends. Some of them are quite large, others are tiny. Some are significant and others merely amusing. In this session we will look at some of these from the early days of ENIAC all the way to modern mobile phones. We will plot them out over the decades, observe their cycles, and come to understand them. Then, grounded in that history, we will explore some possible outcomes for the next few years and wax poetic about what the more distant future might bring.

 

An introduction to Android Development

Presented by Shawn Price [SpeakerRate]

[Back to the Top]

All the basics you need to know. We'll walk through the basic concepts of Android development. We'll also walk through building a basic application that calls a web service and displays the response to the user.

 

Automating the surf

Presented by Matthew Bussa [SpeakerRate]

[Back to the Top]

In the age of developing websites for multiple platforms (desktop, mobile, tablet, etc), how do you test on all of these platforms without having a separate tool and separate code base for each platform? How do you ensure that the website looks as expected on each platform? You know the element exists but is it placed where you expect it to be for each platform or has it flown off the rails? In this session, I'll talk about orchestrating different technologies including Cucumber, Watir Web Driver, and Appium to show how to create one Cucumber test suite that can capture functional testing and visual testing using screenshots. Let's automate the surf using one surfboard across different waters.

 

Builing Rome in a day: The art of rapidly prototyping a web app

Presented by Mark Greenway [SpeakerRate]

[Back to the Top]

This is a 3 slide presentation. I will show how to develop a working proof of concept web application within an hour. Sick of seeing twitter clones, northwind-db, to-do list demos? We will design and develop a working application within an hour. Starting with suggestions from the audience as to what kind of application to make (don't worry I have a good idea in the pocket if people are feeling uninspired). Moving rapidly from File->New Project with an ASP.NET MVC Site. We will use nuget, azure and all the resources to hand to fresh bake an app from scratch. Use the techniques from this to show your boss an idea of something you want to implement, as a development spike for your business, or to gauge interest in your very own start-up. Takeaways from this will also include things to speed up your normal development speed, and make your customers (and boss) happy by spitting out features faster.

 

Clojure for the rest of us

Presented by Rob Stevenson [SpeakerRate]

[Back to the Top]

I have been fascinated by the Clojure language ever since it came out into the public in 2007. Clojure has a shininess to it that I just can't shake. Unfortunately, I've been scared and intimidated away from the language due to words I barely understand (monad?, homoiconicity?, seq?, conj?) and the seemingly impossible learning curve due to its functional programming heritage. I would like to invite others to listen in on my story and what I did to truly get this amazing language. My story might sound very familiar to some people or it will help those new to Clojure to jump over the potholes of confusion that I had to deal with. I want everyone listening to my presentation to come away with a new (or renewed) appreciation and fascination for this language called The Last Programming Language by Uncle Bob. I will also quickly introduce everyone to Clojure's twin, ClojureScript. ClojureScript won't take long to go over since it's basically just Clojure that we will have just talked about. Depending on the time limit, I would also plan on (quickly) introducing Datatomic (Time-based database created by Rich Hickey, creator of Clojure) and Pedestal, the new web programming framework (The creators don't like calling it that but instead like to refer to it as a collection of libraries). I'll also leave the attendees with numerous starting points (editors, tutorials, books, videos) to again help them avoid those potholes that I seemed to find so easily in my early days with Clojure. I'm really excited about Clojure itself and about presenting it to a packed room of attendees. P.S. I am going to promise the audience that I won't use or praise Emacs in any way during my talk.

 

Containers are the new virtual

Presented by Matt Williams [SpeakerRate]

[Back to the Top]

This talk is an examination of Linux Containers and their use as a lightweight alternative to other virtual implementations such as vmware. The talk will focus on Docker.io - an up and coming implementation which is receiving a lot of attention as well as nimblestrat.us a cloud framework which uses Docker.

 

Designing Evolutionary APIs

Presented by Dave Caraway [SpeakerRate]

[Back to the Top]

Many of today's web APIs are difficult to modify. Minor changes in a URL can break an unknown number of clients, so API designers spend a lot of time getting it just right. Utilizing the conventions of REST, we'll explore ways to build web services that are easier to refactor, more intuitive and less likely to break your client applications. We fully cover REST from basics to advanced. Examples are in JSON using Apiary.io. No programming languages required.

 

Ember.js MVC Beginner's Workshop

Presented by Greg Malcolm

[Back to the Top]

Bring your laptops and learn the basics of getting started with Ember.JS at this interactive workshop. For students who want to arrive prepared, installing Chrome and Git beforehand will save you some time.

 

Gamification done right

Presented by Raymond Chandler III

[Back to the Top]

What really is gamification? Why do we do it? What can it achieve? And what is the right approach we should take when thinking about how to design a gamified system? Do you really need it? In this talk we will visit fundamental board game design principals, analyze game systems and mechanics, think about how those mechanics can be applied to the web. We will also briefly focus on the psychology of reward systems and how that affects human behavior.

 

Getting Started with TDD

Presented by James Bender [SpeakerRate]

[Back to the Top]

Test Driven Development (TDD) has been one of the biggest and most compelling paradigm changes to software development of the past few years. The ability to bake quality into your application as you develop it can change the way you think about software; it effects the way we approach, design and write applications. Test Driven Development is powerful. Yet many developers allow themselves to be intimidated by what they perceive as added complexity. Managers worry that the practice of "test first" will delay development. This presentation will explain the concepts behind TDD, outline the benefits, give you some concrete examples of how to do TDD using the C# language and some advice on how to sell it to your managers.

 

Git all the things!

Presented by Leon Gersing [SpeakerRate]

[Back to the Top]

We'll be looking at the distributed version control system Git and the collaborative tool GitHub. We'll learn some tips, tricks and helpful fun hints to take your git skills to the next level and have some fun while doing it. Come learn something new or just review some of the cooler feature of this powerhouse combination of Git and GitHub and how you can use it to collaborate with your peers anywhere in the world to ship great software together.

 

Groovy in the Java Enterprise

Presented by Don Abney

[Back to the Top]

Since JSR 241 was voted into existence and the Groovy Programming Language became a legitimate part of the Java Language Specification it has largely been ignored by enterprises, considered as fringe open source or perhaps mistaken as a Java replacement. This session will delve into the why and how we should all be integrating Groovy into our existing Java projects. This session highlights the most recent improvements in Groovy that address many of the performance and packaging concerns voiced by enterprise users over the last few years.

 

High performance JavaScript and CSS

Presented by Md Kahn [SpeakerRate]

[Back to the Top]

High performance JavaScript and CSS. Also, how to avoid many commonly made mistakes.

 

Hitchhiker's Guide to the NetDuino Galaxy

Presented by Carey Payette

[Back to the Top]

You know how to program, but what about all this fancy electronics mumbo jumbo? You want to do something really cool, but you just don't know where to start. This session will introduce you to programming NetDuino microcontrollers with the .Net Micro Framework. You'll also get a primer in basic electronics, breadboarding and interfacing with various sensors. Valuable learning resources and helpful tools will also be covered.

 

How to make web three times faster and ask for a raise

Presented by Md Kahn [SpeakerRate]

[Back to the Top]

Making your website faster does not need months to plan and implement and you don't need to go to every corner of a website to implement stupid tricks or endless best practices to save a millisecond here and there. Rather, you can make it faster in five minutes. This presentation will cover that and the following as well: how to write JavaScript code that runs faster; improve your CSS to make rendering faster; optimize images, icons, and logos for sites that use many images; server and network tricks to make pages load faster; and how to investigate performance issues and memory leaks by using developer tools, page speed, and more.

 

HTML5 Mobile development with HTML5, CSS, and JavaScript

Presented by Mark Lassoff [SpeakerRate]

[Back to the Top]

So you want to make dynamic mobile applications, but you don't want to learn the native toolkits for Android, iOS or even Windows 8? This course is what you're looking for! With this HTML5 Mobile App Development course, you will learn to create HTML5 based mobile applications that can be sold in the Apple App store, the Google Play Store or other mobile marketplaces. If you know the basics of HTML, CSS and Javascript, you're ready to take this exciting workshop. You'll be encouraged to code along with master instructor Mark Lassoff, as you create applications that demonstrate many of the features available in the PhoneGap (aka Cordova) library. You'll work with applications that control audio and video, use remote data from a server, and interact with the phone's camera and microphone hardware. If you already know HTML, CSS and Javascript, you can be well on your way to creating engaging mobile applications that you can distribute to all major phone platforms -- without coding a line of Java or Objective C. Using the PhoneGap platform and the techniques demonstrated in this workshop you can also write your code once and distribute to both iOS and Android easily. This workshop includes dozens of code and application examples and engaging lab exercises to help you retain the material once you have reviewed it. Participants will receive a free copy of Mark's new book, HTML5 Mobile App Development.

 

Introduction to iOS Mapkit

Presented by Frank McAuley [SpeakerRate]

[Back to the Top]

This will be a talk to introduce MKMapkit for iOS 7. The talk will broken down into three sections. First will be the introduction to MKMapkit and its key components. Next will be a demonstrations of how those components are used to present data on the map. Finally tips and technics for customizing the objects on the map. The last two sections will have code examples to demonstrate how MKMapkit works. The talk will also include examples of MKMapkit from apps already in the Apple App store.

 

Introduction to vert.x

Presented by Yiguang Hu [SpeakerRate]

[Back to the Top]

In application development, there are choices of language, complexity, threading, concurrency etc. vert.x is simply a framework that makes things simple. It is polyglot, simple, scalable and has a concurrency model. This talk will introduce the features of vert.x while developing a real application.

 

Meteor.js: Killing Dinosaurs with JavaScript

Presented by Guy Royse [SpeakerRate]

[Back to the Top]

63 million years ago, the dinosaurs were destroyed by a big rock from space. In this session, we'll kill some more! Meteor.js is one of the many new JavaScript frameworks to come our way in the past few years. But this one is a little different because Meteor makes it dead simple to write real-time JavaScript applications. Real-time applications that update all content for all users all the time. No waiting. No hassles. And we'll use it to live-code an application -- one that kills dinosaurs -- which we will then live-deploy so everyone can help.

 

One ASP.NET

Presented by Jose Guay [SpeakerRate]

[Back to the Top]

Web developers have had a mindset that in order to build web applications with ASP.NET they had to choose between either Webforms, MVC or Web Pages. To make things worse, Visual Studio (err Microsoft) has done a pretty good job at enforcing this believe. The truth is ASP.NET is actually just One and developers don't have to choose between one technology or another, but they could use all of them in a single application. With Visual Studio 2013, developers can finally see this as a reality. With updated project creation dialogs, modern front-end frameworks out-of-the-box and embracing some of the most important open source projects, developers can become more productive by using all the tools they need right from the start. In this talk we are going to explore the new capabilities in Visual Studio 2013 for One ASP.NET. We'll dive into what we can do in Visual Studio, using the built-in technologies such as Bootstrap, jQuery, CSS3 and so forth. We'll build a hybrid application using different web technologies. Finally we will see how to use third party tools to further improve the application.

 

PLC Ladder Logic Basics

Presented by Dominic Barreca

[Back to the Top]

Indroduction to the basics of ladder logic programming based on IEC 61131-3 which is the International Electrotechnical Commission standard for Programmable Logic Controllers, an open international standard. Will cover what a PLC is, how inputs and outputs to the physical world function, the basic elements of ladder logic, how ladder logic functions, how to interface ladder logic with graphics on a touch screen.

 

Real world mobile app development using PhoneGap

Presented by Keith Wedinger [SpeakerRate]

[Back to the Top]

You have worked through the getting started guides and the tutorials and now you're ready to take the next step. This session will cover the essential frameworks and the tips and tricks that I used to develop a PhoneGap based mobile app for a large client. This information will help you develop and deliver a real world mobile app for iOS and Android using PhoneGap. The following topics will be discussed and demonstrated: Data management with JSON, HTML5 local storage and SQLite; effective binding between your HTML and your data using Knockout; managing arrays, collections, functions, and AJAX requests using Underscore.js; HTML rendering templates using EJS; globalization using jquery / globalize and i18n; developing web, iOS, and Android apps using the same project and code base; must have jQuery and jQuery mobile add-ons; debugging, performance, lessons learned, and gotchas.

 

Reducing Code in ASP.NET MVC

Presented by Mark Greenway [SpeakerRate]

[Back to the Top]

Do you feel like there are too many lines of code in your ASP.net MVC site? More importantly, do you think that your code base is about as concise as it can be? I will show you how to reduce errors by reducing duplicate code. We will start with simple techniques that are in used in production to reduce code and maximize code vision. We will move on to what good ideas we can borrow from Ruby, node and JavaScript. Finally you will learn ways of identifying patterns, from other technologies, that will work for you. From Aspects to Actions, Inheritance to Interfaces, and extension methods to linq there is sure to be something new for you to walk away from this talk with. You will write fewer lines of code, and fewer bugs.

 

Rich Web Apps with Angular

Presented by Raju Gandhi [SpeakerRate]

[Back to the Top]

Angular.js is a relatively new MVC framework from Google. If you are looking into developing rich web applications, Angular is your friend. Angular embraces HTML and CSS, allowing you to extend HTML towards your application, and uses plain JavaScript which makes your code easy to reuse, and test. In this session we will live code our way to a simple application, exploring the various aspects of Angular as we go along.

 

Testing Web Services

Presented by Stan Jonsson [SpeakerRate]

[Back to the Top]

This presentation will cover various tools and frameworks for testing Web Services. We will take SoapUI, JMeter and REST-assured for a spin, and discuss how they may suit for smoke testing, load testing, performance testing, acceptance testing, probing and mocking Web Services. Examples will include SOAP and RESTful Web Services using XML and JSON. Some general tips will be provided on Web Service development. There will be code examples in Java, but the talk should benefit anyone struggling with Web Service testing.

 

Virtualize your stack with Vagrant and Puppet

Presented by Jacob Mather [SpeakerRate]

[Back to the Top]

Want to make it easy to transition your development stack from your laptop to the cloud? Interested in automating your development environment? We will cover everything you need know, and make sure you hit the ground running. We will walk through configuring a single server in a reliable way, and then scaling that out to your own personal cloud.

 

Writing Better C and C++ for Embedded Systems

Presented by Dan Saks

[Back to the Top]

The C programming language offers a great deal of control over target hardware. Unfortunately, it also invites you to write code that's unreadable, buggy and brittle. This session presents a general approach to programming along with specific programming guidelines to help you write C code that's more reliable, maintainable and portable than it would otherwise be, without sacrificing efficiency. It also suggests programming styles for C that simplify a possible migration to C++. Nearly all of the advice applies equally well to C++.

 

Writing More Efficient C++ Programs

Presented by Dan Saks

[Back to the Top]

Embedded programmers tend to be concerned with speed and space penalties associated with language features and programming techniques. They sometimes avoid using certain language features because they believe those features are too costly. In fact, C++ offers many ways to fine tune performance to bring costs down to acceptable levels. This session examines the cost of various C++ language features and presents programming techniques that help reduce those costs.