Twin Cities Code Camp

Spring 2013, Mon, Apr 01, 2013


  • Adam Terlson

    9 Tips for a clean BackboneJS App

    by Adam Terlson

    This presentation seeks to eliminate that spaghettified, unmaintainable, untestable mess that JavaScript is so famous for producing and turn it into something beautiful. Developed after working on large teams with devs unfamiliar with JavaScript (not to mention Backbone) and yet tasked to create with it, I will walk through the 9 tips that I've found in practice will make your BackboneJS implementation easily maintained, easier to read, run better, and will allow you to effortlessly write those ever-so-important unit tests. Heavy on code samples, best practices, anti patterns, gotchyas, and random insights, this presentation is meant to serve as a reference point for creating a beautiful Backbone implementation for apps of any size and reduce the learning curve of BackboneJS. Prior experience working with Backbone is recommended, but not strictly necessary.

  •         Aaron Erickson

    Big Data or Big Hype - Analytics from the Developer Perspective

    by Aaron Erickson

    Unless you've been hiding under a rock, you have likely read an article, seen a talk, or read some noxious vendor's brochure hailing the coming "Big Data Revolution". The hype has become so thick that anything that involves a database is being rebranded "Big Data" in the same way that anything that involves the Internet has been rebranded "Cloud".

    In this talk, we are going to separate the cool stuff from the malarkey. We will cover:

    • Big Data and Analytics - Why it Matters
    • What is a Data Scientist? - How are they different?
    • What kind of problems are solved using Analytics?
    • What are the boundaries? What kinds of things should not be called Analytics?
    • What technologies are used? Do they involve functional programming? Hint: It isn't just trendy Hadoop stuff...
    • Real world examples from recent projects

    By the end of this talk, you should be both:

    • excited about analytics - what it can really do for you and your clients
    • prepared to fight the battle between the hucksters who are out there rebranding anything that remotely involves a database as big data - and the real thing that can really drive business value
  • Matt Milner

    Build Your Mobile Applications Faster With ZUMO (Windows Azure Mobile Services)

    by Matt Milner

    Almost every mobile application, regardless of platform, shares the need for basic services such as data storage, identity, and push notifications. Come to this session and learn how you can leverage the Azure Mobile Services platform to quickly build the service back end for you mobile application on Windows 8, Windows Phone, and even IPhone and Android. In addition, you will learn how to setup scheduled jobs (CRON anyone) in Azure mobile services for mobile applications, or any internet application.

  • John Culviner

    Building a Single Page App the Easy Way With Durandal, Knockout and FluentKnockoutHelpers

    by John Culviner

    So you want to write a single page app eh? I’m not going to pretend that there aren’t lots of frameworks out there to get the job done but something about Durandal.js feels different – it’s simple, it runs on Knockout.js for MVVM goodness and importantly you don’t have to write much code! FluentKnockoutHelpers builds on the power of Knockout by using .NET and the Razor view engine to create ‘ASP.NET MVC like’ statically typed helpers for use with Knockout. Utilize static typing, intellisense and the compiler you already have in .NET to make Knockout development easier! In this presentation expect to learn some pros and cons of SPAs including reasons to create a SPA in the first place. After that we’ll dive right into the code of a non-trivial SPA utilizing Durandal.js, Knockout.js, Require.js, Razor and WebAPI.

  •         Mike Benkovich

    Building Connected Apps – Patterns, Practices and Mobile Services

    by Mike Benkovich

    Today's users don't live on just a workstation or a laptop. With the proliferation of laptops, smart phones, and tablets people work from a variety of forms and clients. Building applications that can leverage a consistent view of identity, data and services will enable the workforce to be productive wherever they are. In this session we'll explore how to design and build applications that span the various device forms and platforms using the tools and features of the Cloud that make it all possible and easy.

  •         Rockford        Lhotka

    Building Modern Apps with Windows 8 and Azure

    by Rockford Lhotka

    Windows 8 introduced a new programming platform called the Windows Runtime (WinRT). This platform is designed to support the development of “modern apps”, which are defined by being very user-centric, having quality user experience and design, and being integrated with cloud services such as push notifications. In this session you’ll learn the basic flow of creating a WinRT app that integrates with the Windows 8 environment, as well as leveraging the powerful features available from the Microsoft Azure cloud platform.

  •         Keith Dahlby

    C# From Abstract to Yield: How Well do You Really Know C#?

    by Keith Dahlby

    With each successive version, C# has added more and more keywords to do new and (mostly) exciting things. Before you can use them, you need to know they exist. From flagship language features like async and LINQ, to the subtleties of co- and contravariant generic type parameters, we'll discuss every language keyword/operator and provide some context for when you might see it in the wild or want to use it yourself.

  • Barry Stahl

    Code Portability in .NET

    by Barry Stahl

    Using .NET Portable Libraries and the Dependency Injection pattern we will build an application with versions that run on 3 distinct platforms (Win8, WP8 and the Web), with the goal of achieving the greatest possible reuse across those platforms. The techniques we use will minimize the code we have to create without having to resort to the source-control trickery of the past. This session will be extremely code focused as most of it will be spent in Visual Studio, creating code.

  • Brad Skeel

    Custom .Net Application Monitoring using SCOM 2012 sp1 and the Global Service Monitor

    by Brad Skeel

    With the release of System Center Operations Manager 2012 SP1, one of the major focus areas has been increased ability to monitor .NET applications. If a company is heavily invested in custom application development, monitoring and getting issues quickly into the hands of developers is key to overall successful customer experience. SCOM 2012 SP1 extends the reach of .NET application monitoring, and with the addition of the Global Service Monitor, extends that reach outside the data center to the cloud via Windows Azure. This presentation focuses on the .NET application monitoring aspects of SCOM 2012 SP1 and shows the Global Service Monitor tool monitoring a standard .NET application.

  • Brock Fredin

    Data Mining Using Open Tools

    by Brock Fredin

    Use Selenium, C#, Raven, and Ninject to mine data and screen scrap information from the internet. The demo includes mining users from a social network site and storing them in RavenDB using both HTTP requests and or Selenium.

  •         Kevin Hakanson

    Developer's Guide to JavaScript and Web Cryptography

    by Kevin Hakanson

    The increasing capabilities and performance of the web platform allow for more feature-rich user experiences. How can JavaScript based applications utilize information security and cryptography principles? This session will explore the current state of JavaScript and Web Cryptography. We will review some basic concepts and definitions, discuss the role of TLS/SSL, show some working examples that apply cryptography to real-world use cases and take a peek at the upcoming W3C WebCryptoAPI. Code samples will use CryptoJS in the browser and the Node.js Crypto module on the server. An extended example will secure the popular TodoMVC project using PBKDF2 for key generation, HMAC for data integrity and AES for encryption.

  • Ed Jones

    Developing a Messaging Solution with BizTalk 2013

    by Ed Jones

    Service Oriented Architectures and Message-Based solutions have been a mainstay in enterprise development over the past few years. This session will show how to use Microsoft BizTalk Server 2013 to implement a basic messaging solution using service-oriented principles. Topics include an overview of Microsoft BizTalk Server, creating a schema, configuring the messaging solution, and what's new with BizTalk 2013.

  •         Vince Bullinger

    Dipping Your Toes Into Mobile: The Low-Hanging Fruit

    by Vince Bullinger

    Mobile development used to be a niche development platform. Many of us shied away from it due to unfamiliarity, lack of computing power, diversity of development environments for different devices or because we scoffed at its insignificance. Those of us who did are now behind the times. Mobile browsing will be the PRIMARY browsing environment in the next couple of years and just about everybody has a smart phone and/or tablet. The revolution is here and you must adapt. For the developer that's been reluctant to make the switch, we'll be going over the low-hanging fruit that's been developed in the last few years by people sharing your concerns that will help you ease into the mobile development world including PhoneGap, jQuery Mobile, mobile websites and responsive web design.

  • Kamran Ayub

    Diving Into the Deep with Web API

    by Kamran Ayub

    You've watched introduction videos and presentations, you've played with Web API, and now you're considering it for a real-world project. In this session, we'll go over multiple issues with using Web API "in the real world" including debugging, IOC, custom routing, error handling, working with the client-side, versioning, anti-XSS protection, async actions, authorization/authentication, and working with multiple front-ends (Windows 8 and the web). This session is intended for those who are already familiar with Web API, but everyone is welcome. Kamran will be using his own project as an example, for better or worse, and would love for attendees to bring their own experiences to the discussion. Code will be slung, questions will be raised, and knowledge will be shared.

  • Corey Oordt

    Documentation Driven Development

    by Corey Oordt

    Developers usually leave documentation as a final step; one that they will get to as soon as they are forced with threats of bodily harm. Writing the documentation before writing the code, can lead to better code, better implementation and, of course, actual documentation. This talk isn't just about philosophy. It covers actual experiences and contains practical tips and solutions to get started. Discover how easy it is to write down your ideas and iteratively develop the documentation. Learn some of the tools to use to make your documentation look great. Find out that writing things down doesn't have to be a chore, but can be liberating, and helpful when working with non-technical people.

  •         Chris Wilson

    From Ruby to Haskell: how they are more alike than you might think!

    by Chris Wilson

    This is a talk about the similarities between Ruby and Haskell. It is also an introduction to either; though you'd have to be familiar with the other! I'll show how you can develop code in a cycle between testing, type checking, and refactoring that's reminiscent of the "red, green, refactor" cycle. I will give some short code examples and then develop a more interesting small/medium example. This is a focused version of a series of blog articles that I've written: http://bendyworks.com/geekville/articles/2012/12/from-ruby-to-haskell-part-1-testing (only one is currently published).

  •         Josh Pierce and Joe Luhman

    From the Front-line: Windows 8 Store Apps by the Numbers

    by Josh Pierce and Joe Luhman

    This talk, presented by See Sharp Guys, will provide real-world numbers from an independent development team focusing on building applications for the last frontier in app stores: the Windows 8 Store. The Google Play store has the largest install base, and iOS undoubtedly generates the most revenues. But for developers looking for a new opportunity, can the Windows 8 store offer opportunities the established players can't? During this talk, we will demonstrate how it's still early days in the Windows 8 store, and now is the time to get your app in the store and capitalize on this new and growing market. We will cover what we have seen by having a top 10 app, a top 100 app, and a low-tier app in the store at the same time. During the second portion of our talk, we will do a 'deep dive' and look at analytics of user behavior inside mobile applications, what metrics drive revenues, and how you can capture metrics in your app (whether on Windows, Android or iOS) to increase your revenues too.

  •         Kristina Durivage

    Get Visual - An Intro to Data Visualization in Javascript

    by Kristina Durivage

    D3.js is a javascript library used to make visualizations off of data. It goes very well with HTML, CSS and SVG to make dynamic and interesting graphics from static documents or API calls. This talk will go over making a simple data visualization. Also covers the Miso Dataset library for data import and and overview of other useful tools and places for help. This is code-centered talk.

  •         Wendy        Istvanick

    How To Pitch a Groovy Tent in a Java Code Base

    by Wendy Istvanick

    Do you often find yourself writing yet another Java web app while secretly, or not so secretly, envying your co-workers who are playing with Ruby or Clojure with features like closures that make it so much easier to express yourself? If the answer is yes, perhaps you should be taking a look at Groovy. It sort of looks like Java, acts like Java, and under the covers really is Java (i.e. it compiles to byte code) so one could say it acts like a duck, talks like a duck, and therefore must be a duck. So, what exactly is that duck? It is a language that - supports closures for functional programming - can be either dynamically or statically typed (depending on the preferences of the programmer or the context of the code) - has built in mocking, which achieves great power through closures, while at the same time - looks like and plays well with Java - interoperates with Spring - is understood by IntelliJ Interested, come and chat about real life experiences of Groovy into Java code bases.

  • Brent Edwards

    Implementing Modern Design Principles

    by Brent Edwards

    Windows 8 marks a complete shift in design principles for the Windows platform. To stay relevant as a developer on the Windows platform, you have to learn to implement the new Modern Design Principles. In this session, we will cover what you need to know about what has changed and what hasn't. We will look at how you, the developer, can leverage these design principles from the perspective you know best: the code.

  • Tim Heckel

    Introducing Meteor: A Reactive App Framework

    by Tim Heckel

    Meteor is a full-stack app framework from the future. It breaks lots of rules and puts the developer experience at the center, promising unparalleled development speed. Bursting onto the scene in April of 2012 with an highly popular Hacker News launch, Meteor has since been maturing at a fast clip, as the core team works hard to vet the framework through lots of community feedback and real-world adoption. Join us to get the lowdown on what Meteor is, what it isn't, and whether it lives up to the hype.

  • Kyle Boon

    Introduction to Grails

    by Kyle Boon

    Introduction to Grails. Grails is an Open Source, full stack, web application framework for the JVM. It takes advantage of the Groovy programming language and convention over configuration to provide a productive and stream-lined development experience. I will live code an example grails application to show you fast and easy it can be build web applications on the JVM. Grails has an excellent following in the Twin Cities with companies like Bloom Health, Thompson Reuters, Target, Object Partners, and SmartThings all using Grails and Minneapolis hosts gr8conf US which focuses on groovy and related technologies.

  • Brian Hogan

    JRuby

    by Brian Hogan

    Imagine mixing the easy syntax, powerful language features, and rapid development of Ruby with the speed, power, and flexibility of the Java Virtual Machine? Ruby and the JVM go together like chocolate and peanut butter, and you'll see some examples in this tak. You'll see how to use Ruby to build simple command line tools that work on all platforns, you'll learn how to make a GUI app using Ruby and SWING, and you'll find out how to take a Ruby on Rails application, turn it into a WAR file, and get it working on a Java web server. With JRuby, you can use the Ruby language and tap into the rich, powerful, and stable Java ecosystem.

  •         Ian Felton

    Level Up! - Understanding Hypermedia to Achieve the Highest Level of REST

    by Ian Felton

    Are you versioning your API's? Hard-coding URL's in your client? Would you like to learn about how to take your understanding of REST to where your server and clients can evolve independently? This presentation will introduce you to Hypermedia and explore creating your own Media-types.

  • Kevin Whinnery

    No-screen User Interfaces

    by Kevin Whinnery

    Does your application send users a text message when their order has been filled? Can they place an order by sending you a text? Can you interactively ask a user for pertinent information while they wait on hold for a support rep? Can you call them back when a rep becomes available? Can a user speak with a sales person in their browser if they have a question about a product on your web site? These are just a few opportunities, beyond the LCD or touch screen, that you might be missing to interface with your users. There are approximately 7 billion users on the global telecom network. That's over twice as many as computers and smart phones combined. Creating rich voice and SMS interfaces will allow you to reach more people and serve your existing customers better than ever before. Twilio makes creating these "no-screen" user interfaces incredibly easy. If you've created a web page before, you've already got what it takes to create a phone or SMS interface with Twilio. In this session, we will explore how and where to add telephony into an existing application using the Twilio platform. After a high-level overview of Twilio, we will live code new voice and SMS features into an existing web application. We'll demonstrate how developers can receive and respond to text messages and voice calls, and how developers can reach out to any of the ~7 billion users on the global telecom network at any time. Finally, we will demonstrate how developers can turn any web browser, iDevice, or Android device with a network connection into a VoIP telephone using Twilio Client. Code examples will be primarily JavaScript and Ruby, but the core concepts will be applicable to any server-side programming environment. No previous experience with telecom or a particular web development framework will be assumed. Voice and SMS are the next frontier of usability, and Twilio can help you blaze the trail.

  • Brad Candell

    Powershell for .Net Developers

    by Brad Candell

    Powershell is a robust scripting and automation tool created to perform administrative tasks within Windows. While it initially focused heavily on system administration, Powershell has become more integrated within our development world (Nuget, Azure, etc). What is better? The fact that it is built entirely on the .Net Framework and all its glory!

    This session will provide a brief introduction to Powershell and its concepts and explore the following:

    • Ways that a .Net developer can utilize Powershell
    • Syntax differences between Powershell and .Net
    • Developing custom Powershell Commands (Cmdlets) in C#
    • Integrating Powershell into your C# applications
  •         Justin Wendlandt

    Real-Time Web Applications Using Windows Azure and SignalR

    by Justin Wendlandt

    Let’s face it, devices and apps are going to become a crucial part of our everyday life. Tickers, dashboards and real-time systems will become more ubiquitous and stuffed full of data than we see today. The philosophy of the world wide web being a medium for static data is almost non-existent, yet the infrastructure hasn’t changed in years. In this talk, we will explore how Microsoft proposes to solve this issue with SignalR, Azure Service Bus and ASP.NET MVC 3 to build a horizontally scalable solution to a real-time internet problem.

  • Brad Broulik

    Responsive Web Design with jQuery Mobile

    by Brad Broulik

    No hoax, you can actually use jQuery Mobile to build responsive web designs for desktop, mobile, and every device in between. In this session we will review each new feature in jQuery Mobile 1.3 including responsive tables, responsive grids, sliding panels, and more. In addition, you'll also see several new demos that I'll be contributing to jQuery Mobile's Demo site. Lastly, we'll discuss performance strategies, remote debugging techniques, and client-side MVC integration advantages.

  • Doug Rhoten

    Using Lean for Product Development

    by Doug Rhoten

    Build it and they will come, right? Right?! As developers, it’s very easy for us to fall into the trap of building products by adding feature after feature of what we think users or customers may want in an application. Before you know it, you’ve amassed a large amount of technical debt in an application where very few folks use all the features or worse, no one buys. What if there was a tool you could use to help keep you focused, validate your idea before writing a line of code and help save you time and money? In this session, we’ll cover the basics of the Lean Startup process and learning how to apply it to product development through using the Validation Board.

  •         Jordan        Terrell

    Using Sprache and C# to parse text and build DSLs

    by Jordan Terrell

    Sprache is a powerful .NET library to enable .NET developers to quickly implement text parsers. In this talk, Jordan will show you the basics of using Sprache, how to build a simple Abstract Syntax Tree (AST) to contain the parse results, an example of a simple end-to-end Domain Specific Language (DSL), and some of the extensible points of the Sprache library.

  • Mike Hodnick

    Web Browser === Synthesizer

    by Mike Hodnick

    Build extraordinary audio applications in JavaScript with audiolib.js. In this session you'll learn how to turn your web browser into a mind-bending, cat-annoying, audio-producing machine. Leave your HTML <audio> elements at home kids - in this presentation we look at the API's that make digital audio synthesis possible with JavaScript. Specifically, we will dive in to audiolib.js - an open source JavaScript library that wraps browser-specific API's. We'll discover basics such as oscillators, LFO's, samplers, and using effects like reverb and delay. We'll also dig in to more complex topics such as envelopes, custom synth instruments, custom effects, and building a sequencer in your browser.

  • Jeff Brand

    Windows 8 and Data

    by Jeff Brand

    Discover the various options for working with data inside a Windows 8 application. Local storage, roaming data, temporary data, and data in the cloud are all covered. Learn the various options you have available when building a modern Windows 8 app.

  • Adam Grocholski

    Windows Store Tips & Tricks

    by Adam Grocholski

    Congratulations! You made it! The endless cups of coffee, the countless late nights, the lines and lines and lines of code have put brought you to this moment. You're ready to submit your app to the Windows 8 store. You're ready to hit submit. Wait! Stop! Before you click that button, it might be a good idea to make sure you understand the Windows Store certification process to make sure you don't encounter any publication delays due to certification failures that could have been easily avoided. In this session, you'll learn more about the end-to-end process to publish an app to the Store, including monetization options, submission flow and best practices, and certification tips and tricks. Even if you haven't started creating Windows Store applications yet, this session will serve as a good foundation to help you start your journey, and it will help you avoid many of the pitfalls that many first time developers run into.

  • Andreas Erben

    Workflow Manager and Service Bus

    by Andreas Erben

    Service Bus has been known for several years as one of the capabilities only available in Azure. There was also no complete engine to run persistent workflows for "cloud scale". Aligned with the release of SharePoint 2013, Microsoft brought Service Bus "OnPremise" and developed a new Workflow Engine that will drive many, if not most future iterations of Microsoft products requiring any type of workflow or messaging. Now everybody has access to those. Both technologies are available now free to use in your own applications or solutions. This talk will introduce those to .NET Developers and demo how to use them.

  • Melissa Voegeli

    Zero to Deployed with Ruby on Rails

    by Melissa Voegeli

    Ruby on Rails is a MVC framework for rapid website creation. I will be demoing how to install Ruby on your machine, installing gems (library packages in Ruby), and how to create and configure a very simple web app with Rails. The Ruby on Rails way is "convention over configuration" so we will easily be up and running by the end of the hour with a simple data driven web app. Once the app is ready to be published, I will demo deploying it to a free Ruby on Rails hosting service!