Utah Code Camp 2015 Sessions


Web Development

Introduction to AngularJS
  55  

We will create a very simple contacts web application using AngularJS. We will start with a sample application and add AngularJS to it. We will go through the process of adding the Angular markup to the webpage as well as controllers and Angular services (factory). All of the data will be mocked so there will be little to no server side code. I will assume that you have a good understanding of JavaScript.

Level 100 - Introduction
Duration: Hour
Presenter: Brian Coleman


Your Momma's got Javascript Design Patterns!!
  38  

Design patterns are core to understanding and reasoning about large code bases. With javascript more and more becoming the major language of awesomeness, it's imperative for devs to be smart about what they write and not leave junky code for future devs to maintain. The original Gang of Four design patterns have been used and applied across many languages, however, not all patterns are equal across languages. JavaScript is unique in that it has many aspects of Functional as well as Object-oriented programming principles. We'll discuss common JS design patterns and practices for large-scale app development, and showcase how you can use them to make life more awesome for all to come.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Ryan Done


Getting Back in the Saddle of the Wild Web
  32  

If you've been out of the Web scene for any amount of time, you've probably noticed things have changed... a lot. We'll talk about the state of the Web, which technologies are most valuable to invest your time, and where to start. The good news is that much of the minutiae and dynamic aspects of Web design and development may be automated by new tools. But, you must choose the right tool for the job, and for that you must know your options. We'll talk about options in each technology category, their benefits and risks, and how to leverage them to your advantage.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Michael Christian


React.js
  29  

A high-performance, reactive UI library for client-side web applications built to solve one problem: building large applications with data that changes over time.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Data in your WebAPI
  27  

Methods of working with data has evolved over the years as has our mechanisms to access it through services. In this session you'll learn not only how to expose data through the Web API, but also learn ways to tune and improve your data interactions with Web API, IQueryables and the Entity Framework.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: 75 Min
Presenter: Jim Wooley


Replacing Your AngularJS Directives with ReactJS
  27  

You are not quite satisfied with AngularJS's views and directives. You know there must be something that is faster, more testable and component based. You are right! In this session, you will see how ReactJS's Fast, Declarative and Composable components can be used inside of Angular or just replace Angular with ReactJS and JQuery.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Zhon Johansen


Deploy Anything with Docker
  24  

Linux containers are revolutionizing the way we deploy applications. They allow repeatable, consistent deployments into isolated environments without the heavy overhead of VMs. No matter what language or technologies you are trying to deploy, docker makes it remarkably simple. Never fight with installers again!

Level 100 - Introduction
Duration: Hour
Presenter: Craig Peterson


Client Side Frameworks
  22  

JavaScript, CSS, LESS, etc. frameworks/libraries

Volunteers: Mitchell Harris
Want to volunteer? I Can Present This!


Creating web mashups with NodeJS
  22  

See how to use NodeJS to scrape up information from web sites and REST APIs to mash up a dashboard or transform information from sites without REST apis into your application.

Volunteers: Richard Thomson
Want to volunteer? I Can Present This!


Getting pushy with SignalR and Reactive Extensions
  16  

SignalR facilitates push notifications over HTTP to a variety of clients. The Reactive Extensions were designed to allow for asynchronous LINQ over push based collections. In this talk, you’ll see how the synergy of these two technologies merge to make otherwise difficult tasks, a push over.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Jim Wooley


Dive into Web Components and Polymer
  15  

Web components are a new spec defined by W3C and beginning to be implemented by many modern web browsers. Today we'll dig into web components, talk about what they are and what they aren't, explain how they differ from AngularJS directives and ReactJS components, and talk about how you can begin using web components TODAY using using the open source library, Polymer. We'll talk about custom elements, shadow dom, html imports, and more. You'll leave this session with a deeper understanding of how browser rendering works and how you can use Web Components to take your current project to the next level. This ain't your mother's world wide web!

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Ryan Done


A little non-chat about SignalR
  15  

Typically web applications typically work by the browser sending a request to the server. But what if you need the server to send a request to the browser? SignalR will let you do that. But, it seems like every SignalR demo shows how to develop a chat application. How many of us are going to do that? In this session, we'll explore real world uses for SignalR, including thermometers for long-running server tasks, alerts, SignalR in non-web apps, and more.

Level 100 - Introduction
Duration: 75 Min
Presenter: Craig Berntson


Data Modeling on NoSQL
  14  

NoSQL is being pulled closer and closer to the core of applications, not just as a reporting and data mining tool. More and more applications are leveraging the power of NoSQL as a primary means of data storage. This session will cover how to successfully model application data on NoSQL storage engines for everyday application use. We'll explore common design patterns, techniques and tips that help developers leverage the horizontal scalability of NoSQL stores while embracing their inherent limitations.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Bryce Cottam


