Utah Code Camp -- Spring 2012 Sessions


Hands on Workshops / Roundtable

Code Katas Continued: Practicing your Craft
  25  

One of the key values as part of the Software Craftsmanship movement is to be "skill-centric" and as part of that, practicing our skills as software developers is key! The Code Kata format is a coding exercise that is repeated and perfected. It provides one of many ways to practice the craft of software development. We'll discuss the Code Kata format, introduce a few katas and discuss some other practice formats. While the intro will be much like the talk from Fall, we'll work through a different Kata together. I will be guiding the Kata in C# (no previous knowledge necessary though). As this is hands on, to take full advantage of the session have Visual Studio or SharpDevelop installed, NUnit installed (or via NuGet) and an integrated unit test runner (recommend Resharper or NCrunch for VS).

Level 200 - (Beginner): Introductory / fast moving
Presenter: Mike Clement


Django
  14  

Web app development in Python+Django.

Volunteers: Ray Hunter
Want to volunteer? I Can Present This!


Developing with NoSQL DB on the cloud
  11  

A hands on workshop (using either Java or any other cloud compatible platform) to learn using a noSQL database, deploy and test on the cloud.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Randori: Group Practice
  8  

Looking for a new way to practice your craft? Randori provides a complementary way type of training when compared with katas.

  • Pair Programming
  • Pair changes with mechanism (Time box, Ping Pong)
  • Start from scratch
  • Use TDD
  • Everyone should be following
  • Pair should be explaining
  • Audience gives suggestions only with when Green
  • Example at http://vimeo.com/2499540
To the organizers: This session would benefit from being longer than the standard 60 minutes if it can be accommodated. Email me directly for additional discussion if you want to accept this session proposal.

Level 400 - (Advanced): Experience with subject matter is strongly recommended
Presenter: Mike Clement


Build Your First Windows Azure Application
  8  

In this hands-on session we will build a simple application that can be deployed to Windows Azure. While working through the exercise we will learn some of the basics of the Windows Azure platform. In the end you will have an application running in the local compute emulator and understand how to deploy it actually run in Windows Azure.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Mike Erickson


Apache Wicket
  4  

Having developed in HTML, Servlets, JSPs, Struts, JSF and all of .NET, I found Wicket to be easier and faster than them all. It is exremely object oriented and similar to the orignal ASP.NET, with markup pages and code-behind files.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Grails and the Cloud
  1  

Learn how to use Grails and Heroku to create a simple cloud based guest book web application.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Jason Hunter



Microsoft Development Track

Building HTML5/JavaScript applications in Windows 8
  38  

Curious about what application development in the new Metro platform using HTML5 & JavaScript looks like? We will take a look at the beta WinRT API and try to dispel myths about this new platform.

Volunteers: Nathan Zaugg
Want to volunteer? I Can Present This!


Linq (From the Inside)
  34  

Knowing how to use Linq is useful if you're doing any coding using .NET 3.5 or newer. But have you ever thought about what is going on "under the hood"? Join us as we dive into the guts of Linq and implement Linq extension methods such as Where, Select, Any, All and Sum. Not only is it interesting to see what's going on, it'll help you to build better code using Linq.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Mike Clement


Introduction to Unit Testing with .NET
  26  

You know that unit testing is a good thing to do, but have never really gotten "in" to it for one reason or another. There are lots of different tools and frameworks to choose from and learn, some of which are free and others that aren't. In this session we'll focus on getting started with unit testing, specifically in a .NET world. We'll go over some different frameworks and tools, especially free ones (though we may talk briefly about a few paid tools).

Level 100 - Introduction
Presenter: Jonathan Turner


WPF for WinForms Developers
  26  

Ever try to jump in to WPF from WinForms and find it to daunting? In this class we will discuss ways to migrate your knowledge of WinForms development and make WPF apps!

Level 200 - (Beginner): Introductory / fast moving
Presenter: Jacob Glines


Building Windows 8 Metro Applications with XAML/C#
  26  

Come join this introductory session that will give an overview of building applications for Windows 8 using XAML and C#. See how your existing WPF and Silverlight skills translate to Windows 8, and get some insight into many of the new constructs found in the platform.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Joe McBride


Microsoft Entity Model
  14  

Microsoft's Object Relationship Model (ORM) tool in depth from database to front end.

