Twin Cities Code Camp

Spring 2015, Wed, Apr 01, 2015


  • Aaron Hoffman

    Agile At Scale

    by Aaron Hoffman

    For the past year I've been working in an environment with over 30 agile development teams all working simultaneously on the same product/platform. This has been a new experience for me as I am used to working in environments where only a couple agile teams are working together at any given time (and usually those teams are pioneering the methodology at that company, working along side teams developing software using a waterfall methodology.) Working with so many different agile teams simultaneously has been a very enlightening experience. Most of the usual battles new agile teams face have been fought and won, and new and interesting challenges arise. Come to this session to learn how 30 team, with over 300 repos, all work together on the same product and release functionality independently of each other.

  • John Urberg

    AngularJS Best Practices

    by John Urberg

    Angular has become one of the most popular JavaScript frameworks. Most tutorials, including the one included with the Angular documentation, use outdated practices. This presentation will provide an overview of the framework and discuss the current best practices for using those features.

  • Jeremy Wagner

    Applied RequireJS: Modular JavaScript for Fancy People

    by Jeremy Wagner

    How to implement RequireJS into your applications, taught in a simple and applied manner. The goal by the end of the talk is that anyone in the room will be able to immediately integrate RequireJS into their applications with minimal effort and with confidence. Topics covered include: An introduction to modules, RequireJS configuration, RequireJS optimizer, implementing the optimizer into your grunt workflow, and a short tour through an application powered by Knockout and RequireJS.

  • Dustin Ewers

    ASP.NET MVC UI Recipes: Build Better Interfaces With Less Code

    by Dustin Ewers

    Who doesn’t want to get more done in less time?

    ASP.NET MVC gives us an excellent toolset for building web applications. Unfortunately, due to its rapid evolution, good documentation is hard to find. However, using some simple techniques, you can build user interface components that can speed up development while maintaining a clear separation of concerns. In this presentation, we’ll learn how to build custom controls, templates, and custom validation. Save time while creating cleaner code.

  • Brad Broulik

    Building Adaptive iOS & Android Apps

    by Brad Broulik

    Want to learn how to create adaptive iOS and Android apps that are optimized for both small and large devices? In this talk, we’ll explore the latest iOS and Android techniques we can apply to create universal apps that adapt their content for all device sizes. Topic discussed will include:

    • Adaptive advantages
    • Adaptive layouts - master/detail, grids, and custom layouts
    • Adaptive content - popovers, self-sizing cells, dynamic or scalable type
    • Adaptive images - images by scale or size class and vector icons
    • Adaptive testing - resizable emulators and previewing multiple layouts
  • Kyle Tyacke

    Communicate All the Things!

    by Kyle Tyacke

    In this talk we’ll look take a look at WebRTC, a rather new technology that is giving Javascript developers the tools to add real-time communications to their applications without the need for plugins. We’ll examine the key components of this standard, look at how peer to peer connections are established, and discuss how you can start using it in your applications today using the Respoke Javascript library!

  • Ken Sykora

    Continuous Delivery in the Cloud

    by Ken Sykora

    Continuous Delivery is a great way to reduce times in development cycles and deploy new features and enhancements faster. In this session, we will cover the build pipeline and all the different steps that are needed to automate a release cycle. We will review a simple website example and watch it from start to finish, covering configuration steps. Examples will be shown using Visual Studio, Git, Selenium, AppVeyor, Load Impact, Sauce Labs Continuous Integration, and Azure / Azure Powershell Management technologies for deployment.

  • Stephen Erstad

    Creating a High Performance Tree Directive in Angular

    by Stephen Erstad

    Building Angular directives can be a challenging proposition, building reusable directives is even harder, and building ones that scale is a whole different beast. We will walk you through building a Angular tree directive from scratch that handles tens of thousands of nodes while maintaining performance. We will show you where the dragons live and how to skirt their lairs. Included topics: Avoiding digest cycle limitations, compilation and linking and why it matters to you, templating without using transclusion (for reasons we will discuss), and why all of this is going to get better for developers in Angular 2.0.

  • Dan Callahan

    Debugging Mobile Web Performance

    by Dan Callahan

    The mobile web continues to be a challenging place for developers and users alike. In this session, attendees will learn how to diagnose issues that occur in mobile browsers, with an emphasis on tooling and performance testing. This session isn’t aimed at experts, but at developers who know the foundations of the web (HTML, CSS, JS) and want to learn how to tackle bugs on mobile browsers. We'll specifically look at performance in terms of networking, framerate, and, memory use.

  • Barry Stahl

    Dynamic Optimization - One Algorithm All Programmers Should Know

    by Barry Stahl

    This simple technique that every programmer should know can simplify certain types of problems tremendously, allowing us to find an optimal solution to difficult problems quickly and easily using a mathematical process called Dynamic Programming (not to be confused with Dynamic Languages or Functional Programming). In this session, we will run through examples of using this technique to solve several problems, both "on paper" and in code.

  • Richard Brantley

    Getting Started with MongoDB

    by Richard Brantley

    MongoDB is one of a number of “NoSQL” database servers that stores data as documents – represented in JSON – rather than the traditional columns/rows/tables model. It is designed to be very useful for certain use cases, but is a poor fit for others. In this presentation we will discuss what exactly MongoDB is, discuss what types of applications are appropriate for it and which types are not, and walk through the basics of installing, issuing queries and using indexes. No special experience is required but some familiarity with database concepts and JSON will be helpful.

  • Jason Lattimer

    Going Beyond ReSharper with Roslyn

    by Jason Lattimer

    Most developers want to be able to write better code in less time which is why tools like ReSharper are so popular. If you've been keeping up on the latest from the Microsoft developer front you've probably heard about the .NET Compiler Platform ("Roslyn"). Beyond having visibility into the inner workings of the compiler one of the main features is the set of code analysis APIs it provides. In this session we'll walk through using those APIs to create your own ReSharper-like code refactorings and code fixes using the latest CTP of Visual Studio 2015. With any luck you'll leave with some ideas on how you can use the .NET Compiler Platform to scratch a couple items off your own personal "I wish Visual Studio did this" list.

  • J Wynia

    Going Independent: The Secrets of Contracting, Consulting, Freelancing And Otherwise Striking Out On Your Own In The Software Business

    by J Wynia

    What exactly is all involved in leaving a regular job as a developer to strike out on your own? In this session, we'll talk about the full spectrum of the software world beyond 8 to 5 employment, including: 1099/W2/Corp differences, taxes and deductions, rates, healthcare/sick time/vacation, planning, avoiding pitfalls, dealing with recruiters, stability, and more. By the end, you'll have answers to the most common questions and resources to dig in further if you decide that working this way is right for you.

  • Dan Callahan

    Intro to Rust: A New, Memory Safe, Systems-Level Programming Language

    by Dan Callahan

    Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races. It accomplishes these goals by being memory safe without using garbage collection. And it just hit 1.0.

    This presentation will provide an introduction to the Rust programming language, what it's good at, and why you might prefer it over C for your next project requiring low-level optimization. I'll also demonstrate using common C-style FFI mechanisms to call into functions written in Rust from other programming languages, like Python, Ruby, or Node.js.

    Rust is already being used in nontrivial, real-world projects. At Skylight (http://skylight.io), Yehuda Katz is wrapping Rust inside a Ruby gem in order to profile Rails app performance with "low enough overhead that you can leave it always-on in production" (http://blog.skylight.io/our-new-featherweight-agent/). At Mozilla Research, the Servo project (https://github.com/servo/servo/wiki/Design) is using Rust to "develop a new Web browser engine [...] that takes advantage of parallelism at many levels while eliminating common sources of bugs and security vulnerabilities associated with incorrect memory management and data races."

  • Sean MacAvaney

    Introduction to HTTP/2

    by Sean MacAvaney

    Web developers are told that hacks like resource inlining, domain sharding, and image spriting are best practices for improving website performance. But these hacks are just to work around the limitations of an aging protocol. Although HTTP/1.1 has served the world fairly well for the past 15 years, changes to the way in which we use the Internet have pushed this protocol beyond what it was designed to do. The HTTP/2 specification addresses many of these limitations, while also making better use of network resources. Topics to be discussed are HPACK header compression, multiplexing, server push, and security considerations. Basic knowledge of TCP and HTTP/1.1 is recommended.

  • Todd Gardner

    JavaScript Forensics

    by Todd Gardner

    Something terrible happened here. Traces of errors litter the floor; memory leaking from cracks in the ceiling. Someone lost their object context in the corner. Everything reeks of jank. In this session, a JavaScript error tracking expert breaks down a series of common and complex crimes against web applications. You’ll leave the session armed with techniques and tools to detect, diagnose, and fix your JavaScript web applications. Bring your bugs and let’s fix up our web.

  • Carl Schweitzer

    Live Tiles: A Universal Window into the Soul of Your App

    by Carl Schweitzer

    Adding compelling Live Tiles to your Universal app can dramatically increase engagement and usefulness in the minds of your users. We'll explore multiple ways to use live tiles and we'll cover just what your app needs. Come join this session to learn the basics of how to make a stellar set of live tiles for your app, and then stay for the demos on how to make super-customized tiles.

  • Tim VanFosson

    Mentoring: Let's Learn Together

    by Tim VanFosson

    Mentors are invaluable resources when you want to learn something. They help you ask the right questions, show you pitfalls and traps along the way, and generally make it easier to learn by letting you leverage their experience. This session will cover mentoring practices at The Nerdery from the perspective of the mentor and the person being mentored, our successes and failures, and how our practices have evolved over time. A small group activity will let each attendee contribute what has worked or not worked for them and form the basis of a round table discussion on best practices as a mentor/mentee.

  • Al Zaudtke

    Message Queues - Why Should I Use Them?

    by Al Zaudtke

    Messaging systems are not new. You may even be using one in some fashion already. However, ask yourself the following questions. Do you have scheduled jobs that require an IsSomething flag in your database? Do you have tables that have more than 1 IsSomething Flag? Do I have necessary duplicate data across my system? How did you accomplish it? Are my external processing tasks decoupled, scalable, or long running? Are there pieces of my system that do not need to be real-time? If you answered yes to any of these, this session is for you.

    This session will introduce you to the how and why of using a message queue. We will not focus on the details of the messaging system, only the use of it. Code demonstrations will be in C# using RabbitMQ as the messaging system.

  • Wendy Istvanick

    My Love/Hate Relationship with Lombok

    by Wendy Istvanick

    If you've written Java code in the past few years, chances are you have come across Project Lombok. While there are many things that Lombok does that streamline Java code and development there are a few that make me want to pull my hair out. In this talk, I will go over a bit of how Lombok works and then delve into where I feel you should proceed with caution, and why.

  • Kevin Hakanson

    ng-owasp: OWASP Top 10 for AngularJS Applications

    by Kevin Hakanson

    The OWASP Top 10 provides a list of the 10 most critical web application security risks. How do these relate to AngularJS applications? What security vulnerabilities should developers be aware of beyond XSS and CSRF?

    This session will review the OWASP Top 10 with a front-end development focus on HTML and JavaScript. It will look at patterns to implement and others to consider avoiding. We will also explore several built-in features of AngularJS that help secure your application.

  • Doug Rhoten

    Objective-C for .NET Developers

    by Doug Rhoten

    Are you a C# developer looking to get started in Objective-C for the first time? In this session, we'll explore the language with another C# developer who recently started to make the journey into the world of Objective-C. We’ll look at basic data types like strings, numbers and dates while looking at the differences between how classes, methods and properties are constructed in both languages.Throw in some tips and tricks for navigating around Xcode along with some online resources, and you’ll be ready to start digging into it on your own.

  • Matt Christian

    Postmortem: Don't Be Dinner

    by Matt Christian

    Learn about the trials and tribulations that went into development of the Windows 8 game Don’t Be Dinner from Subject Matter Games. Built using Unity 4, Don’t Be Dinner is the team's first game and follows the many attempts of 5 medieval knights as they try to slay an evil troll with (often) disastrous results. This talk will go into a behind the scenes look at development, do’s and don'ts on design and implementation, Unity code examples, and plenty of Q & A.

  • Brian P. Hogan

    Realtime Web Apps with Elixir and Phoenix

    by Brian P. Hogan

    Elixir mixes functional language power with friendly syntax, and it turns out to be a fantastic way to work with data. The Phoenix framework gives you the power to build realtime apps with the same ease that Ruby on Rails did for database-driven apps a decade ago. In this session you'll learn about the basics of Elixir and see how to build a realtime collaborative app with Phoenix and some JavaScript. Elixir and Phoenix represent one possible future for web development. See how you can put it in use today.

  • Vince Bullinger

    Reapp - A React Framework for Building Hybrid Mobile Apps

    by Vince Bullinger

    We've all heard of React, the JavaScript framework all the cool kids use nowadays. But Facebook recently announced the launched of Reapp. Reapp is a way to build "hybrid apps, fast."

    When most people think of hybrid apps, they think of PhoneGap. Reapp is the React way of building hybrid apps. Reapp creates hybrid apps by binding React to a cross-platform UI kit.

    In this session, we'll briefly go over React - in case anybody has missed the fun to date - before diving into the nuts and bolts of how to build hybrid mobile apps with Reapp, as well as briefly comparing the experience to other cross-platform mobile technologies.

  • Rob Robinson

    Responsive Animation with HTML5, CSS3 and the JavaScript Canvas

    by Rob Robinson

    Creating HTML5 games and animated applications that run in any recent browser on any desktop, laptop, tablet or smart phone requires planning and a few special techniques. Topics covered are: Planning the scenes and interactions, designing the layout, detecting the device and window size, sizing the canvas, scaling the graphics, performing animations, responding to keyboard and mouse events on laptops and desktops, responding to touch events on tablets and smart phones, and completing the game with appropriate interactions. A simple “Keep Away” game will be used to demonstrate the techniques.

  • Chris Johnson

    Ruby on Rails From 0 to Deploy in 60 Minutes

    by Chris Johnson

    It's been awhile since the flood of build a blog in 15 minutes in Rails videos, presentation and blog posts have flooded the internet. The barrier to entry in the Rails world has increased for the average developer over the last few years. I'm going to bring back the kickstart approach to building Rails applications. Here we are going to learn how to build a Rails app and deploy it in 60 minutes. We'll talk about the application structure, build a sample application and deploy it (pending internet connectivity). We'll even approach some topics like unit testing and styling.

  • Matthew Soucoup

    Stranger in a Strange Land: Creating Xamarin Bindings to iOS Libraries

    by Matthew Soucoup

    Imagine this… You’re developing an app using Xamarin and come across a whiz-bang, flashy Objective-C UI library on GitHub which would be a perfect fit. You know there’s a way to consume this library with Xamarin, but everything just looks so, so … strange.

    In this session we'll take the mystery out of binding and consuming these strange Objective-C libraries to C# and Xamarin. First we’ll cover the idioms of Objective-C to get a feel for the land. Then start to find our way around by mapping Obj-C to C#. Finally, we’ll add the niceties of home by extending the functionality of the original library with a more C# approach. By the end of this journey, binding Obj-C to C# will feel just like home!

  • Allen Sanborn

    Structured Logging with Serilog on .NET

    by Allen Sanborn

    Logging is an essential part of an application but for too long we've been stuck with log entries that are a string and a property bag which can be difficult to analyze and correlate with other log entries. It is too hard to create meaningful logs for complex distributed systems when we are stuck using old logging frameworks. The Serilog library for the .NET framework and its structured or semantic logs allow us to add more context to our logs, more easily correlate logs across systems and greatly ease our querying and exploration of errors based on events in the system and other log entries. Serilog is easy to integrate into existing applications and can help you provide the rich data that you are looking for at development time in and in production by abstracting your logging sinks away from how you create your messages. It has a clean and simple API and a healthy ecosystem of sinks for your application to log to so you'll still be able to meet your companies standards and help improve upon them. Let your logs make you happy for once.

  • Chris Wilson

    Transparent Web - The Future of Web Development Looks Functional

    by Chris Wilson

    In this talk I give an overview of several cutting-edge web development technologies. Rather than being general purpose programming languages, they focus solely on the task of developing for the web. These languages use DSLs to simplify the common tasks of writing HTML, CSS, JavaScript, and interacting with the database. Also differing from many dynamic language web stacks, these languages employ static type systems which can catch many common errors early in the development cycle; saving on a lot of debugging time.

    The frameworks that I'll cover are: Opa, Ur/Web, and Elm. The talk will also cover some functional programming techniques that are in common use in the frameworks.

    I'll present several reasons why I think that web development is tending towards these sorts of technologies. Even if you don't find yourself using one of these in particular, you may well end up using the concepts that they contain.

  • Scott Heckel

    Untangle Your Front End Development with Visual Studio 2015

    by Scott Heckel

    Microsoft has enhanced the VS tooling to support the front end development standards. In this session, we will setup a web project and learn to utilize node, npm, grunt, gulp, sass and bower to get our website up and running. Never heard of those tools before? Don't worry. We will cover that too.

  • Robert Boedigheimer

    Web Essentials

    by Robert Boedigheimer

    Web Essentials is an awesome extension for Visual Studio that adds incredible new features for web developers. Vendor prefixes and visual feedback for browser support are two of many CSS related features. Browser link creates a connection between a series of browsers and Visual Studio. Changes in Visual Studio are immediately reflected in all connected browsers, and changes can be made directly in a browser and reflected in the source. There are also a large number of enhancements to the HTML and JavaScript editors. Web Essentials is a great way to get early access to great new features that may be eventually added to Visual Studio.

  • Wilson Gibbins

    What is Docker, and How Will it Help us Get to the Cloud?

    by Wilson Gibbins

    Docker containers running on Linux are all the rage – so much that even Microsoft is paying attention. What is all the fuss about? In this talk, we will discuss:

    • What is Docker? Spoiler alert – it has nothing to do with Normcore
    • Why is it so trendy?
    • Seriously, how might it actually be useful to developers?

    I will demonstrate how to build Docker images, test them in the privacy of my own laptop, and deploy them to the cloud. In the process I’ll show lots of fashionable stuff like ASP.NET vNext, Azure, Node.js, Microservice Architectures, GitHub, and Docker Hub at such a superficial level that it will frustrate the people in the room who actually understand these technologies. This is your chance to be on the bleeding edge, defined as before the first O’Reilly book is published.

    Child Safety Warning: the demos will include typing in a Linux Bash shell. Not for the faint of heart, both for people who are GUI-oriented or who just can’t stand watching typing mistakes in live demos.

  • Jason Bock

    What's New in C#6

    by Jason Bock

    Dissatisfied that C# 5 only added async and await? In C# 6 you're going to get a lot more features! In this session we'll cover what these features are (e.g. nameof and string interpolation) and how they work in detail so you'll know when to use them effectively in your new .NET projects.

  • Greg Levenhagen

    Xamarin.Forms for Cross Platform Mobile Apps

    by Greg Levenhagen

    Mobile apps are clearly here to stay. As developers, we’ve seen a lot of technologies come and go that promised a write-once and run-everywhere scenario. Xamarin has been around for a while and allowing developers to use a C# code base with native user interfaces. Last summer, Xamarin added support for the user interface under the brand of Xamarin Forms, which provides a XAML-like implementation for markup. This lets developers use C# and XAML to write mobile apps to target iOS, Android and Windows Phone.

    Come see what Xamarin.Forms can do for you, where it may fit it and the pros and cons of this type of cross platform mobile development. This will largely be demos, code and walk-throughs.