Fall 2013 - Sessions

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

An Overview of D3.js Charting Libraries - Kristina Durivage

D3.js is a powerful framework for data visualization. However, when all you need is a nice looking javascript bar chart, the idea of learning enough D3 get the job done can be a bit overwhelming. When you stumble upon your first charting library built on D3.js, you might feel relieved, but when you stumble upon your fifth, you are probably back to being overwhelmed. This talk will go through some of these alternatives and help you understand what the differences are between them so you can decide what makes the most sense for your needs.

Ambition: A New MVC Web Framework for Vala - Nick Melnick

There are tons of great MVC web frameworks out in the wild, for most major compiled and dynamic languages. They're great tools to get projects prototyped and quickly into production. The Ambition MVC framework is a hobby that turned into a reasonable web framework. Written using Vala, the Ambition framework allows a developer or team of developers to create web applications or RESTful services using a static-typed object oriented language without relying on a VM or a garbage collection cycle. Plus, being compiled, it allows cloud deployment to be easy and inexpensive, as memory and CPU requirements can be a fraction of PHP, Ruby, Python, or Perl sites. While it's not "officially" released, it's available on GitHub, and being actively developed. Patches, help, and end users are very welcome, and I'd like to show you more.

Fiddler and Your Website - Robert Boedigheimer

Fiddler is a great free tool for monitoring HTTP traffic between clients and web servers. It is very helpful for troubleshooting web sites and for gauging performance. Review the basic features and explore advanced techniques for extending Fiddler. Learn how to use Fiddler to capture traffic from smartphones, tablets, and non-Windows platforms.

JavaScript Tips and Tricks to Make Your Life Easier - Justin Wendlandt

Anyone who has developed for the web has run into JavaScript. It is a language that was first standardized right around the same year I graduated high school (1996). After 10 years of developing applications with C#, I find myself missing certain aspects of the .NET Framework and the C# language that I really wished existed in JavaScript. This talk will go over several aspects of JavaScript from the perspective of a C# guy. We will review tips and tricks to make life easier, software engineering patterns to increase code quality and general guidelines to make JavaScript more maintainable.

HTML5: All Your Games Are Belong to Us - Erik Onarheim

How do you build games in HTML5? In this talk we will learn about the basics of game development and how to apply it in a canvas based HTML5 game. We will be building a simple game live on the screen by leveraging JavaScript and new HTML5 features. We will learn about drawing to the HTML5 canvas, handling key input, maintaining frame rate, the subtleties of performing rotations and translations, setting up audio, sprite animations, basic game physics, and multiplayer support! I will also discuss some lessons in game programming that I learned the hard way so that you don’t have to. If you are interested in web game development, come learn about everything you need to make your first game –from the basics to the advanced.

Browser JavaScript Error Tracking - Todd H. Gardner

The web today is far more than your server stack! Content is combined with a rich interactive layer of JavaScript and mashed up with external social, advertising, or service providers. All this into a rapidly changing environment of new browsers, new rendering engines, new libraries, and new plugins. JavaScript can and should be better--we should know about our errors--and we should fix them! It's our mission to give you the tools to do this. Let's talk about why you should care about your clientside errors, and how to build a basic implementation.

JavaScript as a First-Class Citizen on iOS 7 - Kevin Whinnery

One of the most exciting technology improvements announced for iOS 7 was the new JavaScriptCore framework. With this new system framework, developers can write JavaScript code with full access to iOS platform APIs. This means that native UIKit applications, games, and everything in between can now be written in JavaScript, without the addition of a third party framework or missing out on rich platform APIs. After many years in purgatory, JavaScript is now blessed and officially supported by Apple for usage in native iOS apps. In this talk, we'll focus on what developers need to know to take advantage of JavaScriptCore bindings in iOS 7. We will also explore where this new technology fits in alongside existing JavaScript solutions for mobile development, like Appcelerator's Titanium and Apache Cordova (PhoneGap). To demonstrate how this new framework might be used, we will script a simple game using SpriteKit, the new built-in 2D game framework in iOS 7. There are many exciting possible applications of this technology, and I hope the JavaScript community takes full advantage of them.

How I Learned to Stop Worrying and Love Google Glass: An Introduction - Wolf Loescher