Level 100 - Introduction
Presenter: Michael Horn


Rocking WebForms with jQuery
  13  

Reports of WebForms' demise are very premature; in fact, WebForms still rock! And by adding just a little jQuery UI magic, they can rock even more. Whether you're beginning a new WebForms application, or maintaining an existing one, it's very easy to add a little UI razzle-dazzle that can both make your code cleaner and the application more user friendly. In this session, we'll look at what jQuery is, how to use it in ASP.NET WebForms applications, and what it can do for our WebForms applications. If you've used the ASP.NET Ajax Toolkit in your applications, you'll want to see what is replacing it.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Richard Dudley


WPF, Expression Blend and MVVM part II
  13  

A continuation of my fall presentation titled "Blend and MVVM" where we learned about using Expression Blend for building the latest Silverlight and WPF applications using the MVVM architectural pattern. This time around we will dive deeper into Expression Blend 4 and WPF. We will learn about using the VisualStateManager, using XAML Triggers to add animation to your controls, making the best use of styles to simplify your XAML and my latest take on the preferred MVVM framework.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Kier Knowlton


Charmed to meet you
  12  

Windows 8 has “charms” to provide services to and inter application communication between Metro style applications. In this session we will look at the API for charms and how you can use them in your current and future applications. In this session you will learn: • The charms provided by Windows 8 • How to use the built in charms in your application • How to use charms to communicate between applications

Level 200 - (Beginner): Introductory / fast moving
Presenter: Scott Golightly


Windows 8 for Developers
  12  

This session will introduce developers to Windows 8 and the changes they can expect to see in the interface and confront in the API.

Level 100 - Introduction
Presenter: Jerry Nixon


Identity Federation with Windows Azure Access Control Service
  11  

Nothing drives users away more than asking them to create a new account and requiring them to remember a new set of credentials in order to use your application, or worse, having them use the same credentials they use everywhere else and spending precious development and IT hours ensuring that their credentials are safe and sound and managing identities. Windows Azure Access Control Service enables us to tackle this problem by allowing us to easily integrate with trusted and well established identity providers. Come learn how you can authenticate your users with Windows Live, Facebook, Google, ADFS and other providers using ACS and Windows Identity Foundation. Technologies Covered: Windows Azure Access Control Service, Windows Identity Foundation, Claims-Based Identity Model

Level 200 - (Beginner): Introductory / fast moving
Presenter: Fabio Cavalcante


Testing in C++ and C# with TAEF
  9  

With the release of the Windows 8 Driver Development Kit, the Windows team has made available the Test Authoring and Execution Framework (TAEF). This framework is used by the Windows team and many other teams across Microsoft for writing and executing unit and feature tests. This session will introduce using TAEF to write and execute tests in both C++ and C#. In addition, this session will introduce some of the advanced capabilities it provides to test authors.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Andrew Faust


Delivering Business Intelligence in SQL Server 2012 + SharePoint
  7  

PowerPivot & Power View demonstrations to demonstrate and end-to-end example of self-service business intelligence using SQL Server 2012 (RC0) PowerPivot (V2) and Power View (V1). Some discussion on how to enable self-service reporting.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Norman Warren


LightSwitch Onramp
  7  

Microsoft's LightSwitch presents a radical new way of designing applications in Visual Studio. Applications can be quickly built using screen templates and prewritten code to handle routine tasks. Custom business logic can be added in VB.NET or C#. LightSwitch applications can access a number of data sources, including SQL Server and SQL Azure, and can be hosted locally or on Azure. LightSwitch will enable IT staff to quickly turn around those small-but-necessary enterprise apps end users are so fond of, and it's easy enough for power-users with limited programming experience to build their own apps. By the end of this session, we’ll understand what LightSwitch is, what we need to develop with LightSwitch, and how to get started developing a LightSwitch application. Most of this session is a walkthrough of building a simple application, so bring a laptop and code along if you want.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Richard Dudley


Advanced Team Foundation Server 2010 Programming
  7  

If you work with Team Foundation Server 2010, and you'd like to know how to get more out the system, this is the session for you. The sky is the limit when you know how to talk to TFS programmatically. Using C#, we'll dig into the TFS Object Model and see how you can query TFS for detailed information. We'll also build a server-side plugin that allows us to respond to events that TFS publishes.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: David Batten


