Spring 2012 - Sessions

Here's a list of session titles currently submitted. Note that the final list may not contain all of the session ideas.

A Glance At Computer Therapy - Emma Smith

When we think about programming, we usually think about languages, debugging, and problem-solving. But have you ever thought of how programming can benefit others, especially with therapy? We will be looking at the growing field of computer therapy, which uses a combination of psychology and software programming to help others going through either physical or behavioral therapy. We will look at what it is, how it is used, both the psychology and programming parts of it, and how the software used is built to help others in therapy.

Targeting Mobile Devices with HTML5 and CSS 3 - Robert Boedigheimer

Mobile devices adoption rates have been amazing, including smartphone sales passing sales for PCs. Does your web site work well on mobile devices? Do you want to leverage your web development skills to provide mobile solutions to a broad range of devices rather than learn how to develop in multiple languages for multiple device platforms? Learn how HTML5 and CSS 3 are dramatically changing the capabilities of web sites on mobile devices, and how you can adapt your web site to be not just available but efficient across a broad array of devices.

3D Programming for iOS: What is OpenGL ES and How Does it Fit Into the Apple-verse - Robert Altman

Are you interested in integrating 3D graphics in your applications, writing 3D games, or just learning about 3D development? I'll introduce you to important 3D concepts and tools as we walk through the development of a 3D iPad application and explore the rich world of 3D graphics for mobile devices. Topics include:

  • OpenGL
  • How OpenGL ES fits into iOS and Cocoa-touch
  • Manipulating a 3D model in blender
  • Importing a 3D model in your application
  • Animating and manipulating the 3D model at runtime
  • Creating an icon from a 3D model
  • Resources for 3D development

Extensible, Durable JavaScript - Mike Hodnick

In this session we'll talk about taming the squirmy, naughty, and very powerful language known as JavaScript to build solid libraries for other applications to extend and consume. JavaScript is the programming language of the web and it is proliferating. It is moving far beyond tricks like manipulating an HTML DOM and is being used more and more to build powerful client-side libraries for web browsers. Even outside of the web with Node.js, JavaScript is now a primary language to build applications "on the server side" and on other Node.js clients. How do you design a "library" in JavaScript? How do you build JavaScript objects so that they can be extended? How do you protect your JavaScript objects from tampering at runtime? With JavaScript's dynamic nature there is more than one answer to these questions, and in this session we'll talk about them.

Extending jQuery's Event System to Create Custom Events - James Greene

The jQuery JavaScript library has become a household item in the web development community. It allows for simple event binding, DOM manipulation, and asynchronous requests. Many developers know they can extend jQuery using their simple plugin development process ... but did you also know that jQuery is extensible in other ways as well? We will focus on extending jQuery's event system to create our own custom bindable events, such as "textSelect", "multiclick", and "swipe".

Big Data and Healthcare: Wireless Monitoring, Data Storage, and Analysis - Wade Schultz and Brent Nelson

In this session we will cover several topics related to obtaining, storing, and analyzing health and fitness data. With the increasing number of cheap, portable monitoring devices, individuals can capture and record health-related data almost constantly. Unfortunately, few of these devices are capable of integrating or providing a useful assessment of the measurements. We will demonstrate how to quickly capture data from Bluetooth-enabled devices such as the Wii Balance Board, Zephyr Bioharness, and others using both WPF and Android applications. Once the data is captured, we will store these real-time results in MongoDB and provide a simple web service secured with Windows Identity Foundation (WIF) to access and submit data securely from mobile devices. Providing efficient, integrated services such as these will be increasingly important in providing the best data and analysis possible to both healthcare providers and consumers.

NuGet: From Concepts to Implementation - Vince Bullinger

NuGet is a relatively new package management tool for the .NET framework. While many of us have used it, not many of us have really looked too deeply into it. In this talk, we'll learn what NuGet is, how to use it, how to get the most out of it and finally how to build your own NuGet package.