Google Glass has acquired mindshare as the first viable mainstream commercial "wearable computing" product. But for all the excitement (especially amongst the technorati), there is a lot of fear and doubt. What's it like to wear this thing all day? What can you do with it? What *can't* you do with it? When can I get one? How do I develop for it? Will it make me blind and/or sterile? Join Wolf Loescher to discus the good, the bad, and the the ugly about Google Glass.

Leveling Up Your Windows Phone App - Kamran Ayub

In this live coding demo, we’re going to start where most introduction Windows Phone development tutorials leave off, which is: what do you do after you have your basic app working? How do you leverage MVVM, add offline capability, cache data, handle logging & exceptions, and polish it for a great user experience? We’ll take an existing basic application (mine, in fact) and enhance it while I share tips, tricks, and gotchas related to building a fully realized Windows Phone app that will help you level up your existing application and learn what it takes to build a real live app.

Cross-Platform Mobile Development - Vince Bullinger

Mobile development is big and it’s only going to get bigger. You want your app to work on all major mobile platforms, but not everyone has the time, resources or even the desire to learn all of the native mobile frameworks. In this presentation, we’ll learn about how you can make mobile apps that work across all major mobile platforms without learning several entirely new tech stacks by utilizing cross-platform mobile development. We’ll go over some of the most popular cross-platform mobile development frameworks, discuss when to use them vs. native development and when to use each framework.

Can You Teach me How to Umbraco? - Ken Sykora

Umbraco is free and open source CMS with a great developer community that has been around for a while, but has recently started to really pick up traction. In this presentation, Ken will show you an overview of the features of the CMS, and walk through the basic steps for creating an Umbraco site, covering Document Types, Templates, Macros, and the programmability behind each of these features.

Using Microsoft’s Business Rules Engine with .NET Clients - Ed Jones

One common misconception regarding Microsoft’s Business Rules Engine (BRE) is that you need BizTalk to use it. Actually, you can call the Rules Engine from any .NET code. In this session, we’ll show you how to create a policy in the Business Rules Composer, deploy it to the Rules Engine, and then use Plain Old C# Objects (POCOs) to execute it. We’ll also include a very brief overview of BizTalk 2013 and how the BRE works. The demos will use Visual Studio 2012 and the BizTalk 2013 Business Rules Engine.

Internationalize Your JavaScript Application: Prepare for "the next billion" Internet Users - Kevin Hakanson

Are you prepared for "the next billion" internet users, most of whom don't use English as their primary language? This session will explore the globalization (internationalization and localization) of JavaScript based applications. It will look at the ECMAScript Internationalization API and popular open source projects like AngularJS, messageformat.js and jQuery Globalize.

Level-Up Your Web Dev Toolset With GruntJS - James Greene

Are you writing JavaScript or CSS for a web application? Maybe you even compile some CoffeeScript or SASS? Do you concatenate and minify your files? How about linting them? And you run your unit tests every time you make a change, right? ...RIGHT!? There's always been a lot of grunt work involved with frontend development but there have never been great tools for improving your workflow as a developer. That is, until Node.js came along and completely changed the game in terms of what is possible to do on the server-side. Come see how GruntJS (a VERY useful Node.js module) can make your life easier by taking care of most of that grunt work for you! Adhering to best practices has never been easier. This session will also touch on Node.js, NPM, PhantomJS, Bower, and more.

FUD in the land of MVC5 and SPAs - Lyle Luppes

There is certainly a lot of uncertainty and doubt around the topic of SPAs (Single Page Applications), and that makes any experienced programmer afraid. There are dozens of ways to create SPAs and each one promises to be the best (at least until next month when another new method comes out). Join me as I work through some of the issues faced while creating Single Page Applications using ASP.NET and MVC5. We’ll explore what’s new in Visual Studio 2013, MVC5 and WebAPI, and then look at a couple of techniques for creating SPA applications in MVC using MVC partial pages and using some of the popular libraries like Knockout and Ember. I’m sure we’ll be able to cover all those topics in one hour, right? :)

.NET API Frameworks - Joel Kauffman

A look at the various options to build API’s in the .NET world including ASP.NET Web API, Nancy, Simple.Web, ServiceStack and Open Rasta. We’ll look at the benefits and drawbacks of each. There will also be coding examples of how each framework is used to serve data.