TypeScript
  13  

http://www.typescriptlang.org adds new powerful features to JavaScript. It is supported by all browsers. New features include: compile-time error checking, static data types, enums, classes with constructors, inheritance, polymorphism, interfaces, generics, method overloading, namespaces, and mix-ins. It also makes the "this" keyword more consistent when used in callback methods (a major painpoint for new JavaScript developers). It is open-source and has a large developer following. It is supported by most popular web development IDEs which include intellisense/auto-completion (including for 3rd party libraries), and refactoring.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Inside AngularJS Library Directives
  13  

We'll take a look at the source code for AngularJS's standard library directives. Learning how AngularJs's core library directives are implemented is a great launching point to making your own re-usable and well-structured directives.

Level 400 - (Advanced): Experience with subject matter is strongly recommended
Duration: Hour
Presenter: Mitchell Harris


Build an app using Backend as a Service
  9  

The web and mobile dev world is changing! Backend as a Service (BaaS) services have sounded the Siren call to, "Just write your App, and we'll take care of the rest!" But what can these services really do? Are they ready for prime time? We'll live-code a web app from back to front using one of these crazy BaaS systems and get our feet wet so that YOU can decide if BaaS is right for you.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Ryan Done


Acceptance Testing for the Mockist Unit Tester
  9  

If you are doing Mockist style TDD (you are testing your interactions rather than the state of your objects), you absolutely need Acceptance Tests. In this session, you will learn what ATs are, how to write them and how many to right. Frameworks like Fitnesse, Cucumber, and CasperJS can help, but most likely, you will be creating your own DSL.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!



Open Source

Git from the Inside Out
  49  

Github is arguably the most important development resource on the internet today. The VCS behind it, git, is now the default choice of most software development organizations, despite having what may be the worst user interface ever imagined. While a number of tools have been released to help manage this complexity, it's tempting to try and ignore what's actually going on behind the scenes. In this session, we'll be exploring the git object model. Join us as we explore blobs, trees, and commits, and see how these simple pieces join forces to do amazing things. Even the arcane complexities of the CLI become (a little) less obtuse once you understand what Linus thinks you're doing. This session will not require any prior experience with git or distributed version control.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Neil Sorensen


Functional Programming Fundamentals
  37  

Come learn the basics of functional programming and why you want to be using it. We'll cover immutability (including persistent data structures), recursion, and how higher-order functions will help you write cleaner code.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Eric Andres


Introduction to Go
  31  

Go from Google is rapidly gaining popularity for it's speed and simplicity. More and more companies are adopting it for anything from dev-ops tools to high performance web stacks. Come get an intoduction to what Go is, why it is amazing, and why you should give it a try.

Level 100 - Introduction
Duration: Hour
Presenter: Craig Peterson


Visualizing Git
  29  

Git is a very popular open source distributed version control system. It is used for many projects ranging from one man projects to the .NET Framework and the Linux kernel. In this session we will look at not only what happens when you create a repository, check in, branch, and perform other common Git commands. With this new understanding you will have more confidence when working with Git.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Scott Golightly


Intro to Node.js
  24  

Come learn the basics of Node.js in a hands-on workshop where we'll create some simple scripts. You will be introduced to: npm, CLI usage, file system access, HTTP requests, and some basic unit testing. Attendees should install Node.js beforehand and have a working knowledge of JavaScript, but prior experience with Node.js is not required.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Allan Stewart


Advanced Go Concurrency Patterns
  9  

One of the best features of Go are its concurrency primitives that make complicated concurrency patterns surprisingly simple. Come learn about goroutines and channels in depth and learn how to compose them to make difficult concurrency situations easy.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Craig Peterson


Getting Started with Vim
  9  

How to get started using vim, how to customize it with plugins, and how to switch over to using it daily.

Level 200 - (Beginner): Introductory / fast moving
Duration: Half Hour
Presenter: Adam Harris


Beautiful Monitoring with Grafana
  8  

Are you tired of trying to figure out why your system is not performing by piecing together information from syslog, nagios, performance counters, and cloud watch? Do you ever wish you could look back a month and quickly visualize trends that would explain what you are seeing today? Dream no more. The powerhouse open source duo of Grafana dashboards on top of the time series database InfluxDB are here today. In this session we will learn how to set up InfluxDB, pump in your system statistics, and build dashboards that look like works of art.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Lee Jensen


Introduction to Nagios
  7  

As your company grows, so will the number of servers and services you need to take care of. Doesn't matter if you are big or small, having monitoring in place will help tremendously in reducing headaches, downtimes and even problems or awkward situations with your clients. Nagios is an open source computer and network monitoring tool, which offers flexible alerts and historic reports that will help you keep an eye on your infrastructure. In this session we will go over a basic Nagios configuration to monitor servers, services and send alerts based on rules we will define.