Using Rails and jQuery Mobile For The (Quick) Win - Brian Hogan

Right now, there's a focus on creating native applications for mobile devices, but that can be costly, require a lot of additional time, and may be overkill for what you're doing. By combining the flexibility of Ruby on Rails with the ease of use of jQuery Mobile, you can develop quality mobile web apps. In this talk, we'll walk through creating a simple app, from scratch, that presents both a desktop and mobile view, and we'll talk about the ups and downs of this approach. Best of all, no prior knowledge of Ruby on Rails is assumed, and you'll have all the source code you need to recreate this project on your own.

Windows Server AppFabric Caching. Server Rich, Cache Poor! - Mohammad Faridi

The what, and how of Windows Server AppFabric caching 1.1. In this talk we will work with AppFabric Caching, getting it set up, how to place items in the cache, retrieve them, etc. We will talk about using Powershell to create cache, and monitor it. We will also talk about the pros and cons of configuration of the AppFabric Cache service. If we have time we might go over differences b/w Azure Cache and Windows Server Cache.

Marketing Yourself Using Various Forms of Social Media - Brandy Favilla

The social media rocket has launched. Facebook, Twitter, LinkedIn and more – are these time distractions or actual tools you can use to be more productive and/or assist in reaching your career goals? This seminar will take a look at some of the most commonly used social media tools and how best to use them in your career management planning, building awareness and engagement to be noticed by your peers and future employers. We will look at what career management means (whether you are actively looking for a new position or not) and how you can leverage social media as a tool to reach your goals.

Pair Programming Techniques - Chris Johnson

Pair programming is a trending practice. The old saying of "Two minds are better than one" holds true. However there isn't just one way to pair program. Here we'll cover techniques related to pairing locally as well as pairing remotely.

Android Development for .NET Programmer - Mike Marshall

The talk covers an introduction to Android application development using Eclipse, Java, the Android SDK and the Android Developer Tools(ADT) plugin. The talk targets .NET developers who have an interest in learning more about Android development but are unfamiliar with the toolset that is available.

Getting Started with jQuery Mobile - Brad Broulik

You need to build an app, and you need it to run everywhere. And you need it now! jQuery Mobile gives you the ability to write once and run everywhere. In this talk, we will discuss jQuery Mobile's advantages and unique features. We will also talk about jQuery Mobile design strategies, highlight many tips along the way, and see how to get up and running quickly.

Managing the .NET Compiler - Jason Bock

With the public release of Project Roslyn, Microsoft has finally let .NET developers get access to their long-awaited compiler APIs. The potential impact of having a compiler API available for all developers is immense. In this session, you'll get a tour of the elements behind this new API, such as syntax trees and engines, and how you can use them in code analysis and metaprogramming techniques.

.NET TDD Kickstart - Barry S. Stahl

In this session, the speaker and the audience will "pair up" for a coding session which will serve as an introduction to Test Driven Development in an Agile environment. We will use C#, Visual Studio and Rhino Mocks to unit test code to be built both with and without dependencies. We will also highlight some of the common issues encountered during TDD and discuss strategies for overcoming them.

Demystifying CQRS - Joshua Ramirez

CQRS is the latest architectural shiny object that's been spreading like wildfire across the blogosphre and social media. It's been touted as the next generation architecture for scalable systems and the cure for complex monolithic applications. The purpose of this talk is to get real about what CQRS is, the problem it solves, and when it's appropriate in your solutions. It may not be what you think it is. Along for the ride will be discussion about the fallacies of distributed systems so that you can properly set the stage in your system to take advantage of what CQRS has to offer.

Understanding the MVP - Connecting Continuous Delivery to the Lean Startup Movement - Aaron Erickson