Meet Angular.JS - Brian Hogan

Angular.JS from Google introduces a radically different way to build things for the web with HTML and JavaScript. In this talk, we'll take a look at the basic and most useful features of Angular as we build some simple apps and widgets we're already familiar with using new techniques. We'll look at Angular's support for data binding, services, directives, and testing. And we'll also talk about where Angular isn't a good fit.

The Haskell Ecosystem - Erik Rantapaa and Chris Wilson

This talk will give a tour of the Haskell ecosystem. No knowledge of Haskell is required. The talk will focus on the tools, sites and community resources available for learning and developing in Haskell.

Cross-platform apps with Windows 8 and Windows Phone 8 - Brent Edwards

Windows 8 and Windows Phone 8 now run on the same kernel. What does that mean for you, the developer? Two platforms, one codebase! With a little planning, much of your app code can be re-used between both platforms. In this session, we’ll take a look at useful patterns, tips, and tricks to get you writing one codebase that works across both Windows 8 and Windows Phone 8.

Windows 8.1 Demo - David Washington

Microsoft reimagined the PC with Windows 8 and it’s just getting started. Windows 8.1 continues its momentum and brings a new set of innovations to 100 million desktops, laptops and tablets around the world. In this session, you’ll see a fresh demo of Windows 8.1 led by an engineer from the Windows User Experience team; from major new improvements, to cool hidden gems and details. Get insight that you only can get from someone from the product team on why decisions were made. Finally, see some cool apps built for Windows 8.1 and get into the code for how they were made.

Reactive Extensions (Rx) in Action - Jim Wooley

You may have seen the theoretical discussions of Reactive Extensions and heard about the duality of IEnumerable and IObservable, but are still scratching your head to know how and when to use them. In demo filled session, we'll cover a number of cases where it makes sense to consider RX to declaratively compose complex operations over observable sequences in an elegant LINQ like syntax. We may even have some chocolate induced audience participation along the way.

Learn the Basics: Inversion of Control - Adam Barney

What is IOC? You’ve no doubt heard the term thrown around by seasoned developers. They sing of its usefulness and power – but when you try to learn it, it all seems to go over your head. That was me a few years ago. I finally made a concerted effort to really learn IOC and see what all these smart people were raving about. In this session, I will share my knowledge of IOC and try to help you understand why Inversion of Control is as good as the alpha geeks say it is.

Securing The ASP.NET Web API - Brette Esterbrooks

With OpenID, OAuth, Security Token Services, Basic Authentication, Digest Authentication and many other approach's the security story for the ASP.Net Web API is a confusing one to say the least. In this session we will talk about the various approaches to securing your Web API's as well as choosing the right method for your situation. In doing so we will cover authentication and authorization, cryptography and the various extension points of the ASP.NET Web API Framework that can help us create a production grade service.

Introduction to Service Oriented Architecture - David Boike

You may be under the impression that Service Oriented Architecture means building SOAP-based web services as a middleware for your application, which is painful and difficult to manage long term. Come learn a better way to employ the true power of SOA via asynchronous messaging with the NServiceBus, a .NET Enterprise Service Bus. You will learn about the differences between different application and systems integration options and architectural styles, and how a Service Bus architectural style can help you to cut down the complexity of a system to deliver truly scalable and manageable distributed solutions.

File System API: File I/O for Websites - David Boike

HTML5 has brought us many new ways to deliver rich content to the web. The File System API is one way we can enable offline applications that deal with actual files in a sand boxed environment for a site. It allows us to store binary files such as documents, images, and even JSON. The files can then be referenced with file system URIs to deliver them to the user, build the site itself, or even serve data using XHR. Learn the basics of the API, dealing with browser compatibility or lack there of, common use cases, and see tools to help you build your app in this code-centric presentation. Here is the tests and app I will be reviewing to cover the API: StephenErstad/FileSystemApiDemo. It can be run as a Node or .NET web app.

Breaking out of the MVC - Mike Weber

Ruby on Rails, and other Model/View/Controller based frameworks, are great tools for quickly creating web applications. Unfortunately the MVC is not a one-size-fits-all pattern and it tends to point developers away from proper object-oriented design. We'll talk about how to organize code beyond the MVC, decoupling application logic from the MVC, and when it's best to use a Service Layer instead of Models. While the talk will mostly focus on Rails, we'll be discussing established object-oriented programming principles and these ideas should be applicable to anyone working with an MVC-based framework.