Level 100 - Introduction
Duration: Hour
Presenter: Andres Arias


Efficient Parsing in C++ with Boost.Spirit
  3  

We'll look at the Boost.Spirit library for writing efficient parsers using JSON parsing as an example.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Richard Thomson



Microsoft

.NET 4.6, ASP.NET 5 and Visual Studio 2015
  64  

See what's new in the .NET 4.6 Framework, ASP.NET 5, and Visual Studio 2015. Does ASP.NET 5 really run on linux? What can you do with the new Roslyn compiler? Entity Framework 7! .NET Native? There is all kinds of cool stuff coming out of Microsoft, Let's learn about them.

Presenter: Nate McMaster


Introduction to Roslyn
  37  

Learn about Microsoft Roslyn - what it can do, and how to use it. We will explore using it to perform some simple code analysis, and create a simple "code console" library for use in your applications.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Corey Larson


What’s new in Windows 10 for Mobile Developers
  31  

This is it. Windows 10 is transforming the landscape of app development in beautiful ways. Come get a glimpse of what is headed your way. Jerry Nixon is creating all the worldwide developer education for the Windows 10 launch; he'll share with you everything he can without getting fired from Microsoft. :)

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: 75 Min
Presenter: Jerry Nixon - MSFT


PowerShell : How Do I Start?
  22  

Ever wonder how to get started with PowerShell? There are things that you can learn that will facilitate your learning in the future. This session will get you started and arm you with all the tools to be successful in using PowerShell. We are going from 0 - 60 so no knowledge is assumed. Come let's have fun getting to know how to get started.

Level 100 - Introduction
Duration: 75 Min
Presenter: Ben Miller


What's new in Windows 10 for XAML Developers
  20  

Ready to build? The XAML UI platform is key to awesome app dev. as well as the operating system. Windows 10 brings enhancements, new controls, new techniques, and new features for XAML developers. Come get a look at the new Blend, with a lap around our new controls and the expanded XAML toolbox.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Jerry Nixon - MSFT


.Net Compiler Platform (Roslyn) and You
  18  

Over the last five 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.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: 75 Min
Presenter: Jim Wooley


Reactive Extensions (Rx) in Action
  12  

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

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: 75 Min
Presenter: Jim Wooley


Desired State Configuration
  9  

What is DSC? DSC is a PowerShell extension and ships with Windows Server 2012 R2 and Windows 8.1. A couple of examples what DSC enables you to do are: • Install or remove server roles and features • Manage registry settings • Manage files and directories • Start, stop, and manage processes and services • Manage local groups and user accounts • Install and manage packages such as .msi and .exe • Manage environment variables • Run Windows PowerShell scripts • Fix a configuration that has drifted away from the desired state • Discover the actual configuration state on a given node

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


WiX Installer
  9  

Create an full-featured installer using the simple Windows Installer XML (WiX). WiX allows you to create very detailed and powerful installers from just a simple XML file. You can copy files, run merge modules, and even handle prerequisites like the .NET framework or Visual C++ Redistributables. We will demo creating a simple installer for a simple application and show how to use WiX's Burn tool to create a bootstrapper to kick it all off.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


ProtoBuff.NET
  3  

Serialization can be slow and tedious. JSON hasn't been as great as hoped. If you're looking for an easy, *fast*, and size efficient serializer, then you might be looking for ProtoBuff.NET.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!



Mobile Development

Hello Android
  36  

So you want to try your hand at mobile development and you've decided that Android is the way to go. What makes up an Android app and how do you get started? This session will take you through setting up your project, it will introduce you to the basic components of an app, and it will show you how to establish a layout and get your first app up on the screen. We will run through adding events to buttons and navigating around an app. By the end of this session you should have enough knowledge to go out and start moving on your own. Slides and code for the sample app are available at https://github.com/alphonzo79/HelloAndroidExample

Level 100 - Introduction
Duration: 75 Min
Presenter: Joe Rowley


Winning with Xamarin.Forms
  23  

In the holy grail of native app look and feel with native app performance AND 99% code reuse, Xamarin.Forms nails all three. The Xamarin.Forms framework is picking up a lot of steam and is being hailed as the best cross-platform mobile tool. Learn how to get started with Xamarin.Forms, how to reuse your code across all three major platforms, and how to do more complicated tasks like custom rendering.

Volunteers: Jon Douglas
Want to volunteer? I Can Present This!


Wearable Tech and Your Face: What companies are gathering and new ways they are using it
  23  