The minimum? Why would I only want to do the minimum? It seems counter-intuitive - the idea that the best path forward when embarking on new product development should focus on the smallest possible product. Why not go big and try to launch with a big splash? Won't your customers be turned off by a lack of features and glorious complexity? As it turns out, taking the path of humility towards your market is a far more productive path. You can start with a small hypothesis - test that hypothesis against real customers. Using continuous delivery, you can rapidly iterating over your product, using data, rather than opinion, to guide your product development efforts. Such an approach not only costs less money, it allows you to vet the initiative before it becomes "too big to fail". In this session, we will cover what the MVP is, how you define one, and how you use validated learning to guide your efforts. Further, we will cover how agile software development and continuous delivery are essential to product development efforts that use this approach.

Expressing Yourself with C# Expression Trees - Chad Kulesa

Expression trees provide many new options for creating reusable code. Understanding expression trees will allow you to extend LINQ providers or even write your own LINQ provider. You can also write your own fluent API, removing the need for configuration or XML files. It is even possible to turn C# statements into Javascript! We will begin the journey of mastering expression trees, and adding this important skill to your repertoire.

Performance and Stability Tips for your iOS App - Matt Ronge

Nothing will sink your app's reviews like crashes and sluggish performance. Learn how to eliminate crashes and speed up your app from experience gained working on complex iOS apps. In this talk you'll learn tips and trick that lower your memory usage and weed out crashers. I'll go over Apple's profiling tools and how to best use them. In addition I'll give real world examples of performance optimization and how they apply to your code.

Windows 8 and XAML: Enjoy the Show - Jeff Brand

If you are a Silverlight or WPF developer, you are really a XAML developer, and that means you are Windows 8 Metro developer as well. Check out how XAML and C# provide everything you need to get started with Windows 8 application development. From an explanation of how .NET and WinRT relate to taking advantage of the cool new features in the WinRT, this session will introduce you to the foundations of developing great Windows 8 applications.

Javascript Unit Testing with QUnit and Mockjax - Nick Schweitzer

Unit testing is a core part of a developers job, and is an important part of software quality. All too many times though, Javascript is left out of the unit testing mix. Learn how to architect your Javascript to make it more testable, and also how to use unit testing frameworks to mock your AJAX calls, create repeatable unit tests, and integrate those unit tests with a continuous integration server.

Extending .NET Applications with MEF Plugins - J Wynia

The real world problems we're asked to solve with software are messy, the business rules change constantly, and they vary by customer or by context. Moving the things that change regularly into plugins lets you keep your core product solid while maintaining the flexibility your applications need. We'll use MEF (Managed Extensibility Framework) provide that functionality to a simple C# application.

Getting Started with SignalR - Kevin Griffin

SignalR is an asynchronous signaling library for ASP.NET. It's designed to help you build real-time web applications without a lot of hassle. In the past, developers would have to wire up "real-time" applications as a series of polls to a webserver, waiting for it to receive data back that was useful. This approach usually cost more in bandwidth than we wanted it to. SignalR simplifies this process, and makes it more useful for the ASP.NET developer. In this presentation, Kevin Griffin will guide you through implementing SignalR into your applications, and how you can take advantage of everything it has to offer.

Windows 8 Metro Apps Crash Course - Jeff Klawiter

Get the answers to the following questions: What is WinRT? Are you kidding me that you can use C# libraries in Javascript? Really, what am I "required" to do to get my app into the marketplace? Tell me Jeff...what do you "really" think about WinRT and Windows 8? Can you really teach me all I need to know in one session?

Boosting Your C++ Development with Boost - John Urberg

There has been a resurgence if interest in C++. Boost is a set of open source C++ libraries that are designed to work well with the C++ Standard Library. The libraries are peer reviewed and many of the libraries are implementations of upcoming C++ standard library releases. The libraries are cross platform and work on most modern operating systems. The presentation will cover some common libraries that you may want to use to simplify and speed up your C++ development.

Drinking From The Fire Hose: Web Edition - Lee Brandt

We all know that technology moves fast, particularly web technologies. It can be overwhelming trying to keep up with it all. In this session I will show some techniques for drinking from the information fire hose, and quickly discuss some late-breaking technologies that web developers should be investing some time to learn, including MVC, KnockoutJS, BackboneJS, Jasmine, CoffeeScript, Bootstrap, KendoUI and more!

