Twin Cities Code Camp

Spring 2017, Sat, Apr 22, 2017


  • Adam Nordquist

    Scratch: Programming for Kids (and adults)

    by Adam Nordquist
    Scratch is a program that allows basic coding knowledge to be accessible to all. Developed at MIT, it's changed a lot of kids' minds to the future of coding, and I want to share that with everyone at TCCC21.
  • Hao Luo

    Understanding Async in Javascript

    by Hao Luo
    Javascript traditionally relied on callback functions to handle asynchronous processes. As your Javascript application grows, you would encounter "Callback Hell", which makes your code unreadable and error-prone. There are now several ways to combat callback hell, and make your application development more enjoyable. The presentation will quickly go over shortcomings of callback functions, an overview of ES2015 promises, and generators, and how those two paradigms are related to the new ES2016 feature async/await.
  • Dustin Ewers

    Building Shiny Web Apps with TypeScript and Angular 2

    by Dustin Ewers
    From humble beginnings, JavaScript has gone from a hastily thrown together language for web pages to a hastily thrown together language that runs everywhere. If you can do it with code, you can probably do it in JavaScript. It's the Swiss Army Knife of programming languages. Unfortunately, JavaScript wasn't designed for the large scale apps we use it in today. We've had to rely on design patterns, willpower, and luck to mitigate JavaScript's failings. However, there is a better way. TypeScript adds features to JavaScript that make it usable on large projects. Additionally, the bar for web applications gets higher everyday. jQuery was cool ten years ago, but it doesn't cut it for modern web apps. We need something with a little more horsepower. Angular 2 makes it easy to build clean, modular web apps. In this talk, we'll explore TypeScript and Angular 2 and how they can be used together to build large-scale web applications. We will learn how to get started and get up to speed quickly.
  • John Urberg

    Functional Reactive Angular

    by John Urberg
    Functional! Immutable! Reactive! Angular 2! This talk has all the buzz words the cool kids are talking about! We'll discuss each of these topics and build up into a way to build a redux style application using Angular. Using these concepts will make your application faster and easier to maintain.
  • J Wynia

    Unit Testing for the Scared, Skeptical and Ashamed

    by J Wynia
    Does the mention of the phrase "unit testing" make your "fight or flight" response kick in? Do you feel like the right time to get started unit testing was a while back and you missed the boat? Do you just have a hard time believing that writing unit tests won't cut your development speed in half? Come learn about getting started unit testing in a judgement-free environment. Examples in C#, but applicable to other languages as well.
  • Jason Bock

    Tabs Vs. Spaces - The Greatest Battle of Our Time

    by Jason Bock
    Tabs. Spaces. Such simple things, yet the epic wars that have been raged around these characters in developer circles have been tumultuous. Countless hours have been wasted in code reviews debating who is right and wrong. Teams have been torn asunder. Trolling has reached internet-crashing proportions. But the question remains: which one is better? In this session, we'll cut through the hyperbole and emotions and get down to business. We'll see how compilers work with code, and how tests are set up to yield hard facts on performance and memory usage. We'll use this information to make rationale judgements for our coding standards. Come to this session with a sense of humor, and leave with insight into code analysis, automation, and decision making.
  • Tim Rayburn

    Creating an Alexa Skill with AWS Lambda

    by Tim Rayburn
    Amazon's Alexa platform is taking the world by storm, helping empower smart homes around the world. But what many developers may not realize is that this is not a closed platform, in fact it has a thriving marketplace for programs, or Skills as Amazon calls them. This talk will walk you through the process of creating a simple Skill for Alexa, and deploying into AWS Lambda. Working copies of the code base will be provided (via GitHub repo) so that attendees should be able to have a skill of their own deployed by the end of the session, which they can then enhance to their heart's content.
  • Kevin Leung

    Unboxing ASP.NET Core

    by Kevin Leung
    ASP.NET Core is a new open-source Web framework optimized for building cross-platform web apps, IoT apps and mobile backends. ASP.NET Core comes with great new features ready to use out of the box with minimal setup required! In this talk we’ll look at .NET Core, architecture, package management and how to begin weighing the options between choosing .NET Framework and .NET Core. I will also share my experiences and insights while working alongside the .NET Core team at Microsoft to port over an existing project from .NET Framework to .NET Core; as well as the challenges we faced. Core brings Microsoft into the exciting world of open-source, cross-platform and package modularity/portability – Let’s see what we can build!
  • David Washington

    Building Real-time Chess with Socket.io

    by David Washington
    Socket.io is a real-time engine for Node.js. You can use it to build amazing real-time Node apps really simply. Let's build a real-time multiplayer chess game together, using Node, Express and Socket.io from scratch. We'll start by building a basic Express web app hosting a local chess game. Next we'll make it multiplayer adding Socket.io; when you make a move it's reflected on your opponent's screen in real-time without any refresh. We'll finish by publishing it online so you can play with your friends. It will be sweet because you'll learn about websockets and Socket.io by building this fun game, and it's a good way to learn some basics of Node apps if you're a beginner.
  • Dave Voyles

    Building C# iOS and Android apps with Xamarin

    by Dave Voyles
    Building mobile applications for multiple applications can be a handful - different IDEs, languages, and platform APIs. With Xamarin, all of that is converged with Microsoft's .NET framework and Xamarin, an open source C# solution for writing cross platform mobile applications which export native code. This session will give you the information you need to understand Xamarin.Forms, which allows you to re-use one code base for both your front and back-end code. You will live demos illustrating how easy it is to simultaneously create your app for iOS, Android, and the Universal Windows Platform.
  • Josh Longanecker

    How to build your damn app already! An introduction to Meteor.

    by Josh Longanecker
    If you've been victim of Framework Fatigue, guilty of Over-tooling, and are tired of pre-optimizing your app before you even write a single line of code, this talk is for you. Join me, a serial "wantrepreneur," in seeing how simple it can be to move from idea to MVP with the Meteor development ecosystem.
  • Sarah Sexton

    Breaking Into Bots

    by Sarah Sexton
    Step into the world of Conversational Bots. Taking over platforms one by one, conversational bots are becoming the newest applications wanted and needed by consumers everyday. If you are wanting to learn how to get into the world of Conversation Bots, this talk is for you. Gabrielle will take you step by step on how to get your proper tools, building a bot, deploying it to the cloud and how to get it up and running on different platforms. This is an ideal session for those who are familiar with Node.js and would like to apply it to something new.
  • Scott Addie

    Building Reusable UI Components in ASP.NET Core MVC

    by Scott Addie
    ASP.NET proper MVC developers have long relied upon partial views and HTML helpers to construct reusable UI components. ASP.NET Core MVC expands the arsenal of options for creating such UI components by introducing view components and tag helpers. Do these new offerings render partial views and HTML helpers obsolete? Absolutely not! Using the right tool for the job is important, which means understanding the differences between these options is paramount. In this session, you’ll gain an understanding of when it’s most appropriate to use each of them in the real world. You’ll also see how to create basic view components and tag helpers.
  • Dan Callahan

    Approaching WebAssembly

    by Dan Callahan
    WebAssembly is a new low-level, high-performance alternative to JavaScript on the Web. As an open standard developed by Mozilla, Google, Microsoft, and Apple, WebAssembly will eventually run everywhere that JavaScript does: in every major Web browser, and in runtimes like Node.js and Electron which are derived from those browsers. After three years of research and experimentation, WebAssembly is finally real. The specification has stabilized, and the first implementation debuted with Firefox 52 on March 7th, and in Chrome shortly thereafter. This talk examines WebAssembly from a practical standpoint, answering what it is, why it was created, how it works, and how you can use it today.
  • Lance Larsen

    Augmented Eyes = Azure Cognitive Services + Hololens

    by Lance Larsen
    The Information Age has Evolved, Welcome to the Age of Experiences! We are living through another critical stage in the evolution of technology. We - and especially those that follow us - will no longer be satisfied with looking at flat computer screens either at our desks, or even on our mobile devices. We will come to demand to be immersed within a data enhanced visual environment. With but a single glance, we are at the very beginning of looking at our world through Augmented Eyes. Azure's Cognitive Services provides a number of powerful but easy to use services for Facial Recognition, Emotional Recognition, and Visual Analysis. Now - unite that with the Augmented Reality of Hololens… and we are living Sci-Fi today. Join Microsoft MVP, Lance Larsen for this code-heavy talk with many examples of how you can start utilizing Cognitive Services today, and how you can shape the visual future with the Hololens!
  • Jason Lattimer

    Why You Really Need Azure Functions

    by Jason Lattimer
    Have some code that's maybe not quite a full application that you need to deploy without worrying about the hassle of managing environments? Well look no further than Azure Functions! Yes, you're probably thinking there's already a dozen other ways to host an application that you already know about so why think about another? Azure Functions provide a uniquely flexible platform which allows developers to deploy code in multiple ways using multiple languages while being able to bind directly Azure or HTTP based triggers. If that doesn't sound appealing then at least you could tell everyone you're going serverless, which sounds cool, right? In this session we'll explore scenarios where using Azure Functions could be useful, pros and cons compared to other technologies, and plenty of examples to give you some ideas.
  • Brian Hogan

    Docker for Everyone

    by Brian Hogan
    Docker is an amazing tool, but unless you work with it every day, you're probably left with a ton of questions. What's a container? What's an image? What's the difference between Docker, Machine, Compose, and Swarm? Why the heck should I care? Well, Docker makes it easier than ever to deploy and scale your applications and services. In addition, it lets you simulate your production environment on your local machine without heavy virtual machines. In this talk, we'll explore the basics of Docker, create a custom image for a web application, create a group of containers, and look at how you can put your apps into production on various cloud providers. At the end of the talk, you'll have the knowledge you need to put this to use with your own applications.
  • Dave Strebel

    Designing Serverless Applications

    by Dave Strebel
    Serverless compute makes it is soooo easy to create an http endpoint or just run arbitrary code in the cloud. But with great power comes great responsibility and often we see customers making fundamental design mistakes that end up effecting their Serverless performance. Join Dave Strebel, Microsoft Azure Cloud Specialist, for this demo heavy session to get an intro to Azure Function and view some best practice for building Serverless application on Azure using Azure Functions and many other Azure services. In this session will dive into Serverless design principles and architecture considerations effecting performance and overall functionality. Demos and architectural examples are based on real customer scenarios.
  • Keith Voels

    Async/Await: Pain in the Async

    by Keith Voels
    An overview of advanced Async/Await topics. Async/await is great and easy!! Unit it's not. This will be a walk thru of the areas where Async/Await can be difficult and how to deal with them. Topics include: System.Task, exception handling, avoid void Async, unit testing including Moq, async constructors (or lack thereof), deadlocks and ContinueWith, Reactive Extensions and synchronization context. The focus will be on code examples and research resources.
  • Kristina Durivage

    Connecting the Internet with the Thing Using the Particle Platform

    by Kristina Durivage
    If you're used to programming software but are curious about connecting the internet with something physical, this talk is for you! I'll go over how to solder to an LED, hook it up to a Particle Core, and communicate with it from the internet.
  • Jen Simon

    The Importance of Networking

    by Jen Simon
    Relationships Matter Networking with people has been a key factor in Jen's successful sales career. Early on, she realized that helping others came naturally and in return people are willing to help her. All of her job opportunities have come from some kind of networking, she continually builds new business through her connections and is constantly helping others connect with the right people to reach their goals. Whether it’s through direct personal relationships or simply making connections on Linked In. As she has integrated into the IT Industry, she become aware that networking does not come naturally to a lot people. This presentation will help those who want to learn some basic tips and tricks on how to meet new people and create deep lasting relationships.
  • Iqbal Khan

    How to Scale .NET Apps with Distributed Caching

    by Iqbal Khan
    Your .NET applications may experience database or storage bottlenecks due to growth in data volume, session volume/length or size of objects. Learn how to remove bottlenecks and scale your .NET applications using distributed caching. This talk covers: • Quick overview of scalability bottlenecks in .NET applications • Description of distributed caching and how it solves response time issues • Where you can use distributed caching in your application(s) • Some important features in a distributed cache • Hands-on examples using a distributed cache
  • Jim Wooley

    .Net Compiler Platform (Roslyn) and You

    by Jim Wooley
    Over the last seven years, the C# and VB compilers were re-written from the ground up. Visual Studio 2015 includes this new compiler and features new extensibility and language capabilities. In this session, we will focus on how these changes will impact you as a C# or VB developer in your day-to-day development. We'll start with exploring the new language features. We'll then look at how to take advantage of code diagnostics and fixes that are publically available. We'll end by exploring some of the extensibility points that you can take advantage of if you want to build your own diagnostics and code fixes.
  • Jeremy Wagner

    Speed vs. Speed to Market

    by Jeremy Wagner
    We all agree that performance is important, but in our zeal to be first to market, we don’t realize that performance problems exist until a site is already in production. This talk is intended to arm developers and other technically-inclined professionals with knowledge that will help them be proactive in addressing this difficult problem. In this session, you’ll learn about: - Evoking genuine concern for performance by helping your colleagues identify your site’s target audience, and identify that audience’s capabilities by using data from Akamai’s State of the Internet connectivity report. - How to use this newly-acquired information in concert with automated testing tools to approximate what key performance metrics will be for your users. - Spring into action by automating optimization tasks with Node and gulp, so that you’ll be optimizing as you develop, instead of after the fact. - Some techniques for achieving quick performance wins for troublesome sites already in production, such as resource hints, PostCSS and more.
  • Chris Johnson

    Getting Started with Photon

    by Chris Johnson
    This Internet of Things seems to be the rage these days, come see what the "cool" kids are hacking on these days. In this talk we'll look at some of the hardware, code used to control these devices and if the internet is working some examples. I'll also talk about my experience hacking together little projects using the photon and Raspberry PI.
  • Ken Howard

    The Psychology of Error: Why Smart Teams do Dumb Things

    by Ken Howard
    Why do even the smartest teams make decisions that seem dumb in retrospect? What do you do when the biggest impediment to success is your own brain? Even equipped with the best possible data, a growing body of research reveals just how deeply flawed our perceptions, thinking, and conclusions are and why. Be careful not to assume that agile methods alone are the solution. What is the Solution? Awareness! By exploring the psychology of error we create the opportunity to overcome many of the pitfalls hindering even the best teams. We reveal a common condition that lowers individual IQ by 13 points! We show why many teams perform far below the level they think they are. We explore the biases, fallacies, and mental pratfalls common to every one of us rendering even the smartest teams dumb. You’ll come away with an understanding of the very real forces that distort our decisions and concrete tips you can use to mitigate the damage, and avoid these traps altogether.
  • David Berry

    Cool SQL Server Features Everyone Should Know About

    by David Berry
    We all use SQL Server every day in our jobs, so it pays to know what SQL Server can do for us that will make our jobs easier. This talk will introduce you to some key features of SQL Server that you might not know about but will definitely want to use once you learn about them. First, we’ll discuss temporal tables, which provide a convenient way to track all of the changes made to data in a table. Second, we’ll talk about the JSON support built into SQL Server 2016 and what capabilities it provides us. Third, we’ll cover some advanced SQL constructs like the MERGE statement and Common Table Expressions that can make the SQL you write simpler. And finally, we’ll wrap up by talking about the windowing functions in SQL Server, which provide powerful analytic capabilities to our SQL Statements. After this talk, you will better appreciate some of the rich functionality built into SQL Server and understand how to use these capabilities to make your job easier.
  • David Giard

    Adding Image and Voice Intelligence to Your Apps with Microsoft Cognitive Services

    by David Giard
    Cognitive Services is a set of APIs that use the power of Machine Learning to enhance your application. Using these APIs, you can quickly add image recognition and analysis; facial recognition, speech recognition, text-to-speech capabilities, and many other features to your application. In this presentation, you will learn about the capabilities of these APIs, how to test them, and how to call them via a REST web service and using some helpful .NET libraries.
  • Scott Davis

    Localizating your ASP.net and Xamarin applications to support multiple languages

    by Scott Davis
    QONQR (pronounced Conquer) is a mobile game built using Xamarin and ASP.net web platform. This 2 developer company supports applications on Windows Phone, Android and iPhone with a complex Azure cloud platform. QONQR is now available in 7 languages, with translations crowdsourced from the players. In this talk we'll discuss the challenges of supporting an application in multiple languages, UI design, translator coordination, and the unexpected technical challenges. Out of the box solutions available in .Net can cause significant negative side effects. We'll discuss how to avoid them and will demo how to integrate the Microsoft Multilingual App Toolkit into your cross platform solution.
  • Anne Bougie

    Regional Failover and Disaster Recovery in Azure

    by Anne Bougie
    In recent years there have been instances where the Internet is not available across broad geographical regions. One of the benefits of moving to the cloud is being able to utilize geo-redundancy for disaster recovery. Azure has a bewildering array of tools and services available, but the devil is in the details, and using the wrong tool for the job could be, well, disastrous. This session will cover the services and their trade-offs. We will demonstrate a working example of a coordinated solution that gracefully fails over with minimal disruption to the end user.