With the explosion of wearable tech as well as smartphone apps in general that have access to your location, movements, and even microphone, you may not be surprised at the information companies are gathering about you but what may surprise you are the creative ways they are using that data as well as how data from seemingly unrelated sources is being combined and mapped to tell a powerful story about what makes us tick.

Level 100 - Introduction
Duration: Hour
Presenter: Craig Golightly


Using Xamarin to achieve your mobile dreams
  18  

Mobile is a hot technology right now. Anyone getting started has three major platforms to choice: Android, iOS, and Windows Phone. Whether you are a .NET shop or not Xamarin is a great way to bring your product to these mobile platforms. We'll Look at getting started with Xamarin's mobile platforms and how you can share 70+% of your code base and still experience native performance. Also, we'll look at other tools such as Xamarin Test Cloud and Xamarin Insights that can help you deliver a great mobile project.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Stephen Shaw


Ionic: Advanced HTML5 Hybrid Mobile apps
  16  

Learn what it takes to get started using the HTML5 ionic framework to start developing your mobile applications.

Volunteers: Rick Hernandez
Want to volunteer? I Can Present This!


Testing mobile made scalable
  10  

One of the biggest challenges with mobile is that there are so many devices out there. Not only that but they have different versions, resolutions, and a hand full of other little things that can make development more challenging. Xamarin Test Cloud (XTC) allows you to run your application on over a thousand real physical devices with different configurations with very little effort. This also works with apps written in java and obj-c. Come see how this amazing tools works and how you can add it to your toolbox.

Level 100 - Introduction
Duration: Hour
Presenter: Stephen Shaw


Android Lessons Learned: Some "Best Practices" that have grown out of complex problems at Bodybuilding.com
  6  

Building a world-class app with a rich UI and robust feature set presents a unique set of challenges. Performance becomes paramount and keeping the app as lean as possible becomes essential. We haven't solved every problem (yet), but have stumbled into some patterns that have become best practices around the office. This session will touch on layouts, data loading, drawables, Gradle, and more. Sample code for this session can be found at https://github.com/alphonzo79/LessonsLearned

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: 75 Min
Presenter: Joe Rowley


Mobile Development with Apache Cordova
  2  

See how you can use your skills with HTML and CSS to create applications for the desktop, tablets, and mobile devices. There are several options to let you port your existing web site to a mobile application. We will also look at the Apache Cordova project to see how you can be use this free tool to migrate current web sites to mobile sites and how you can create mobile applications from scratch.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Scott Golightly



Professional Development

The Quest for Continuous Delivery at Pluralsight
  36  

Continuous integration, continuous delivery, continuous deployment. These may seem like unreachable goals in your current situation. Maybe you’re doing weekly or even monthly coordinated releases. At Pluralsight we deploy multiple times a week, sometimes multiple times a day. We’re not perfect and we’re constantly working to improve our system, but I’ll share an experience report of where we currently are and where we’re going. (could be a half hour or hour session)

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Mike Clement


Managing the Business of YOU
  26  

Are you working on a project you love? Are you getting paid what you're worth? This isn't another nebulous presentation filled with cutesy phrases. Learn real tools and strategies to bridge the gap between your contributions and your compensation. Gain more freedom to do real work and get that raise you've been missing.

Level 100 - Introduction
Duration: Hour
Presenter: Craig Golightly


Play to Learn!: Agile Games with Cards and Dice
  19  

Play is a powerful method to learn! Come and play some simple agile games that use playing cards, index cards and dice to explore the different values that are at the foundation of Agile and Lean development practices. In addition to your own insights, you may be able to take these game back to work to share with your co-workers. This is a hands-on session so come prepared to have some fun! There is no "right" answer to what you're "supposed to" learn from a game, so come ready to discover your own insights into software development processes and teamwork.

Level 100 - Introduction
Duration: 75 Min
Presenter: Mike Clement


You Kan Kanban Too For Super Produktivity ;)
  13  

So many frameworks, so little time. Kanban - what is it? And how can it help you be more productive? And why should you worry about YET ANOTHER framework? I have seen a dramatic increase in personal productivity using Kanban, and I want to share my findings with you. I knew it was working when my 8 year old heard me describing a big project we needed to complete and said "I think you need to make a Kanban board for that, mama." The best part is: this system is lightweight, mobile, effective, and all about YOU. You can be your own accountability partner with Kanban. Let me show you how.

Level 100 - Introduction
Duration: Half Hour
Presenter: Hala Saleh


Getting Started with Agile using Scrum
  12  