Creating and integrating IVRs with 3CX and .Net
  6  

Voice over IP (VoIP) is an exploding industry and the need for communications to be integrated with other systems and websites is growing. Focusing on the 3CX IP-PBX platform, a mature windows based VoIP system that many SMBs are fast adopting in all industries, we'll cover how to make websites and other software systems communicate with a company's communication infrastructure.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Shahzad Qureshi



Development Practices

CSS Best Practices
  38  

Best practices when creating CSS including organization, readability, naming / declarations, shorthand, CSS3/2 fallbacks, avoidances, and any other tips or tricks.

Volunteers: Peter Funk
Want to volunteer? I Can Present This!


Design Patterns 101
  28  

We'll take a look at the design patterns specified in the Gang of Four (GoF) book and discuss when it's appropriate to use these patterns and what kinds of problems they can salve. We'll also talk broadly about what a pattern is and what an anti-pattern is and how it can cause problems.

Volunteers: Jonathan Turner
Want to volunteer? I Can Present This!


Extracting Dependencies to Make Your Legacy Code Testable
  23  

We've all had to work with old, ugly code. We want to make it better and add new features, but it's hard to do without breaking existing functionality. How can we make it easier to add new code without breaking existing functionality? Add unit tests of course! But how do you add unit tests to code that directly interacts with the database, reads files off disk and updates the UI all at the same time? There are lots of techniques for getting this code under test, but one of the most powerful is to separate your external dependencies from the code you want to test. In this session we'll start with some not so pretty code that has no unit tests and look at some techniques for starting to get it under test. We'll be using .NET technologies, but the principles covered will have much broader applications.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Jonathan Turner


Branches and Merges are Bears, Oh My!
  21  

One of the most important tools you have have is a Version Control System (VCS). But while it can be very useful, it can also be very frustrating. It's common to branch your code, but when it comes time to merge, it can be a big problem. In this session, you will learn concepts to avoid branching in the first place and when brancing makes sense. Whether you use a centralized or distributed VCS, you'll see how to apply practices that can make a big impact in managing your VCS.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Craig Berntson


Let's talk about Domain Driven Design!
  20  

At Pluralsight we've been refactoring toward a pristine, isolated domain layer using the guidelines in Eric Evans' book, "Domain Driven Design: Tackling Complexity in the Heart of Software". While we've still got a long way to go, we've learned a lot on our journey so far. This session won't be a lecture, rather a discussion that I would be happy to facilitate. I'd love to share some learnings our team has had, but I hope to hear from others who are having successes and challenges with DDD. Here are some ideas to get us started: * The DDD pamphlet on the web is dangerous * A persistence-free domain layer reduces friction * A domain-free presentation layer reduces friction * You need tests all the way up * Immutability is delightful * An entity has a single responsibility

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Keith Brown


Yo Dawg I Heard You Like CQRS
  19  

CQRS stands for Command Query Responsibility Segregation. The change that CQRS introduces is to split that conceptual model into separate models for update and display, which it refers to as Commands and Queries. The rationale is that for many problems, particularly in more complicated domains, having the same conceptual model for commands and queries leads to a more complex model that does neither well.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Ryan Hansen


Simplify Testing with Test Doubles
  13  

This will be an introduction to code seams and a demonstration on how these seams allow us to use Fakes, Dummies, Stubs and Mocks in our testing. With these testing tools at our disposal unit testing will be easier and tests will be faster, more focused and less brittle. We will create test doubles by hand, then introduce 2 popular open source libraries for .NET that simplify this task: RhinoMocks and Moq. These libraries both allow us to reduce duplication and create more focused tests.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: David Adsit


Learn You Some Mercurial
  10  

Distributed version control is the next generation of version control. Git has become the poster child for DVC but what about its primary rival Mercurial? Mercurial is a DVC system with great Windows support, open source graphical interfaces and IDE integration. Come learn why people and even the enterprise are choosing Mercurial over other version control systems.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Bressain Dinkelman


LAMP vs. .Net
  5  

Ever wonder which one is better? In this session we will discuss the pro's and cons of each development stack. The speaker for this session has been an engineering manager at Novell, Omniture and now at Allegiance. He will share his findings from the past one and a half decades of using these technologies.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Jason Taylor