MVVM with Caliburn.Micro - Brent Edwards

With all the MVVM frameworks out there, it’s hard to know which one is best for you. In this session, we will look at one of the best MVVM frameworks out there: Caliburn.Micro. We will build an application from the ground up to show how to get started with Caliburn.Micro from the perspective that matters the most: the code.

Using Python and the Selenium 2.0 API to Automate Web Browsers and Test Web Applications - Jachin Rupe

The Selenium 2.0 framework is a library that allows Web browsers to be controlled by code instead of mice and keyboards. When this is combined with python's unit testing framework it allows unit tests to be written that test the whole application stack. The tests can be run across browsers and operating systems. This presentation will show some of the power of selenium and several different ways it can be used through python code.

Estimate: reflections on the approximate - Avonelle Lovhaug

"When will it be done?" is the question most dreaded by software developers. You may think the most important tools for creating software estimates are a crystal ball and a divining rod, but there is a better way that won't involve magic. Plus, accurate software development estimates can enhance your professional image in your organization, and make life better by eliminating the mad dash at the end of the project. This session will improve your estimating accuracy by teaching you several techniques that I've learned through my 16+ years as a software consultant. It will also show you how to handle situations where an accurate estimate isn't possible. Bring your estimating questions and war stories!

Parallel Programming in .NET and Azure - Greg Levenhagen

Parallel programming remains a difficult task, but the .NET framework keeps making things easier for developers. With the various constructs available, like the addition of the Task Parallel Library in .NET 4, it is important to know what is appropriate for different situations. Devices continue to gain cores and the cloud offers easily distributed computing, so developers should understand how to utilize the environments. Come for a walk-through of how and when to use these constructs, whether that is in the cloud, a mobile device, desktop application or the web.

KnockoutJS and SignalR Mashup to Create Maintainable Real-Time Applications - Jason More

Combining two powerful web technoglies - KnockoutJS (MVVM for the web) and SignalR (Async signaling for real-time, multi-user web applications), you can create a web application that lets users communicate in real time with minimal development. We'll quickly explore simple setup for both, then show how nicely they compliment each other. We'll finish with an audience driven game of "Family Feud" built on this technology stack.

Async: Today and Tomorrow - Joe Mayo

Asynchronous programming (async) is emerging as a common programming practice, especially in .NET technologies such as Silverlight. In sophisticated scenarios, async can be complex, which is why Microsoft is adding language support in the next version of .NET. This talk will cover the current state of async, what the challenges are, and how your job will be made easier with the new language features.

Move Your Silverlight Skills to the Native Web with KnockoutJS - Judah Himango

The war's over. Web plugins like Silverlight and Flash have served their purpose well, but the native web is now sufficiently powerful to render web plugins superfluous and irrelevant. What's a Silverlight developer to do? Enter KnockoutJS. Instead of throwing away our existing skills built up through Silverlight, I'll show you how to transfer your skills to the native web via KnockoutJS, using familiar technologies like data binding, MVVM, templates, and commanding support.

Get Your SQL Server Under Source Control - Andy Pickett

Have you ever had that dream, where you're coding away, and a team mate asks you to "mail them that 1 stored proc", so you do, then they come back and say "that broke my local DB's schema!!". And then you wake up only to realize.... IT WASN'T A DREAM!?! Science tells us that less than 8.268% of Dev Teams use source control for their database. That's crazy talk! How do you people sleep at night?! Come see some fresh techniques using tools by Microsoft and Redgate to tame the savage data beast. We'll explore getting schemas and data into your favorite source control repository, complete with change history and merge resolution. The Tour de Force will be leveraging these tools into a Continuous Integration AND Deployment process, complete with auotmated Test Data Generation and Integration Tests. Then sleep well at night knowing all your data babies are snuggled in and safe.