What is this strange Agile Scrum stuff anyway? If you’re interested in a beginner’s level introduction to Agile using Scrum, then you’ve come to the right place. We’ll cover the basics front to back: The “how” and even some of the “why” in the world of Agile Scrum software development. Strategies to help your team overcome some of the hurdles that challenge Scrum implementations will also be discussed. Based on topics from Jeff Sutherland’s book: “Scrum: The Art of Doing Twice the Work in Half the Time”, I hope to impart some of my experience and observations as an active Scrum Master.

Level 100 - Introduction
Duration: Hour
Presenter: Mason Bennett


Are Software Patents Dead?
  10  

Recent Supreme Court decisions have left many wondering: Can computer and software-based inventions still be patented? This presentation will describe recent shifts in U.S. patent law relating to computers, software, and what may and may not be patented.

Level 100 - Introduction
Duration: Half Hour
Presenter: Sterling Fillmore


PicoCluster for Learning Big Data
  5  

A PicoCluster combines hardware and software to create a learning environment for Big Data applications. Think of a PicoCluster as a personal data center. The management tool makes it easy to install software packages like Hadoop, Elasticsearch, and Cassandra, but on a 5 node compute cluster. The desktop software makes it simple to interact with the cluster by dragging and dropping data to and from the cluster. Come and learn the PicoCluster way!

Level 100 - Introduction
Duration: Hour
Presenter: Craig Brown



Architecture

Beyond Objects Only
  36  

Object orientation has been around since the early 70's. In the last decade it has become a buzz word, and languages have forced themselves into object only paradigms. In the last few years we've seen the emergence of mixed-paradigm languages that have objects, but also offer functions and data-driven paradigms. We'll explore the role of an object in modern programming languages, where we should use them, and where we should leave their shackles for more evolved methods.

Level 400 - (Advanced): Experience with subject matter is strongly recommended
Duration: Hour
Presenter: Mitchell Harris


What Web Developers need to know about Cassandra
  20  

You've heard a lot of hype around Cassandra. But what does Cassandra really mean to you? Is it a high-end tool just for big data teams? Is it a database that you can drop in to replace your website's current SQL or NoSQL database? As always, there are many tradeoffs when making an architectural decision like what database to use. At Pluralsight, we have decided to use Cassandra for much of our website. This presentation explains the basics of Cassandra and where you might - and might not - want to use it, and the impact it will have on how you develop your app.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Kay Johansen


Architectural Refactoring
  20  

Let's face it, the system you maintain isn't meeting expectations. The crystal ball you were issued at engineer academy was broken and you guessed wrong about how the system would grow. Now you're faced with a choice: should you bite the bullet and rewrite or should you somehow try to salvage what you have? In this session, we will discuss some options for salvaging an an app by refactoring it into a system over time.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: David Adsit


More Thinking in F#: Functional Core, Imperative Shell
  19  