Agile Development Primer
  2  

If you are new to Agile or your organization is adopting Agile practices and you want to understand what is and how to separate truth from myth, join us for a casual and informative overview of Agile practices. We'll talk about the differences between Scrum and the project management institute's ACP (Agile Certified Practitioner) patterns. We'll also talk about some of the challenges scaling Agile to larger organizations, and whatever else we may have time for.

Level 100 - Introduction
Presenter: Mike Berry



Professional Development

It's All Geek to Me
  25  

The session teaches programmers how to communicate effectively and efficiently with non-technical co-workers, and the rest of the world in general. The session will cover how to communicate effectively:
• By e-mail
• In person
• By phone
• With upper management
• When saying "no"
• When saying "yes"
• When writing documentation

At the end of the session, attendees will understand how to get their message across clearly and quickly, in a variety of situations. They will also be able to communicate their message the first time. This will not be a boring session that puts attendees to sleep.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Michael Christian


How to Mentor Good
  22  

The title of this course is grammatically incorrect. You have just been mentored.
Being a mentor is easy. Being an EFFECTIVE mentor pays you back.

This session discusses how to do what you're already doing, but in a mutually beneficial manner. Raise the baseline skills of your team, while reinforcing your own skills and finding your weak points. Too bothersome? Requires too much time? You are most likely already a mentor, and don't know it.

This course is fit for EVERYBODY, no matter your profession (developer, manager, parent, chef, sewer scraper, whatever).

This session discusses:

  • What does it mean to be a mentor?
  • How to be a more effective mentor Developing your own skills by being a mentor How to be a good student (mentee?) How to be a good observer
This is a fun and interactive session. At the end of this session, you will know how to make your existing mentor relationships work for you, whether you are the teacher, student, or an observer.

Level 100 - Introduction
Presenter: Michael Christian


How to Kill Your Career
  9  

In this session we will take a satirical look at some of the many things that many of us do that can have a very big impact on our professional lives. We will work through a list of items things that can help to limit our professional growth and give us ‘opportunities to seek other career opportunities. After having a bit of fun and review of the negative side we will flip the discussion around and talk about how to move in the opposite direction and support actual career growth!

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Mike Erickson


Are You Certifiable?
  9  

In this session we will discuss some of the certification options available to developers and the merits of getting certified. We will discuss some of the pros, and cons, of technical certifications. We will also lay out a roadmap that will help you plan your approach to become certified or earning your next certification.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Mike Erickson


Transforming traditional portals to social intranets
  3  

We take a look at what we've learned from facebook and twitter to build new experiences that are demanded from our users. We'll look at real world portals and interactively design new improved UI/UX.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Joel Oleson



Open Source Development Track

Polling is for Chumps (WebSockets & Server-Sent Events)
  47  

Building a web application to show live data? Stop making requests every 5 seconds. Give your web server a break and let it tell you when new data has arrived. We'll cover two solutions, WebSockets and Server-Sent Events, for pushing messages down to the browser. Experience with Javascript is suggested.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Jason Staten


Test Driving Javascript
  38  

How to do TDD in javascript can be a daunting task. This course will cover the popular testing frameworks, and how to structure your javascript to make it testable so that practicing TDD when writing javascript is possible.

Volunteers: Matthew Smith , Zhon Johansen
Want to volunteer? I Can Present This!


Learning Backbone.js
  28  

Backbone.js supplies the model view controller pattern to JavaScript rich applications. Using this framework, you can create single page apps that provide models, collections and views that bind models to views and events. A great new way to provide structure to new or existing applications.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Andy Ridd


Grokking Javascript
  24  

Javascript has a bad reputation as being an overly complicated toy language, so many developers wrinkle their nose when they have to write code in it. But it's here to stay for a long time, and a web developer can hardly get by without doing at least some javascript. Most developers who only do a little javascript here and there treat it like it's C# or Java just in a browser. Some basic fundamental understanding of javascript can give you the basis for not feeling quite so lost when coding in the browser. From closures to truthy to the most common frameworks, this course will give you a foundation for understanding the power of javascript.

Volunteers: Zhon Johansen
Want to volunteer? I Can Present This!


Introduction to jQuery
  21  

