Twin Cities Code Camp

Spring 2016, Sat, Apr 16, 2016


  • Scott Addie

    Getting Started with ASP.NET Core 1.0 in Visual Studio Code

    by Scott Addie
    Microsoft new cross-platform ASP.NET framework promises to appease those seeking modularization and performance improvements. Out with the kitchen sink that is the System.Web assembly, and in with the new. Couple this with a lightweight, cross-platform code editor which comprehends ASP.NET Core 1.0, and developers around the world rejoice. So let’s dive in! Open Visual Studio Code, and choose File -> New -> Project, right? Not quite!

    This talk will explore how to get started with ASP.NET Core 1.0, from the ground up, using Visual Studio Code. Along the way, we’ll discuss new features and how to take advantage of them in your applications.
  • Jason Bock

    Busting .NET Myths

    by Jason Bock
    Structs and classes. Disposable objects. Asynchronous code. Both C# and the .NET Framework have a ton of features and capabilities within, but sometimes erroneous information is spread about how they work. In this session, we'll set things straight on a number of topics so you know exactly what's going with your code.
  • Matt Christian

    Voxel Art for Games: From Qubicle to Unity

    by Matt Christian
    Programmer's rejoice! Don't settle by filling your games with hastily drawn MS Paint scribbles. Learn how to quickly, easily, and cheaply build voxel art, a blocky 3D art style popularized in games such as Minecraft and Crossy Road. We'll look at the basic building blocks (pun intended) of creating models in Qubicle (http://qubicle-constructor.com) a 3D voxel art editor. Then we'll apply basic animation techniques using the freely available Blender (https://www.blender.org/) software package and finish it up by getting that art up and running in a scene within Unity (http://unity3d.com/).
  • Anne Bougie

    Introduction to Real-Time Notifications With SignalR

    by Anne Bougie
    As the user experience becomes more important, real-time push notifications are an important tool for web developers to master. Learn how to build real-time server-to-client and client-to-server push services in ASP.NET using SignalR. SignalR makes it incredibly simple to build communication hubs for real-time notifications, peer-to-peer collaboration, and real-time content delivery. SignalR is flexible, extensible and scalable. We will cover setting up a complete MVC5 application using both the Javascript client API and the .NET client. There are several transport protocols available depending on which server and client platforms you are using. We will discuss these options as well as extending, scaling and customizing SignalR.
  • Brandon H

    Cross-Platform Continuous Mobile Deployment

    by Brandon H
    Agile is all about the continuous cycle of development and feedback solicitation but mobile platforms introduce added complexity: how do you get your app out to all your testers or stakeholders across all the platforms so they can give you the feedback you need to refine it? In this session we’ll explore one way to do this across all the major platforms: Windows 10, iOS, and Android and throw in cross-platform Continuous Integration to boot!
  • Dan Callahan

    What the Heck is WebAssembly, and do I Have to Learn C Now?

    by Dan Callahan
    Three years ago, Mozilla began experimenting with a low-level subset of JavaScript that supported ahead-of-time compilation and eliminated garbage collection pauses. The experiment worked: Programs written in C and compiled to this intermediate language, called asm.js, could deliver runtime performance within 1.5x of their native C speed. In contrast to Google's Native Client (NaCl / PNaCl) projects, asm.js remained backwards compatible with existing JavaScript engines.

    Clearly, there was room for performance improvement on the Web, and a way to get there without breaking old browsers.

    Last year, Apple, Google, Microsoft, and Mozilla formed a W3C Community Group to collaborate "on a new, portable, size- and load-time-efficient format suitable for compilation to the web." They called it WebAssembly, and it starts landing in browsers this year.

    Suddenly, JS isn't the only game in town: programs will be written in C, compiled to WebAssembly, and run faster than JavaScript ever could. Is this the end? Do we all have to learn C? Come to the talk and find out!
  • Kevin Hakanson

    Introduction to Speech Interfaces for Web Applications

    by Kevin Hakanson
    Speaking with your computing device is becoming commonplace. Most of us have used Apple's Siri, Google Now, Microsoft's Cortana, or Amazon's Alexa - but how can you speak with your web application? The Web Speech API can enable a voice interface by adding both Speech Synthesis (Text to Speech) and Speech Recognition (Speech to Text) functionality.

    This session will introduce the core concepts of Speech Synthesis and Speech Recognition. We will evaluate the current browser support and review alternative options. See the JavaScript code and UX design considerations required to add a speech interface to your web application. Come hear if it's as easy as it sounds?
  • Kevin Gisi

    Programming Rocket Ships for No Good Reason

    by Kevin Gisi
    Who says that programming must be practical? Let's throw caution to the wind and explore kOS — a programmable autopilot for Kerbal Space Program. It's a wild west where there are no standard libraries, no classes, and no try/catch blocks! But there are real problems to solve, including PID controllers, orbital maneuver calculations, and even machine learning.

    Join us as we write dangerous code that launches brave Kerbals into outer space on wobbly rockets in a video game. For science!
  • Sreenath Pillai

    Deconstructing Laravel to Rebuild a Personal Backend-as-a-Service

    by Sreenath Pillai
    Laravel is a popular PHP MVC framework, using the common design pattern to separate concerns, improve performance, and organize code. We will break down and understand the base components of the framework, and then rebuild it in a way that is as framework-agnostic as possible. Then we will add some features to turn it into a 'Backend-as-a-Service' that you can use to speed up the development of your web, mobile, or IoT projects! Lastly, we will build classes in both JS and Objective-C to demonstrate how to talk with our newly created backend.
  • Mike Rosack

    Intro to Ethereum

    by Mike Rosack
    We've all heard of Bitcoin by now, but what's the next step in blockchain technology? How about a distributed, decentralized turing complete computer in the cloud? That's the premise behind Ethereum, a new blockchain that takes the technology pioneered by Bitcoin to the next level. In this session I'll give an overview of what Ethereum can do, and then walk you through a simple hello world Ethereum application in both the Mix IDE and the geth command line client.
  • Brad Broulik

    Freaky Fast Delivery - Responsive Performance Strategies

    by Brad Broulik
    Want to learn how to build freaky fast sites that load within the mythical one-second barrier? In this talk, we’ll explore the latest techniques we can apply to create responsible sites the achieve this goal. Topic discussed will include:
    • Traditional vs enhanced page loading techniques
    • Loading JavaScript, CSS, fonts and content asynchronously
    • Compression techniques for requests, images, and assets
    • Caching techniques via Browser cache and Web storage
    • Performance budgets, anti-patterns, and monitoring tools
  • Benoy John

    Business Driven Development

    by Benoy John
    Business Driven Development is a development methodology based on communication between the business customers, the developers, and the testers. BDD encompasses many of the same practices as Specification by Example, Acceptance Test Driven Development (ATDD), Example-Driven Development (EDD), and Story Test-Driven Development (SDD). All these processes aid developers and testers in understanding the customer’s needs prior to implementation and allow customers to be able to converse in their own domain language. This talk will focus on why we need to do BDD, How we can include BDD into our development process, the advantages and challenges in implementing BDD. Examples for this talk will be in .Net/SpecFlow. If you are a Developer, Tester, Business Analyst, Product Owner or a stakeholder in a software development project this talk will show you how you could build products with in-built quality and value and can be extended easily.
  • Dave Strebel

    DevOps In Action

    by Dave Strebel
    DevOps aims to remove hurdles from getting features deployed to production by standardizing and automating the delivery pipeline, and Agile processes aim to make the act of development itself more efficient and incremental.

    The session will begin with a short intro to Release Management followed by an end to end demo of deploying and testing an ASP.NET 5, MVC 6 application in a Docker container to a Linux machine in Azure using Release Management online. We will be using the latest Build and Release Management UI from Visual Studio Team Services and Release Management Online. Attend this session so you can understand how things are changing and what tools are available to help you keep pace with the developer evolution.
  • Rockford Lhotka

    Open Source Software for Microsoft Developers

    by Rockford Lhotka
    In today's world it has become virtually impossible to write software without using open source tools, libraries, or frameworks. Even if you avoid "third party" open source components, Microsoft is open sourcing more and more of .NET itself that it is inescapable. So should you be worried? Didn't Steve Ballmer tell us open source was bad and dangerous? Well, there are things you should know about open source in terms of licensing, maintainability, support. Many are things you need to think about when using ANY code you didn't write yourself, whether open source or not. By the end of this session you'll understand where open source does and doesn't differ from traditional proprietary tools, libraries, and frameworks. You might still be worried, but you'll understand WHY you are worried.
  • Dan Kraft

    Six Reasons Sandstorm.io is Rocking the World of Open Source Web Apps

    by Dan Kraft
    Sandstorm describes itself as "an open source operating system for personal and private clouds."

    In this session, we will go over the features that make Sandstorm the ideal platform for distributing and hosting open source web apps, then go over the brilliantly simple process of getting Sandstorm installed on your own server. Packaging (or porting) an app to run on the platform will also be covered.
  • Kamran Ayub

    TypeScript In Action

    by Kamran Ayub
    Do you want to learn how to automatically generate strongly-typed Angular services for your Web API? What about Knockout view models that stay synced with your server-side code? In this session, we will walk through a sample application that leverages TypeScript, Angular2, and ASP.NET MVC/Web API. You will learn how TypeScript can help augment your development experience and your existing knowledge as a Javascript developer by adding type safety, OO concepts, and ES6 features to your codebase. If you consider yourself a C# or .NET developer and do Javascript on the side, TypeScript is a great fit for all the paradigms you're used to. If you work in a Linux or Mac world, you’ll still be able to leverage TypeScript with cross-platform tooling. Come and learn something that might help you become more productive and make your applications more robust and less scary to refactor. The speaker recommends watching his previous TypeScript Demystified talk for a grounding in the concepts of TypeScript but it’s not required.
  • Vince Bullinger

    The Definitive Guide to the Flux Pattern for React

    by Vince Bullinger
    React is a JavaScript framework that makes a radical departure from the MV* frameworks that have been inundating the development space for the last several years. With this radically new approach comes a pattern to replace the common paradigm of two-way data-binding MV* frameworks. This pattern is known as "Flux." While React has been gaining steam for a couple of years now, the Flux pattern is still a relative mystery to most of us.

    In this talk, we'll start with a quick recap of React to get everybody up to speed. Then we'll dive into the nuts and bolts of the Flux pattern, investigate some of the more popular Flux frameworks and make sure you walk away fully understanding this enigma.
  • Mike Benkovich

    Tour d’Azure 2016 – New Killer Features That’ll Blow You Away

    by Mike Benkovich
    In the 7 years since Microsoft introduced Azure, the public cloud has evolved and come to terms with the needs in today's marketplace for a virtualized computing infrastructure that you and provision and deploy what you need when you need it and pay just for what you use. Platform as a Service (PaaS) has come a long way as well, and with the latest incarnation of Application Services (which includes Web, Mobile, API and Logic Apps) a developer is able to quickly and efficiently use the cloud to deliver solutions faster than ever. Microsoft Azure has changed a lot since it was released and in this talk we'll show you some great new compelling features that make all the difference.
  • Sean MacAvaney

    The Why and How of Dependency Injection

    by Sean MacAvaney
    Many frameworks use dependency injection to improve testability and allow for runtime dependency configuration. In this session we further discuss the motivation of this approach and implement a service locator in an ASP.NET MVC project. Related topics covered along the way include inversion of control and reflection.
  • Jason Lattimer

    Extending Visual Studio and Making It Work for You

    by Jason Lattimer
    Did you know there's a Visual Studio SDK? By now everyone's heard talk of the .NET Compiler Platform ("Roslyn") but there's also a world of other extensibility points in Visual Studio. Templates, menu commands, tool windows, and even customizations to the editor itself can all be tapped to add new functionality to keep you in the IDE longer making you more productive. There will be lots of demos to show off some of the features and the session will wrap up by talking about getting an extension in the Visual Studio Gallery so it can be shared with the world.
  • Jeremy Abbott

    Advanced Topics in F#

    by Jeremy Abbott
    You know that F# .NET's functional programming language. You know that it supports default immutability, functions as types, and type inference, and even OOP. But do you know about the other awesome language features like pattern matching, discriminated unions, sequences, mailbox processors, type providers, and a plethora of other awesome tools? Learn how F# can make you productive in your day to day work using these awesome language features.
  • Shawn Lawson

    Live Coding Sound Responsive OpenGL Fragment Shaders

    by Shawn Lawson
    This presentation will be an introduction/crash course into using OpenGL Fragment Shaders for live-coding graphics. I will be using an open source toolkit, The Force, designed around WebGL and run in Google Chrome or Firefox. The toolkit is hosted on github, so participants have the option of following along. http://shawnlawson.github.io/The_Force/

    We will cover: a brief explanation of the tool, how it’s constructed, how it works, a quick tour around the basic functionalities of the OpenGL Fragment Shader language, how to work with coordinate space, function generators within the toolkit, some simple examples, and finally integrating an audio source for creating sound responsive graphics.
  • Alec Wojciechowski

    How To Mentor Jr. Devs Without Losing Your Mind

    by Alec Wojciechowski
    Have you ever had to take on a junior developer? Do you get questions that seem like they've come out of left field? Are you sick of doing the busy work that they should be doing? We'll explore what it takes to take a junior from green to gold without feeling like you're about to lose it!
  • Maggie Pint

    Date and Time Odds, Ends and Oddities

    by Maggie Pint
    Did you know that sometimes midnight doesn't happen? That some years have 53 weeks? That javascript will interpret "2016-01-01" and "01/01/2016" differently? That certain libraries can drastically improve the developer experience with date and time?

    Date and time is a complicated and under-appreciated problem in programming, but it affects nearly ever application ever made. Using code examples in JavaScript, we will go through the oddities and edge cases of date and time that every developer should take into consideration when writing modern applications. You will come out of this talk feeling more prepared to tackle date and time in your code, no matter what programming language you use.
  • Lance Larsen

    HoloLens: This Isn't Your Grandmother's VR -- This is AR

    by Lance Larsen
    • "Hologram" (noun): an image that is projected in a way that makes it appear three-dimensional.
    • "Augmented Reality" (noun): superimposed computer-generated images on a user's view of the real world.
    • "HoloLens" (noun): an awesome wearable holographic computer that lets you see, hear and interact with holograms in any environment!
    Are you ready to dive into Augmented Reality? Ready to see how we can inject our very own generated holographic images into any environment? Ready to see not only how we interact with the holograms but how those holograms react to us? Me to…

    Join Lance Larsen fresh back from the Microsoft //BUILD conference -- where HoloLens was center stage!
  • Brian Hogan

    Rethink Frontend Development With Elm

    by Brian Hogan
    Come explore Elm, a functional programming language for making web things. Elm aims to solve some of the same problems that Ember, React, and Angular 2 solve, but in a radically different way. Strong and static typing ensures that data you pass around in your apps really is what you think it is. A simple and tried-and-true architecture makes it easy to understand, and great tooling makes it fun to use.

    In this talk, we'll explore how we use Elm to build our user interface and our code, and we'll take an honest look at where Elm can make a difference for you, and where it falls short. By the end of the talk, you'll know how to get started and have all the resources you need to explore Elm on your own.
  • Kevin Stanton

    PJAX Driven Architecture

    by Kevin Stanton
    Front End (targeting, and "the two classes you probably don't know about 'processed', and 'unprocessed' ")

    Back End (sessions/cookies, variable passing)

    Middle (the front to back end communications)
  • Todd Gardner and Jordan Griffin

    Launching a Software Business

    by Todd Gardner and Jordan Griffin
    Are you tired of building someone else’s product? Are you tired of building yet another business application? Are you itching to build something amazing? Join our panel conversation and Q&A with real developers who’ve started and built software businesses. Let’s talk about the failures and successes, the fears and arrogance in starting a business. Bring your questions and let’s startup.
  • Barry Stahl

    A Developer's Guide to Finding Optimal Solutions

    by Barry Stahl
    Solving problems that have more than one possible solution is something every developer will be asked to do over the course of his or her career. Figuring out the best way to utilize the capacity of a device or machine, finding the shortest path between two points, or determining the best way to schedule people or events are all problems where mathematical optimization techniques can be used to quickly and efficiently find solutions.

    In this introduction to mathematical optimization designed specifically for software developers, we will explore some of the foundational techniques for solving these types of problems, and add several of these methods to your toolbox so that you can put them to work for your customers. Since this is a session for developers, we'll keep it in terms that work best for us. That is, we'll go heavy on the code and lighter on the math.
  • Dan Nordquist

    DevOps Tools, Explained for Developers

    by Dan Nordquist
    Maybe you've watched a few videos about devops tools like Vagrant, Docker, or Microsoft Release Management. You know they represent the future, but you're not sure why to use them, how to apply them, or how they work together. Join Dan as he briefly explains the DevOps movement, and then demonstrates real-world usage of these DevOps tools.
  • Jonathan Dexter

    F# and Data 101: Utilizing FsLab to Quickly Understand your Data

    by Jonathan Dexter
    In this talk, we’re going to run through a suite of tools that the F# community has created to bring the power of F# to data manipulation and modeling. Utilizing the functional-first, typed architecture that F# provides, FsLab is a collection of packages which allow data to be explored and understood. These packages include: F# Data, which utilizes F#’s type provider system to create concrete types without boilerplate classes; Deedle, which allows swift in-memory manipulations and transformations of data; and visualization and more packages. We’ll touch on F# syntax as we go. Come join and take a crash course through these tools.
  • Philip Nelson

    Introduction to Docker

    by Philip Nelson
    Find out what all this containerization talk is about, and how you can use this for your development and devops work. We'll focus most on your development workflow with more in depth coverage of multiple container applications running locally, how data is saved, how containers are wired together in a network, how your IDE fits in, and other practical stuff the initial howto articles don't seem to cover. We'll cover how docker fits in with other devops tools, and then we'll end with an overview of the ways these containers can be used in production.
  • Jennifer Strater

    Test-Driven Approaches to Documenting RESTful APIs (for Groovy/Java)

    by Jennifer Strater
    Documentation generated from source code is very popular. Solutions such as Swagger are available for many different languages and frameworks. However, limitations of annotation based tools are becoming apparent. An overwhelming number of documentation annotations make for great docs but muddy the source code. Then, something changes and the docs are out of date again.

    That is where test-driven approaches come in.

    Test-driven documentation solutions, such as Spring Rest Docs, generate example snippets for requests and responses from tests ensuring both code coverage and accurate documentation. It can even fail the build when documentation becomes out of date. This session will walk through how to implement test-driven documentation solutions for groovy ecosystem technologies like Spring Boot and Grails. Attendees should have a basic understanding of AsciiDoc and how to construct RESTful APIs in Spring Boot and/or Grails.
  • Wendy Istvanick

    Continuous Security

    by Wendy Istvanick
    Worldwide, from government to retail, banking to healthcare, hacks and data breaches are becoming household names. Yet we often ignore many security concerns as we work towards our various delivery deadlines, handling only those that are easy to incorporate. And we generally rely on manual processes to ensure that even these steps are followed.

    Similar to what we are doing with increasing frequency for functional testing, configuration, and deployment, we can integrate some security measures into our pipelines and other processes. This talk will go through a few options, using examples for multiple programming languages including C#, Java, and Ruby and highlighting how running them regular could thwart various security threats.
  • Nate Taylor

    An Introduction to Semantic 2.0

    by Nate Taylor
    Is CSS and layout a mystery to you? When you read HTML are you able to understand what will be displayed without constantly looking up classes or documentation? If you’re like me, these are problems you run into when doing the view layer of your application. CSS classes become meaningless combinations of letters that don’t really seem to express intent.

    However, there’s a library to help with that. Semantic UI is a framework that aims to create rich UIs “using human-friendly HTML.” Gone are the days of col-md-3. Instead, our HTML will have classes like “three column wide”. But it’s more than that. Semantic UI has a wide variety of elements, collections, and views that can make any application pop, all while following sane patterns. Throughout this talk, we’ll look at several key UI components, and talk about the underlying principles of Semantic UI. After leaving the talk, you’ll be bale to install Semantic UI (hint: it’s really simple) and get up and running on your next project.