Functional Programming is SO HOT right now (wasn’t this the cool thing back in the 70s too?), but how do you use it in a world filled with mutable state? You need an imperative shell to protect your functions and allow them to interact safely with the world at large (screens, databases, network, etc) and with other pockets of functional code. We’ll look at a system that uses this methodology (built using F# and C# using a combination the actor model and microservices) and talk through the pros and cons of this approach to building an application.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Mike Clement



Data/Database Technologies

Human vs Machine: Dealing with Unstructured Data
  28  

New data is being generated faster than ever-especially unstructured data. Social media, call recordings, open ended survey questions, free form reports, etc.-what is the best way to deal with it? Join in to see tools and strategies to add structure to the unstructured and extract value from these mountains of data.

Level 100 - Introduction
Duration: Hour
Presenter: Craig Golightly


Intro to MongoDB
  26  

Introduction to and overview of MongoDB for developers. Exploring the world of document databases, scalable infrastructure and ease of deployments using MongoDB.

Volunteers: Derek Argueta
Want to volunteer? I Can Present This!


How To Become A Data Scientist By Example
  24  

There is a huge need right now for data scientists. With a median income of $118,000 and growing attend this track to find out how to become a data scientist or if you already are what to do to become better rounded or more marketable. This session will cover a broad range of expected skills and competencies needed, along with code examples and tasks to improve. Ben is HireVue's chief data scientist and has been a thought leader in what to look for when hiring data scientists.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Ben Taylor


Bee-Witching Intro to HIVE
  15  

Using hadoop for your data, and throwing it onto a file system, is one thing. Retrieving it and learning from the data is another. There are a lot of tools out there that help with data analysis and manipulation, and one of them is always on the radar. HIVE is great for a lot of things, but there's a few questions we have to ask our selves as data explorers: HIVE, what is it? A brief exploration of what is MapReduce. What is HIVE doing behind the scenes (High-Level). How do we design HIVE queries/tables around our data? Can we extend HIVE functionality? HIVE, why not use it for everything? This presentation is designed around learning about HIVE, what it does and how it functions along with it's limits and bounds. By the end of the presentation one should be able to walk away with enough understanding to jump into the world of HIVE, or make decisions based around using HIVE in your projects.

Level 100 - Introduction
Duration: Hour
Presenter: Joshua Holzworth


Intro to Data Analysis
  14  

Are you sick of Excel? Tired of SQL? Want to use Python to extract and munge data? Want to create nice visualizations to impress the suits? Need some statistical rigor around your data? This talk will cover basic statistics, analysis, and visualization using Python. Bring a laptop with Python, Pandas and Matplotlib installed. (Use the Anaconda distribution for easy installation to follow along.)

Level 100 - Introduction
Duration: Hour
Presenter: Matt Harrison


Intro to Machine Learning
  14  

Interested in an overview of machine learning? We will cover the basics and techniques that Data Scientists are doing behind the scenes with "Big Data". This course will discuss the fundamentals of: * Classification * Regression * Clustering * Dimensionality Reduction Using the sci-kit learn library we will discuss the core ideas of machine learning. Come with a laptop with scikit-learn installed to follow along. (Use the Anaconda distribution for easy installation.)

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Matt Harrison


Machine Learning with the Google Prediction API
  14  

Powerful, open-source machine learning packages are now available in a variety of language environments. In contrast, the Google Prediction API represents a proprietary, closed-source machine learning service, hosted by Google in the cloud. Come examine the pros and cons of the Google Prediction API, and check out how it performs head-to-head against some of the most popular models from the scikit-learn package for Python.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Jed Ludlow


TSQL Best Practices for Developers
  13  

This session will take a look at things that you should regularly know and use when coding TSQL. How can you be really friendly to SQL? The items covered will show you things that will help ensure that your code is readable, efficient and maintainable. We will look at query semantics, datatypes, things to avoid as well as how to be super friendly to the SQL Engine and allow things to work well.

Level 200 - (Beginner): Introductory / fast moving
Duration: 75 Min
Presenter: Ben Miller


Intro to Pig
  13  

Interested in analyzing massive data sets in a high-level language? Pig allows you to quickly write complex data transformation applications, while still being easy to understand at a glance. Introduction to Pig: What is Pig, how it works, a tutorial, use cases and the current state of the world of Pig.

Level 100 - Introduction
Duration: Hour
Presenter: Jonathan Edwards


Get Started with SSIS
  8  

Getting started with SSIS (Just the basics)

Volunteers: Matt Horton , Ben Miller , Nathan Zimmerman
Want to volunteer? I Can Present This!


Reactive Streams (Scala/Akka)
  7  

Reactive Streams by Tim Harper This talk will go over the proposed Reactive Streams protocol standard and touch on the following points: • Explore the definition of streams • Why not Java8 Streams / Rx / etc. ? • What unique problem does Reactive Streams solve? • Comparison of various techniques to process data over async boundaries. Pros / cons. • Explore advantages of dynamic push / pull stream processing. • Simulation and visualization of back-pressure over async boundaries • Performance: What decisions were made to make it fast, and how to make it faster • Explore places where push-pull streaming technology is useful.

Level 100 - Introduction
Duration: Hour
Presenter: Tim Harper


PowerPivot
  5  

PowerPivot for Excel basics

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Introduction to Hadoop and Big Data for Relational Database Professionals
  4  

Working with relational databases and what to learn what's the hype is with Hadoop? This session is for you. The Hadoop ecosystem is a major component of modern Big Data stacks and this session focuses on explaining Hadoop design principles and how these principles enable customers to boost capabilities of their traditional data warehouses, for example, as well as for new data processing use cases that were considered prohibitively expensive with traditional database software.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Alex Gorbachev


Introduction to Raven DB
  3  

Raven DB is a document database like no other! It's core principles and super-duper-indexing capability make it the best datastore ever! Come learn why Raven DB is different, how to use some of the basic features and what kinds of situations this kind of database is a good fit.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!



Game Development

Build a Complete HTML5 Game From Scratch in 45 Minutes
  52  

We'll walk through the process of making a complete HTML5 game starting with nothing but NotePad and browser. Seriously: no extra 3rd party libraries, no magical pages of pasted-in code, and a playable game when we're done. We'll begin with basic HTML5 setup and then jump right into input, canvas graphics, sprite rendering, animation timing, and audio. We'll touch in passing on some advanced topics like WebGL, WebAudio, and performance issues. And we'll review the many platforms where HTML5 games can be released today (including web, mobile, Windows, Xbox One, Wii U, and more). Why from scratch? Why not use a game engine or even jquery? Because everybody picks different libraries for different reasons. We're going to focus on the fundamentals, and let you make those decisions later, hopefully based on what you learned at one of the other fine sessions here at Utah Code Camp. :) It will help if you know basic JavaScript reasonably well.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Steve Taylor