High Performance JavaScript and CSS - Md Khan

The entire web is married to JavaScript. That’s not the fact. Fact is the guys who are cooking for the web, is crazy about JavaScript. Hence, you cannot imagine a single website (desktop or mobile) without JavaScript. Saving the marriage is not an option when your world is occupied by your better half in loading resources, delicious libraries, fancy charts/ visualization, two way binding, interactions with DOM, responsive U,I so and so on... When JavaScript do the core work like (grocery, taking dogs to walk/ kids to child care, weekends/ vacation plan, marathon shopping) CSS makes your site interesting. CSS performance is the silent killer that we always ignore. The goal of this talk is not to save the marriage rather to make the marriage most enjoyable, highly interesting and tremendously performing. High performance doesn’t have to some miracle that somehow works. After this talk, you would be the guy who rocks for high performance JavaScript and CSS. And you will believe, high performance code could reusable, readable and maintainable.

Intro to Django - Peter J. Farrell

Django is a Python MVC web framework for perfectionists with deadlines. In this presentation, we'll explore how Django exploits the principle of DRY and the ecosystem that surrounds Python by building a simple polling application for voting on issues. Django powers many well-know websites such as Instagram, Pinterest, PBS and Mozilla. Don't worry if you've never used Python before... you'll be surprised how productive you can be in Python with little knowledge.

Git More Done - Keith Dahlby

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.

Developing Productivity - Jenna Pederson

Learn real world techniques for improving your productivity as a developer. We'll skip past the hype that it's impossible to measure an individual developer or a team's productivity and jump right into the meat of learning how to tweak your personal and team development processes to deliver more value to your clients. This session will take a look at practices to help you improve, processes, and tools - everything from automating your app deployment to using a clipboard manager. As one of the best ways of finding new productivity tweaks is working with other developers, we'll also gather suggestions from the audience on what works in the wild.

Lambdas for Llamas: TypeScript from Zero to Web App - Judah Himango

JavaScript for big apps on the web has never been a great proposition. Enter TypeScript: application-scale JavaScript development. Use TypeScript to whip your web app's complexity into shape using types, modules, classes, and more. In this talk, we'll build a web app from scratch using TypeScript to see what this language is all about. Fun with lambdas and llamas.

Single Page Application with Knockout, Breeze, & WebAPI - Mike R. Emo

Single Page Application (SPA) with WebAPI, Knockout, and Breeze. Many of us have been using AJax for a long time to make our web applications modern and responsive. In this presentation I will demonstrate how to develop your entire UI with client side javascript, css, and html, using WebAPI for back end database interaction and middle tier logic. This presentation uses a combination of javascript libraries, including JQuery, Knockout, BreezeJS, History.JS, and Q-Js. These libraries make writing SPA applications easier than ever, with client side data binding and observable javascript objects among other features. (Recommended reading: http://www.tinyurl.com/jsscope)

T4 - Let Your Code Write Your Code! - Brandon H

As Software Engineers, doing the same thing twice immediately causes alarms to go off in our brains. So what if you could actually write code that would… write code for you? Come check out what .Net’s Text Template Transformation Toolkit (aka T4) has to offer!

Creating Ruby Gems: Why and How - Jason Hsu

You've learned the basics of Ruby. Now it's time for you to earn your 15 minutes of fame by publishing well-tested Ruby gems. Why should you publish a gem? Why should your gem include formal tests? How do you write, test, and publish your gem?

Automate the Things You Hate - Allen Sanborn

Spend more time coding and less time dealing with environments, builds, configuration, creating documentation, testing and talking to people you don't like by creating tools that support the development process and help you leave at 5PM. We spend all day creating tools that help the business be more efficient so why don't we create tools that allow us to be more efficient? Come and learn a bit about how to automate the configuration of environments (DEV to PROD), wrangle your builds/deployments and automate ALL THE THINGS from a .Net/Windows perspective. Tools = { .Net, PowerShell, Psake, Nuget, Chocolatey, Boxstarter, TFS 2013 Build-Deploy-Test, TFS Deployer, Virtual Machines }