jQuery is the most popular javascript framework. Learn to handle basic tasks and utilize jQuery to improve your page responsiveness and user experience. See how to structure your pages, how to manipulate the page based on user interaction, and how to talk to the server using AJAX.

Volunteers: Orion Hansen
Want to volunteer? I Can Present This!


Introduction to Underscore
  21  

"the bow tie to jQuery's tux" - Underscore is to javascript what linq is to .NET. Learn to work with arrays and collections easily. Most of the underscore functions will be highlighted as well as the underscore templating engine.

Volunteers: Craig Peterson
Want to volunteer? I Can Present This!


FubuMVC - Why are those Russian dolls so full of themselves?
  19  

FubuMVC is the framework that gets out of your way. We will explore and demonstrate how to build a web application with FubuMVC. Topics will include getting started, behaviors, view location (with razor view engine), conventions, bottles, and the new asset pipeline.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Corey Kaylor


Introduction to Knockout
  13  

An introduction to knockout. Using knockout's MVVM implementation you can clean up javascript code used to keep the page up to date with changing state on the client-side. Course will give a basic introduction to knockout and a walkthrough of building an interactive page.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Turn Your LAMP On!
  5  

How to setup and configure a LAMP development environment. This course will provide instructions on how to get the most out of your LAMP development environment. There will be discussion on various technologies that make up LAMP. For example, linux distros, web servers, database servers and languages. There will be discussion on how to get the most out of your environment.

Volunteers: Ray Hunter
Want to volunteer? I Can Present This!



Mobile Development Track

Advanced Android
  26  

Android is an exciting platform to learn, and continues to gain more and more popularity. I'd like to share some features I've learned in some of the projects I have created. This will include code examples and tutorials. The features may include, but are not limited to: GPS, Maps, Chat, WebServices, ListViews, etc. Please share what you may be interested in and I'll make sure to do my best to include it.

Level 400 - (Advanced): Experience with subject matter is strongly recommended
Presenter: Andy Ridd


Building mobile applications for all of the major platforms using PhoneGap
  24  

PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies and get access to APIs and app stores. PhoneGap leverages web technologies developers already know best... HTML and JavaScript.

Volunteers: Matthew Nielsen
Want to volunteer? I Can Present This!


Android Development
  24  

The Android environment is a great area for development. This sesion will cover creating applications in Android and using some of the built in features, including creating new instances and accessing API's and internal storage.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Cody Henrichsen


Publishing in the Android Market
  16  

So you've gone through some Android tutorials and put together some test apps. Now you're ready to get serious and publish something to the Android Market. If that sounds like you then this is the session for you. We'll use an app that I've published (which has been downloaded over 100,000 times) as an example. We'll go over how to upload new versions of your app as well as what kind of statistics, user feedback and error reporting are available to you, among other things.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Jonathan Turner


JQuery Mobile
  16  

A unified, HTML5-based user interface system for all popular mobile device platforms, built on the rock-solid jQuery and jQuery UI foundation. Its lightweight code is built with progressive enhancement, and has a flexible, easily themeable design.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


4 WP7.5 apps in an hour? Watch me!
  12  

Let's put Microsoft's claim to rapid application development to the test. We'll hit geoservices, accelerometer, local database, cloud services, and animation. I can't promise it will be pretty, but I'll show just how production Silverlight and the mobile framework is for developers.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Jerry Nixon


Getting Started with Windows Phone 7
  10  

In this session we will look at how you can start developing for Windows Phone 7 for free. This demo heavy session will walk through the basics of creating a Silverlight or XNA application for the phone. We will end our discussion with a brief overview of the steps needed to get your application into the marketplace. You will learn: • Understand how to download tools and begin creating applications for Windows Phone • See how to create applications using either Silverlight or XNA • Understand unique issues with developing for the phone including application activation and requirements for placing the application in the marketplace

Level 200 - (Beginner): Introductory / fast moving
Presenter: Scott Golightly


iOS CoreData and iCloud
  5  

Demonstrate CoreDate for iOS including its capabilities to work with iCloud.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Jayson Lewis


Iphone
  4  

Demonstrating working with controllers and views with storyboards. Presentation could include maps, lists, webservices, etc.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Andy Ridd



Java Development Track

Java Multithreading
  12  

Learn how to make java applications using Mulithreading.