Build a Unity 3D Game in 1 Hour
  36  

We’ll cover the basics of Unity 3D and go right into building a fully functional 2D game. We’ll learn the fundamentals by actually making a game, covering: C# Script Creation, Inspector Interactions, Audio, Animations, Triggers, GUI, and Deployment. Don’t be fooled in our creation of a 2D game, you are still working with a 3D environment and everything you learn will applicable in a 3D game - we start with 2D to ease the learning curve. By the end of the presentation you will have a clear example of how simple it is to get up and running with Unity 3D. You will be provided with a PDF version of the presentation, the source code, and all assets used in the project.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Mark Price


MineCraft Development in Java
  23  

Learn how to create custom MOD's in MineCraft using Java We will cover the following items: •Minecraft developer foundation (Forge) •Create a simple Mod Base •Create / Edit images for Minecraft (Sword, Pickaxe, etc) •Add Images to your Mod •Create Recipe for your new item •Run your Mod in Minecraft (play the game) for Children 10 years and older.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Mick Knutson


Getting started with Unity3D
  13  

I want someone to show me how to get started (and hopefully somewhat comfortable) in Unity 3D

Volunteers: Mark Price
Want to volunteer? I Can Present This!


PhaserJS
  11  

http://www.phaser.io is a JavaScript 2D game development engine. It offers speedy rendering through WebGL but falls back gracefully to Canvas on older browsers. It is supported on web and mobile browsers as well as cross-platform mobile apps through Cordova, CrossWalk or Cocoon. It supports most important features for 2D development including: Sprites, TileMaps, UI Elements with EventHandling, Animations, Tweening, Physics, Shaders, Particle Effects, Audio, Primitive Drawing, Text/Font rendering, Timers, Camera/World coordinate system, and Keyboard/Mouse/Touch input. It also supports auto-scaling to any device's screen size.

Volunteers: Jason Marlow
Want to volunteer? I Can Present This!


MonoGame - Write Once, Play Everywhere
  11  

MonoGame is an open source implementation of the Microsoft XNA 4.x Framework. As many know, Microsoft killed XNA back in April 2014 but it still lives through the MonoGame project! Platforms supported by MonoGame include iOS (including Retina displays) Android Windows (OpenGL, a DirectX 11 version is currently in development) Mac OS X Linux Windows Store Apps (for Windows 8 and Windows RT) Windows Phone 8 PlayStation Mobile (currently 2D only) OUYA Come learn what MonoGame is all about!

Level 200 - (Beginner): Introductory / fast moving
Duration: Half Hour
Presenter: Jon Douglas


The Direct3D Graphics Pipeline
  4  

We'll review the GPU graphics pipeline from submitting input data to the GPU to the final rendering that comes out on the monitor. This will be an overview of the pipeline.

Level 100 - Introduction
Duration: Hour
Presenter: Richard Thomson


Shader Development in Direct3D
  3  

We'll explore the latest tools from Microsoft to develop shaders for Direct3D in Visual Studio. Pixel Shaders, Vertex Shaders, Geometry Shaders, Hull Shaders and Compute Shaders will all be covered. This will be a survey overview.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Richard Thomson



Electronics

Getting Started with Raspberry Pi
  36  

I just got a Raspberry PI, where do I begin?

Volunteers: Phil Gilmore
Want to volunteer? I Can Present This!


Junk Drawer Robotics
  25  

A fun way to learn about electronics and programming with your kids is to build your own robot. This session will cover the many options that are available including: Different controllers that are available, ways to power your robot, inexpensive sensors, and motors and wheels.

Level 100 - Introduction
Duration: Hour
Presenter: Brian Ivie


Hands-on Projects with Arduinos: Ultrasonic Radar
  18  

This session will be a quick introduction into what an Arduino is, and then we will be building an ultrasonic radar using an Arduino, a servo, and Processing. This will be a hands-on session so you will want to bring a laptop or come with a friend who has a laptop.

Level 100 - Introduction
Duration: Hour
Presenter: Brian Ivie


Teaching Kids Electronics
  17  

Looking for a way to get kids interested in science, technology, engineering and math (STEM)? Electronics are everywhere, and can be a lot of fun to design, build and program. In this session you'll find out about some fun things that you can do with your kids to teach them about electronics and get them interested in science and technology.

Level 100 - Introduction
Duration: Hour
Presenter: Brian Ivie


Saving Lunch with the Arduino Yun
  11  

This presentation will profile a solution to a real world problem using the Arduino Yun. Topics will include configuring the Yun, running a Node server on the Yun, accessing cloud services from the Yun, and accessing the internet through the Arduino GSM shield.

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Tom Day



