Spring 2011 - Sessions
Here's a list of session titles currently submitted. Note that the final list may
not contain all of the session ideas.
"Introduction To..." Sessions
F# is a relatively new language from Microsoft, which enables idiomatic programming
in functional, imperative and object-oriented paradigms. With the release of Visual
Studio 2010, is now officially supported by Microsoft along side VB.NET and C#.
This talk will focus on functional programming in F# as well as units of measure,
computation expressions and metaprogramming with quotations.
Introduction to BASH Shell Scripting - Brock Noland
Many software engineers consider "shell scripting" to be a dark art best left to
system administrators. In the distributed computing world basic shell-scripting
knowledge can save you hours of time, per week. In this session we will cover the
basics of shell scripting by diving right into working solutions, like processing
logs using shell in a Hadoop cluster, and monitoring for race conditions, gathering
the required artifacts once the condition is hit. In addition to learn shell scripting
specific structures such as assigning the output of a command to a variable and
chaining basic utilities together to accomplish a complex task. Finally, every attendee
will receive free shell access to a sandbox I run for users to learn shell!
Introduction to Testing Any Site With Cucumber and Selenium -
Chris Johnson
Do you have a website? Do you have any tests for that site? Even if you have unit
tests integration tests can help you target workflows such as a checkout process.
In this presentation I will talk about testing any site with Cucumber and Selenium.
I will show what the tests look like, and explain the different ways to run these
tests, from running them locally, building your own selenium grid to using Sauce
labs as your testing infrastructure.
Grails is an advanced and innovative open source web application platform that delivers
new levels of developer productivity by applying principles like Convention over
Configuration. Grails naturally complements Java application development since it
is built on Spring and based on Groovy, a dynamic language for the Java platform.
This session will start with a brief overview of the exciting Grails web application
framework. Topics covered include the structure of a Grails application, data querying
and persistence, validation, controllers, Groovy Server Pages (GSPs) and tag libraries.
The second part of the session will be a hands-on demonstration, showing the agility
and speed of development that the Grails framework is known for.
Introduction to Advanced Ruby - Brian Hogan
"Introduction to Ruby" talks aren't that exciting. Every language has strings, arrays,
conditionals, and evaluation, and by now, everyone's sick of "build a CRUD app in
15 minutes" demos. Every language has its own special qualities that set it apart,
and this talk focuses what makes Ruby different and special. We'll cover seven advanced
language features and techniques, and we'll demonstrate how we use those to solve
everyday problems. We'll talk about message passing, extending core language features,
lambdas, and we'll even write a little code that writes code. If you've looked at
Ruby and thought "What's the point?" then this talk is for you.
Introduction to Android Tablet Development - Donn Felker
In this session you will be introduced to the new Android 3.0 release, Honeycomb.
This release of Android is targeted at tablet development, but is compatible with
previous versions of Android. The new features of Android 3.0 will be discussed
with some code samples that will outline the new features and how to use them. You'll
learn about the new action bar, fragments, new home screen widgets and the system
bar and how the new tablet emulator works.
Introduction to the BlackBerry PlayBook - Chris Black
Leverage your existing skills to build native applications for the PlayBook using
WebWorks, Java or Adobe AIR. In this session we'll size up the PlayBook to the competition
and cover everything you'll need to get started with the BlackBerry Tablet OS SDK.
We'll build an application from scratch, test using the PlayBook simulator and walk
through the steps for submitting to the BlackBerry App World. To conclude, we'll
cross compile our application to run naively on Android devices without any change
in code!
Scala is a statically typed language designed to run on the both the JVM and CLR.
It is considered a hybrid that brings together OO and functional programming concepts.
This talk will touch on a broad range of features including traits, functions, and
pattern matching
Standard Sessions
Lessons Learned Building CSLA .NET - Rockford Lhotka
CSLA .NET is one of the most widely used open source development frameworks for
the .NET platform, and it has been available since before .NET shipped nearly a
decade ago. During this time Microsoft has changed .NET itself, as well as the various
UI technologies supported by .NET. And they've introduced new platforms such as
Silverlight and Windows Phone 7. More recently, CSLA .NET has been ported to the
open source mono, along with the MonoTouch and MonoDroid platforms. Join framework
creator Rockford Lhotka as he discusses the challenges involved in building, maintaining,
and evolving a large and widely used framework over a period of many years and through
all these platform changes.
Making the Leap to Freelance Programming - Avonelle Lovhaug
Have you ever felt like your day job just might not be for you? In this session,
Avonelle Lovhaug will cover all the basics that you need to know to start your own
freelance programming business. You'll learn how to find your perfect client, some
non-sleazy marketing techniques, and how to get paid what you're really worth. We'll
also cover setting rules and boundaries for your business, and some ideas for regular
income that can help you to avoid the feast or famine cycle that plagues most freelancers.
NodeJS is a Server Side JavaScript (SSJS) implementation built off the Google Chrome
V8 JavaScript engine. It is grown considerably in popularity since its initial public
release a little over a year ago. Some have called 2011, the "Year of Server Side
JavaScript." Why? Is it just a fad? What does it offer different from other server
side languages and frameworks? What makes it stand out? In this talk, we will be
discussing the answers to those questions as we look at design philosophy behind
NodeJS. We will also look into its implementation and some demo applications. The
goal is for you to come away with a clear understanding of what NodeJS is, what
problems it tries to solve, and how it could be used in your application stack.
The Reactive Extensions (Rx) library is a new framework from Microsoft Research
for reactive and asynchronous programming. Why should you care? Because it's the
best innovation to come to .NET since LINQ: it will simplify your code, fix memory
leaks, institute tikkun olam, and infuse your code with all kinds of techno-zen
awesomeness. You'll walk away from this talk with just enough knowledge to be dangerous.
Oh, and you'll also grok some very practical ways to improve your code using Rx.
Getting Dirty With Windows Phone 7 - Brent Edwards
You've downloaded all the tools and know how to publish an app for Windows Phone
7. The IDE is ready to go and you have a killer idea. Now what? In this session,
we will talk about many of the key concepts you will need to understand to develop
good applications for Windows Phone 7. This will be a code-heavy session where we
will be getting our hands dirty to illustrate these foundational concepts in action.
Data Visualization and Web Applications - Aaron Godin
The Internet is an abundant source of semantic information which can be analyzed
to make sense of abstract ideas, to discover trends of social interactions, and
to predict future outcomes. In this presentation, we will go through the concepts
of data mining and analysis along with the design aspects of creating graphical
representations. Cloud applications and social networks are a perfect resource,
and we will discuss how the web plays an important role in today's world of data
visualization.
Acceptance Test Driven Development with SpecFlow, WatiN, and WebAii -
Christopher Bartling and Joel Levandoski
SpecFlow is an open-source Behavior-Driven Development testing tool for .NET that
lets you write specifications using 100%-Cucumber-compatible Gherkin syntax. It
integrates with Visual Studio, providing file templates to speed your testing efforts.
It also integrates seamlessly with the Visual Studio debugger, so that you can set
breakpoints in the SpecFlow-based tests. It can be used in conjunction with WatiN,
an open-source library for automating web browsers using .NET, and WebAii, Telerik's
free testing framework for Web and Silverlight applications. This session will give
a brief overview of the tools, highlighting each tool's role in facilitating acceptance
testing. The second part of the session will demonstrate the usage of the tools
in testing real web and Silverlight applications.
CSLA .NET is one of the most widely used development frameworks for .NET, Silverlight,
and Windows Phone 7. MonoDroid is a version of mono for Android. Mono is an open-source
implementation of Microsoft .NET. In this session Rocky will discuss his experiences
in porting CSLA 4 to MonoDroid for Android. You'll learn what the MonoDroid development
experience feels like, how compatible it is with .NET, Silverlight, and WP7, and
what issues were overcome to get CSLA 4 working on this different platform.
Turning Passion Into Words - Tips, Tricks, and Tools for Aspiring Authors -
Brian Hogan
For many of us, writing code isn't just what we do for money; it's something we
love to do and share with others. One of the best ways to share that passion is
through writing. In this talk, we'll explore the world of writing and publishing
content for programmers. We'll explore the writing and editorial processes, including
how to really connect with your audience, and we'll go over some tools and techniques
you can use to organize your writing and produce something real, useful, and unique.
Finally, we'll talk about what it takes to make a great book proposal and what it
takes to get the word out about your writing. Visit http://ietherpad.com/U6zreCRCSP and add specific questions
/ topics you'd like to see.
In-Depth Unit/Integration Testing Using VS2010, TFS-2010 and Other Platforms/Frameworks
- Baskin I. Tapkan
Testing, continuous builds, integration concepts using Visual Studio 2010/C# 4.
Will demonstrate Unit and integration testing with code demos, and mention and list
other types of testing, including Continuous Integration, Web testing, Stress/Load
testing, User Acceptance testing with brief introductions. Showcase other testing
frameworks available in .NET. Emphasize the importance of unit and integration testing
and the differences around them. Demonstrate tooling around setting up a continuous
integrated development environment. Showcase Team Foundation Server 2010 and TeamCity
Personal Edition.
Background Jobs with Resque - Jon Homan
As more and more web applications integrate with third-party APIs and other external
data, processing those external resources in the background more and more important.
A simple job runner is a great start, however as your load increases, you very quickly
outgrew that simplistic queuing system. We will cover where getting started using
Resque and Redis, how to test your jobs, when it makes sense to use Resque, implementations
of Resque in other languages, and look how I've used Resque.
Using Agile Development Techniques - Kurt Christensen
In this overly-ambitious session, Kurt Christensen will censor neither his language
nor his opinions in a feeble attempt to distill 8 years of good and bad experiences
as an agile coach into a single hour, telling you absolutely everything you need
to know to make your next project succeed in magnificent fashion, with rainbows
and flying unicorns! How's *that* for some "agile" snake oil?
Secure Coding practices for .NET - Glenn Leifheit
Developer training rarely covers secure coding techniques, that are sorely missing
in today's application landscape. We will discover what security is built into the
.NET framework as well as coding techniques that can be used to build a more secure
and robust application. Building security into the application design and coding
is a necessity these days, bring your skills up to the next level.
Getting Started with MultiScreen Development using Silverlight and MVVM -
Jeff Brand
This session an overview of developing multiscreen applications targeting the web,
desktop, Windows Phone 7, and beyond. Starting with a quick discussion of designing
for code portability and using the MVVM pattern, the session will then move into
an example of building an application that targets multiple enviornments.
The Model-View-View Model pattern has become the de facto architecture for applications
written with WPF and Silverlight for good reason. It makes WPF and Silverlight applications
easier to write and maintain but sometimes it can be difficult to understand how
to get a task done or how the pieces all fit together. This session will go over
the guiding principles of MVVM, explore the responsibilities of each layer, and
explain the differences between MVVM and MVC. I will focus on the common problems
teams run into when developing an application and how you can solve them by understanding
the "How?" and "Why?" of MVVM as well as the "What?" you may have seen before.
Automated Web Testing in Team System 2010 - Jeffrey Byboth
Manual testing of web applications is expensive and repetitive. Often the QA staff
does not have the capacity or the project schedule does not include time to do a
complete regression test of applications for each release. Often when the project
gets behind the first thing to reduce time on is testing. Using automated web testing
in Team System 2010 can eliminate much of the repetitive manual validation of web
sites. Not only can it exercise your web application, but it generates really good
reports to show to management.
- Walk through of creating a simple web test against a simple web application
- Making sure your web test is data driven and maintainable
- Creating custom web test plug ins using c#
- Coded Web Tests
- Load Testing with your web tests
Enhancing User Experiences With Reactive Extensions -
Bryan Anderson
Reactive Extensions (Rx) is a library from Microsoft that allows you to write LINQ
queries to compose events and asynchronous operations into simple yet powerful constructs.
Rx is packed with useful functionality that allows you to get a lot done with very
little effort. This session will go over some common Rx functions, like Throttle
and Zip, and demonstrate how easily they can be combined with various events to
enable you to create superior user experiences.
Developing a Windows Phone 7 App for Business Users -
Erik Mau
Developing a native mobile app sounded cool, but looking at the developer tools
for iPhone development made me sick. The launch of WP 7 last year opened up a world
of opportunity for Microsoft developers, and we were ready to jump on the bandwagon.
This presentation will provide an overview of the application and a behind the scenes
look at the approach we took to develop the application. In addition, we will highlight
the phone controls and phone capabilities that were used as well as discuss lessons
learned along the way.
Getting Started with Windows Azure Development - Brent
Stineman
Curious about Windows Azure but not sure where to start? This session will cover
the basics from where to get the resources, how to learn the platform at no cost,
and options for "free hosting".
Windows Azure Platform Roundtable - Brent Stineman,
Jim White, and Adam Grocholski
Come and see three of the region's top Windows Azure experts (Adam Grocholski, Jim
White, and Brent Stineman) discuss Microsoft's public cloud computing platform.
Each will present a short related topic of their own selection and take questions
from the audience.
Distributed Application Development with NServiceBus -
David Boike
Building reliable, scalable, maintainable distributed applications is next to impossible
without the right tools. NServiceBus is an open-source .NET framework that will
help you to do just that. This session will focus on code and cover the fundamentals
of NServiceBus development, including one-way messaging, publish and subscribe,
implementing long-running business processes, and scaling out.
Build a N-Tier App with Entity Framework, WCF Data Services, and ASP.NET MVC - Dave Stienessen
See how the N-Tier application model is alive and well with the latest Microsoft
technologies. This session will show you how to leverage Entity Framework 4.0, WCF
Data Services, and ASP.NET MVC to quickly put together an application that works
in a 3 tier distributed network environment.
Introduction to jQuery - Brad Candell
jQuery is an extremely popular and fast growing Javascript Library that focuses
on cross-browser support and simplifying the act of writing client-side scripting.
This small Javascript library packs a big punch for HTML developers looking to add
increased client-side functionality to their web sites. jQuery features simple HTML
DOM element selection and traversal, event binding, CSS manipulations, animation,
and AJAX functionality. jQuery also boasts an extensibility aspect with a very large
implementation base. You can easily find a jQuery library to achieve many different
web functions that you may already be looking for. This presentation will focus
on getting you started with jQuery development and how you can use it with HTML,
CSS, and Images to create some very neat effects with relatively little effort.
Introduction to Apache Hadoop - Brock Noland
Facebook, Yahoo and others have decided there is too much value in the data generated
by their users to delete it. Ever! To store and process this data they are turning
to Apache Hadoop. In this presentation we will answer the following questions. When
is Hadoop appropriate? What are people using Hadoop for? How does Hadoop fit into
our existing environment? Finally we will investigate the internals of a sample
Hadoop MapReduce job.
Clojure is a new dialect of Lisp originally targeted for the Java Virtual Machine,
which has also been ported to the CLR. This session will introduce you to Clojure
by way of exploring a Clojure-based web application deployed to Google App Engine.
Dynamic .NET Demystified - Keith Dahlby
It's been a year since dynamic .NET went mainstream with the promotion of the Dynamic
Language Runtime into .NET 4. This session will review what the DLR is, dive into
how it works with C# 4 and Visual Basic 10, and look at some interesting applications
of the DLR. In particular we'll discuss Clay, a dynamic library used by Microsoft's
Orchard CMS; C# interop with IronPython; and simplified data access through Microsoft.Data,
Simple.Data and Rob Conery's Massive.
Powershell Eye for the Monitoring Guy - Zach Mattson
Server monitoring can be expensive and is generally licensed for only critical production
servers. In this session, learn how to utilize Powershell along with SMO to not
only be proactive, but productive in monitoring the servers in your environment.
Attendees will come away from the session with an understanding of how to check
a server's health and collect performance metrics. This will be useful for general
monitoring in your environment and can also be used for collecting data in a physical
to virtual migration. The session will include a brief introduction and focus on
working through demos of proven scripts you can utilize right away.
TDD Dojo: Test-Driven Development by Example - Todd H.
Gardner
Have you read about Test-Driven Development, but uncertain of how it would really
work? Would you like to see how real practitioners discuss requirements and build
tests? In this session, two developers will pair to solve a software problem using
Test-Driven development live. You will see them discuss their approach and build
their tests unscripted. Later, anyone in the audience will be invited up to continue
the Dojo and learn TDD hands on.
Dev for the XBox Kinect with .NET - Mike Hodnick
The XBox Kinect device has become just as popular among programmers as it has among
gamers. From air-guitar apps to user interfaces that resemble scenes from the movie
Minority Report, programmers have been creating unique and innovative apps with
the Kinect since it was released in late 2010. In this session we'll talk about
how to develop Kinect-based apps for Windows 7 with managed .NET code. The session
will cover the foundations of what you need to build Kinect apps such as drivers,
libraries, detecting and focusing on a user, hand tracking, and simple gestures
such as swiping and pushing. We'll also get in to applying these concepts to Windows
technologies such as WPF and show live examples of Kinect being used in real apps
for real-world scenarios.
Everything You Ever Wanted to Know About the Razor View Engine for MVC -
Vince Bullinger
In January, Microsoft released ASP.Net MVC 3. With it came a brand new view engine
called "Razor." Razor was created to address some of the headaches involved in developing
with MVC 1 and 2. In this session, we'll go over previous view engines, design goals
for Razor and a breakdown of Razor's most important features.
A Journey into Mobile Development - Brian Hugh
A year ago, I hopped on the mobile/smartphone band wagon, by picking up a Motorola
Droid. The original/milestone Droid phone from Motorola. I've been picking up learning
about "mobile" development and what it means to business and technologist in my
limited time, juggling multiple projects. The first thing you are faced, when you
want to explore mobile development, is what platform do you want to target? Apple/IOS,
Android, Blackberry, WebOS. As a systems integrator, with a number of technologies
under my belt, the question was how to you reach more than one platform. What I
discovered, is the web based frameworks and html5 are starting to emerge. Yes, these
frameworks are still a little on the bleeding edge of things, but isn't that what
all the fun is about? Get a peek into some of the emerging frameworks in this area.
These frameworks include jQuery Mobile, Sencha, Titanium, SproutCore, PhoneGap,
Rhodes are a few of the leading/bleeding frameworks that let you target multiple
platforms. This won't be a deep dive, but will be a mid-level overview of some of
these frameworks and my journey.
"I Didn't Know You Could Do That!" – .Net Tips and Tricks -
Jon von Gillern
Visual Studio took over 43 MILLION lines of code to write – it's big. Really BIG.
There is no way that a single developer can know everything about Visual Studio
that will be useful. That's where this session comes in. We'll cover a plethora
of shortcuts, strategies, hidden features and freeware that will save you a gigantic
amount time when developing your .Net application with Visual Studio. Beginners
and advanced programmers alike will walk away saying, "I didn't know you could to
that!"
Advanced Topics in Debugging With Visual Studio - Jon
Stonecash
This session covers the more complex debugging scenarios in Visual Studio including
to address debugging more complex scenarios. We'll start with setting breakpoints
(absolute, conditional, and advanced). Next, we'll discuss capturing debug output
with the System.Diagnostic.Debug statement, how and when to do tracing and logging,
debugging web pages, and analyzing log files with parsing and filtering. We'll move
to debugging performance issues using timers within the code and using Visual Studio
performance analysis. Finally, we'll finish with dealing with memory leaks; what
are the typical causes and solutions, using the .NET garbage collector to hunt down
the problems, and using SOS to poke around in memory during execution.
Extended Events, Work Smarter Not Harder - Jason Strate
There are many ways to performance monitor your SQL Server environment. In this
session we'll review Extended Events, which is one of the newer SQL Server monitoring
platforms. Learn the ins and outs of how to get detailed information on the errors
and events that occur within SQL Server and how to dig into the information. With
a few T-SQL statements, issues that could take weeks to research can be investigated
in minutes.
Enterprise iOS Development with MonoTouch in C# - Kenny
Goers
With the proliferation of the plethora of iOS devices making there way into the
enterprise, it's only a matter of time before your enterprise applications will
have to be supported on iOS devices. If the vast majority of the enterprise code
you already have is in C#, why learn develop in Objective C when the language you
have the majority of your experience in is waiting for you. This session will walk
through an application that is built to run on both the iPad and the iPod/iPhone
platform, utilizing enterprise web services and approximating a standard enterprise
application.
Become Comfortable with WCF Systems Design - Joshua Ramirez
WCF is rapidly gaining popularity as a tool to create modern web services, but can
it help you accomplish more? In actuality, WCF is a framework designed to help you
develop robust service oriented applications and systems. Many developers find themselves
suddenly tasked with building a system using WCF and can become overwhelmed with
the scope of the WCF Framework. Fortunately, WCF is easily embraced when theres
an overall understanding of how the capabilities are organized. In this presentation
we'll first cover the capabilities of WCF and how they align to currently well known
integration strategies. Next, we'll consider some common challenges you'll encounter
when developing enterprise applications and systems with WCF. Lastly, we'll learn
a few of the common scenarios you'll find yourself working with in the real world.
You've seen the intro, you've cloned from GitHub, but you're still not convinced
Git's learning curve is worth the climb. This session aims to shed some light from
the real world on how Git is different, why the differences matter, and introduce
some features and use cases you never knew you couldn't live without. Topics covered
will include interactive rebase, interactive add, reflog, bisect and more.