Volunteers: David Solum
Want to volunteer? I Can Present This!


Unified Log4j Logging with MongoDB from Java and PHP
  7  

Learn how to migrate existing java log4j implementations to send detailed logging to MongoDB Document database as JSON logging message from multiple sources, then query the logging documents as a unified logging view. Unified example will also show PHP applications logging to the same MongoDB instance for a truly unified database logging mechanism.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Mick Knutson



Database Development Track

Database Development for C# Coders
  16  

In this session we will discuss some of the concepts that developers should know in order to create applications that will "play well" with SQL Server. We will briefly discuss SQL Server architecture and the different features of SQL Server that are available for you the developer to use. We will then dive into some of the most common issues that C# developers have when developing SQL code.

Level 100 - Introduction
Presenter: Scott Golightly


What to do with that new Shiny SQL Server
  11  

So your a developer in a company and you have no DBA and they say hey we have SQL Server x,y and Z! That you need to manage and take care of. What should you look for? What are the gotchas? What scripts do you need put on the servers? This presentation will walk you through the major Key points of what you should look for and why and what scripts are available out there for free to do much of the heavy lifting for you. Whether your a developer or a DBA this will show you what you need to look for in your SQL Servers.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Pat Wright


Begin, Commit, and Everything In-Between
  8  

Transactions are among the most fundamental ideas of modern database systems, yet most developers choose to ignore them, hoping to have a new job by the time it comes back to bite them. This presentation will cover why database transactions are important, and how they work. It will then expand on the topic to include other systems where transactions also apply.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Joshua Tolley


But it worked great in Dev! SQL Server Performance for Developers
  8  

If you've ever found yourself stating the above, this session is for you. For many developers, writing T-SQL that works is not the challenge. But too often, functional T-SQL is not the same as good T-SQL. In this session, we will examine why "SQL that works" is not good enough. Understanding indexes, exectuion plans, sargability, and more are all critical to writing good T-SQL. We will also examine several real-world examples of T-SQL that "worked great in dev" but caused major issues when it hit production.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Randy Knight


Lap Around SQL Server 2012
  6  

Abstract: This session will look at some of the major enhancements in SQL Server 2012. We will examine how these changes will impact developers and applications. In this session you will learn: • How SQL Server 2012 provides even greater reliability and disaster recovery • How you can use Data Quality Services to provide clean accurate data to stakeholders • How to use the improvements in analysis and reporting to derive business insight from the data in your database

Level 200 - (Beginner): Introductory / fast moving
Presenter: Scott Golightly


Be Friendly to SQL Server with TSQL Best Practices
  5  

This session will take a look at things that you should regularly know and use when coding TSQL. The items covered will show you things that will help ensure that your code is readable, efficient and maintainable. We will look at query semantics, things to avoid as well as how to be super friendly to the SQL Engine and allow things to work well. It will be a very good compliment to Randy Knight's session "It worked in Dev!"

Level 200 - (Beginner): Introductory / fast moving
Presenter: Ben Miller


Ask a DBA
  4  

Are you a coder/Developer in a small shop working on Database projects? Is SQL a four letter word to you and drives you insane? Are you in a large company but never can access your DBA's or don't know why they do what they do? Are you an accidental DBA and you don't know how to setup replication but you really need to? We have gathered a panel of DB experts, on Mysql, SQL Server , and Oracle to answer any and all your DBA questions. Why do we like to do things in sets why our cursor's bad? We will be here as DBA's to answer your questions and help you out! Bring your questions and your ideas and we would love to hash them out with you. Presenters, Ben Miller, Pat Wright, Randy Knight and Kris Davey

Level 100 - Introduction
Presenter: Pat Wright


SSIS - Moving data between Oracle and SQL Server
  4  

When doing data integration, a common requirement is to work with different systems, whether for importing data into a system from an external source, or to export it to provide to other systems. SQL Server Integration Services (SSIS) supports connection to Oracle, but there can be a number of challenges when working with them. This session is designed to show the software development and hurdles we encountered with using SSIS to move data sets back and forth between Oracle and SQL Server.

Level 100 - Introduction
Presenter: Scott Heffron


Understanding SQL Server XML Features Understanding SQL Server XML Features
  3  