Testing

Adding Unit Tests to Your Legacy Code
  43  

So you've heard that unit tests are a good thing. Maybe you've even written a few. But how do you apply what you've learned so far to the mountain of untested code you have to deal with every day at work? If that sounds like you, then this session is for you. The goal of this session isn't to convince you that unit testing is good or even to help you get started with unit testing. The goal of this session is to help you start adding unit testing to your legacy, untested code. Once you start adding tests, you can refactor your code with more confidence so you can add more tests and have more confidence. Thus begins the virtuous cycle of testing!

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Jonathan Turner



DIY

MineCraft workshop
  22  

After the MineCraft session, I suggest a hands-on session to install and prepare attendees laptops for MineCraft development. *** Must bring own laptop for session ***

Level 200 - (Beginner): Introductory / fast moving
Duration: Hour
Presenter: Mick Knutson



Unconference Idea

Nosql Vs RDBMS
  18  

What are some of the pros and cons of Nosql data technologies, compared to RDBMS technologies. This is a general idea/discussion not necessarily which one is better just focused on the good and bad points of each.

Volunteers: Derek Argueta
Want to volunteer? I Can Present This!


Rebooting Agile
  16  

Agile has almost become a canonized set of practices. Back before the Agile manifesto, XP, Scrum, Crystal, FDD, DSDM, etc. were just "weird ideas" that could help us do our jobs better. What are the "weird ideas" of today that can help us do a better job? Where can we improve? What current Agile thinking can challenge to get better?

Volunteers: Brett Child
Want to volunteer? I Can Present This!


Hardware Hacking Show and Tell
  9  

Come see the cool things your peers are building, and maybe even show off something yourself. It could be robotics, and arduino project, or even a custom built keyboard.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!



Design and Interaction

There are no presentations in this track.


Kids and Beginners

JavaScript for Kids and Beginners
  35  

JavaScript is not just for the browser anymore. With the advent of NodeJS the popularity of JavaScript has never been higher! As it turns out, it's also a pretty easy language to get going with. In this session we'll show you how to get going with JavaScript (using NodeJS) and teach some basic control statements, loops, and variables. We'll also write a little game using only JavaScript!

Volunteers: Lucas Earl
Want to volunteer? I Can Present This!


Python for Kids and Beginners
  23  

Python is a great formal language to begin with. It's relatively simple and is easy. In this presentation we'll introduce basic programming constructs using the Python language and hopefully build something fun in the process.

Volunteers: Phil Gilmore
Want to volunteer? I Can Present This!


Learn to program with Scratch
  20  

Scratch is a great environment to learn to program for beginners. Kids as young as 5 can grasp the concepts presented and can use Scratch as a new creative outlet. In this presentation we will create a cool animated scene. In the process we'll introduce the concept of storyboard, sprites, costumes, triggers, messages, and more.

Volunteers: No Volunteers
Want to volunteer? I Can Present This!


Interact with Minecraft Pi using Python
  19  

Minecraft is the game at the root of an incredible ecosystem of servers, worlds and mods. Powerful mods require Java but the (free) Minecraft Pi Edition now provides an easier way for beginners and young players to interact with your 'Craft using Python code. We'll show you how.

Level 100 - Introduction
Duration: Half Hour
Presenter: Phil Gilmore



Languages

What's New in C# 6
  45  

C# 6.0 offers several new features that help streamline your code. You'll learn about primary constructors, property initializers, exception filters, and more. You'll also learn about some of the new features for C# developers in Visual Studio 2015. This presentation will help you understand how these features work and why they can help you be more productive.

Level 300 - (Intermediate): Basic knowledge of subject matter is suggested
Duration: Hour
Presenter: Joe Mayo


Learn Python and Drones
  24  

Interested in learning the basics of Python (and drones)? In this fast paced presentation, we will discuss the basics of the language that is now the most popular language taught in University programs. It is also one of the most popular languages for startups as well. We will illustrate basics by using the constructs to control a drone. You will walk away feeling comfortable with how Python handles variables, functions, looping, conditionals, classes, and drones...

Level 200 - (Beginner): Introductory / fast moving
Duration: 75 Min
Presenter: Matt Harrison



Suggest a Topic!

 

Track Name

Suggesting a topic does not mean you are presenting that suggestion.

Session Name

Track

Level

Duration

Session Abstract


Would you like a mentor to help you with this presentation?



The unconference track is designed to create sessions and ideas on the fly. We want to allow our attendees to use a room through the day for open conversations and concepts. Everyone can vote on the ideas you want to see and then we will publish them in the schedule. Feel free to submit any topic/idea for discussion.

Idea Name

Description