The XML Functionality embedded into SQL Server 2005 and 2008 is one of its most powerful yet least understood features. This seems to be primarily because DBA's shy away from it and developers prefer to work with XML in their code. In this session we will explore the XML features of SQL Server and how we can bridge these two worlds. Topics covered will include retrieving relational data as XML, storing XML in the database using the XML Datatype, XML indexes, and the XQuery functions included in SQL Server. We will also look at using XML as stored procedure parameters as a way to pass large amounts of complex data between client and server.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Randy Knight



Systems Architecture

Getting Started with MVVM
  21  

The Model - View - View Model architecture is the preferred UI architecture for WPF applications, but it's a good architecture for other technologies as well. Learn about the core principles of the MVVM architecture and how it's used to overcome issues that are difficult using other patterns.

Volunteers: Brent Bulla
Want to volunteer? I Can Present This!



Electronics & Robotics Track

Going Beyond the Arduino
  21  

The Arduino has revolutionized the the hobbyist electronics and robotics enthusiast! It made programming microprocessors easy, but there are some limitations and to get past them you need to write code at a lower level. It's not as hard as you might think and it can take an idea from prototype to production ready. We'll also talk about ways to solve common electronics problems like conserving GPIO ports, Analog to Digital Conversion, debugging, etc.

Volunteers: Nathan Zaugg
Want to volunteer? I Can Present This!


Introduction to .NET Gadgeteer
  20  

.NET Gadgeteer is a platform for creating your own electronic devices using a wide variety of hardware modules and a powerful programming environment. Even someone with little or no electronics background can build devices made up of components like sensors, lights, switches, displays, communications modules, motor controllers, and much more. Just pick your components, plug them into a mainboard and program the way they work together. .NET Gadgeteer uses the .NET Micro Framework to make writing code for your device as easy as writing a desktop, Web or Windows Phone application. http://www.netmf.com/gadgeteer/what-is-gadgeteer.aspx

Volunteers: Nathan Zaugg
Want to volunteer? I Can Present This!


Programming for the Kinect
  20  

The Kinect is a motion sensing input device for the Xbox 360 video game console. The Kinect sold 8 million units in the first 60 days to claim the world record for the fastest selling consumer electronics device. Since then Microsoft has released a SDK that enables developers to write .NET code for the Kinect. This has enabled many games and other uses for the Kinect. In this session we will see how you can get started programming for the Kinect and what kinds of applications you can write. In this session you will learn: • How to turn the data from the sensors into a usable signal • Detecting skeletons and movements • Integrating Kinect into your application

Level 200 - (Beginner): Introductory / fast moving
Presenter: Scott Golightly



Show & Tell

Digital Comic Books!
  19  

I'm using standards based HTML5, CSS3 and Javascript to build a platform for 21st century comic books! I'll lay out the big idea, show off what has already been built and explain the code behind the immersive experience.

Level 100 - Introduction
Presenter: Jared Buttars


What are you working on?
  10  

Present your personal pet project. Why is it awesome and how did you build it?

Volunteers: Michael Christian , Alex Ford , John Bell
Want to volunteer? I Can Present This!


Contributing without Code
  4  

There are many ways to contribute to the code community without actually writing code. If you're a beginner or don't feel like writing Open Source software, there are other things you can do. We'll discuss: - Writing documentation - Blogging - Podcasting - Screencasting/Video - Contributing to Help Sites - Mentoring

Level 100 - Introduction
Presenter: Chuck Wood



Web Development

LESS is More: Dynamic CSS
  44  

CSS can be lame and very repetitive. Let's DRY it up. LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. In this session we will take a plain old boring CSS file and transform it into a leaner, meaner, more awesome LESS file.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Presenter: Paul Navasard


Freemarkable: Building a URL shortener with Rails and Cassandra in 1 session
  9  

Ruby on Rails is a tool that allows you to rapidly build web applications. Cassandra is a NoSQL database that scales extremely well. Put them together and you get an awesome setup for quickly accessing data and tracking analytics. In this session we'll actually demonstrate building a URL shortener with Ruby on Rails and Cassandra. By the time we're done, you should have a good idea of how Cassandra and Ruby on Rails work.

Level 200 - (Beginner): Introductory / fast moving
Presenter: Chuck Wood



Track Name

Session Name

Track

Level

Session Abstract