Saturday Sept 16 Center for Communication and Creative Media, Champlain College, Burlington, VT

Sessions

Read more about the sessions of Vermont Code Camp 2016.

Room 1

Complexities of Web Development (Cesar Carrasco) 9:00am-10:00am

Level 200 (Still a Little Green Behind the Gills)

Walk through the thoughts and lessons learned when scaffolding out an Angular2 project – trying to understand what a *-cli does for you: npm, jspm, gulp, grunt, sass, tsc, babel, karma, jasmine, protractor, rxjs, shims of shims, omgwtf (tableflip)

Rock Solid CSS Architecture (John Need) 10:15am-10:45am

Level 200 (Still a Little Green Behind the Gills)

Tired of eating CSS soup day after day? No longer want to play stylesheet Jenga whenever you try to edit main.css? You just may need a CSS architecture. This talk will review the major CSS architectures like BEM (Block Element Modifier) and SMACSS (Scalable and Modular Architecture for CSS) while discussing the pros and cons of each.

Resources:

Custom, Interactive Web Visualizations Using D3.js (Andy Reagan) 1:00pm-1:30pm

Level 200 (Still a Little Green Behind the Gills)

We'll cover everything D3, starting with scales and building a simple visualization (a bar chart) through the tricky stuff: using patterns to package your graphics, custom interactivity, and enabling output of graphics.

Internet of Things: Programming on the Edge (Scott Thibault) 1:45pm-2:15pm

Level 100 (Absolute Beginner)

Learn about the Internet of Things and edge computing. This talk will provide an overview of IoT system architecture, the edge device landscape, and an introduction to RxFusion, the open-source C++ framework for programming edge devices. The presentation includes live demonstrations of example code.

Resources:

Managing Databases in Visual Studio with SQL Server Data Tools (Bob Crowley) 2:30pm-3:30pm

Level 200 (Still a Little Green Behind the Gills)

SQL Server Data Tools (SSDT) transforms database development by introducing a ubiquitous, declarative model that spans all the phases of database development inside Visual Studio. You can use SSDT Transact-SQL design capabilities to build, debug, maintain, and refactor databases. You can work with a database project, or directly with a connected database instance on or off-premise. SSDT facilitates sourced controlled schema and simplifies deployment.

Bye, T-SQL! In-database Analytics with R in SQL Server 2016 (Al Ramirez) 4:00pm-4:30pm

Level 200 (Still a Little Green Behind the Gills)

Microsoft SQL Server 2016 now provides the ability to use R for data analytics and data science applications where T-SQL was once the only option. This session will explore provisioning your SQL Server for R Services and walk through a real world example of performing analysis of your data right at the source. We'll discuss the architecture of R Services in SQL Server and hidden benefits of executing R scripts on SQL Server.

Become a Modern DBA with SQL Server 2016 (Jean-René Roy) 4:45pm-5:45pm

Level 200 (Still a Little Green Behind the Gills)

What is a modern DBA? The modern DBA is the person that uses the right tools for the job.

SQL Server come with many tools (SSMS SSIS, SSRS) but these tools are not always the right tools for the job. When you add SQL Azure to the mix, what skill do you need to be this modern DBA? This session will show you tips and tricks and different tools for different jobs including some of the NoSQL services. What will be presented can be very useful for the developer as well. We will also look at some of the new features of SQL Server 2016.

Some of these tools, services, tips and tricks may become very useful in your day-to-day job.

Room 2

Clean Code & Clean Processes (Hetal Dave) 9:00am-10:00am

Level 100 (Absolute Beginner)

This session is a revival of my Clean Code sessions from the last two years. Think Clean & Single Responsibility.

You Are Not Too Legit to Commit (Sara Simon) 10:15am-10:45am

Level 200 (Still a Little Green Behind the Gills)

Let's talk about documentation. Install instructions are key. The occasional inline comment can be helpful. You want someone to understand your project? That README had better be good. But all of this can be maintained after the fact, right? Ship your code, then shift to documentation, right? Wrong. So very wrong. This session is about the git commit—about the the craft and importance of a good git commit. Commits tell the story of your software. They guide other developers through your project. They guide future you the developer through your project. Good documentation begins at the start, and a thorough commit message can save hours down the road. In this session, we'll talk about how to write one.

Embracing the "Common" in "Common Language Runtime" (Paul Blasucci) 11:00am-12:00pm

Level 200 (Still a Little Green Behind the Gills)

One of the undervalued strengths of .NET/Mono is the ability to mix-and-match many different languages. And yet, developing libraries for polyglot consumption is a little-known craft. In this example-laden talk (drawn from 18 years of professional experience) we'll learn some of the tools, techniques, and mindset needed to deliver high-quality libraries which are a joy to consume from multiple CLR languages.

(Note: this session assumes a day-to-day familiarity with .NET or Mono, though not necessarily in more than one language. Also, the discussion will be limited to languages "in the box" with Visual Studio… sorry, Cobol.NET fans.)

An Introduction to Persistent Distributed Messaging with Apache Kafka (Joshua Dickerson) 1:00pm-1:30pm

Level 200 (Still a Little Green Behind the Gills)

Apache Kafka is a high-throughput, distributed, persistent messaging system that is quickly becoming the standard backbone for real-time big-data deployments across the industry. Come get an introduction to Kafka, and learn how Dealer.com is building their next generation data processing pipeline on top of this new and exciting piece of technology.

Squeezing the Snake Oil Out of UX (Kevin Braun) 1:45pm-2:15pm

Level 200 (Still a Little Green Behind the Gills)

Tired of making changes to your code based off what appear to be random recommendations from the design team? In this presentation I'll take the mystery out of the process and show you how to work with your design team to take meaningful steps towards improving your user experience in predictable, achievable, and measurable ways.

Resources:

Implementing CQRS within Existing Systems (Peter Vile) 2:30pm-3:30pm

Level 200 (Still a Little Green Behind the Gills)

CQRS (Command Query Responsibility Segregation) is a strategy to help systems scale. This talk will have a quick introduction to CQRS, Event Sourcing, DDD (Domain-Driven Design) and how these concepts were applied to a project, as well as the issues we ran into during development, operating the live system and maintaining it.

Some references: DDD, DDD Book, CQRS, CQRS MS Book

Socratic UX: The Art & Science of Generating Productive Questions (Amy Chess) 4:00pm-4:30pm

Level 100 (Absolute Beginner)

Questioning is at the heart of learning about your users. But what makes a great question? This talk will explore the difference between questions that teams need answered in order to make decisions about their products, and the questions that must be asked of users in order to get answers for those teams. Tips for constructing productive questions will be reviewed. Ways to minimize bias and assumptions in your questions will be explored. This talk will also establish that questioning user behavior outside of the confines of your product is an important strategy for revealing unmet needs. The talk will conclude with a brief review of the neural basis of questioning — come learn about what your brain is doing when you ask questions about your users.

From Mobile First to Offline First (Bradley Holt) 4:45pm-5:45pm

Level 200 (Still a Little Green Behind the Gills)

It's all too easy assume that your web or mobile app will run on a fast and reliable network with great coverage. The reality for your app's users, though, is often a slow and unreliable network with spotty coverage. What happens when the network doesn't work, or when the device is in airplane mode? You get unhappy, frustrated users. Building on the principles of mobile first, offline first is an approach to application design in which a web, mobile, desktop, or Internet of Things (IoT) application is built for offline usage first and is then progressively enhanced to take advantage of network connectivity when available.

An offline-first app is an app that works, without error, when there is no network connection. An offline-first app can provide a better, faster user experience — both offline and online — by storing content and data locally and then applying progressive enhancement to synchronize with the cloud when a reliable network connection is available. An offline-first approach can be taken with Progressive Web Apps, mobile apps (native and hybrid), desktop apps (e.g. Electron), and Internet of Things (IoT) apps.

Resources:

Room 3

How Hystrix Circuit Breakers Stopped Platform Outages and Saved the Day (Rob Friesel) 9:00am-10:00am

Level 300 (Pretty Darned Experienced)

In September 2015, the Dealer.com web-app platform suffered a series of outages. In this talk we'll discuss how our team diagnosed the issues, what measures we took to mitigate them, and how it paid off. We'll go into some detail about cascading failures in a service-oriented architecture, MongoDB performance, and how to use Hystrix circuit breakers to make life better for developers and customers.

Web Application Security Basics (Jeremy Hutchinson) 10:15am-10:45am

Level 200 (Still a Little Green Behind the Gills)

We all do our best to avoid the "obvious" security mistakes when writing our applications, but when a security professional performs a manual penetration test on those applications they often find security holes the developers didn't know existed.

In this session we'll cover the OWASP Top 10 security vulnerabilities for web applications. There will be demonstrations on how each vulnerability works, how to test for these vulnerabilities, and most importantly, how to mitigate them.

Sample code will be C#/.NET, but the general concepts apply to all languages/environments.

Seeing the Matrix with tcpdump (David Howell) 11:00am-12:00pm

Level 300 (Pretty Darned Experienced)

Learn the basics of TCP and how to use command line tools to do basic network troubleshooting. All developers work with protocols and abstractions built on top of TCP, so learning how to peak under the hood can be invaluable when troubleshooting.

We'll measure HTTP response times without adding code to your application, inspect the contents of incoming requests (in production!) without attaching a debugger, and more.

Hacking PowerPoint for Developers (John Baluka) 1:00pm-1:30pm

Level 100 (Absolute Beginner)

Effective presentations are hard. When presenting, many developers show a few traditional bullet-point slides and discount the usage of PowerPoint or Keynote, and then resort to unpredictable live demos. From a developer's perspective, I will highlight simple, but usually overlooked, features within PowerPoint, and some conventions you can apply to your next presentation. I will also demonstrate how PowerPoint can be used for Story Boards and as an alternative to Camtasia for recorded demos, as well as a replacement for a live demo. It is time for you to revisit the powerful and easy to use capabilities of PowerPoint.

Resources:

Death Defying Feats of Debuggery (John Need) 1:45pm-2:15pm

Level 300 (Pretty Darned Experienced)

Building the biggest, baddest web-app ever? Shave time and pain off the JavaScript debugging processing with these advanced debugging techniques and tools.

Topics will include:

  • Source-map magic,
  • Bending breakpoints to your will,
  • Amazing add-ons for your favorite framework,
  • Tracking and mercilessly killing memory leaks,
  • Other awesome stuff
  • and cake.

Resources:

Flight Checks: Quality Assurance for Releases that Prevent Disasters from Escaping into the Wild (Brie Hoblin) 2:30pm-3:30pm

Level 200 (Still a Little Green Behind the Gills)

Examining decision making around when to release, rollback or delay in the context of client demands and rushed development.

Resources:

Simple Documentation Publishing with Jekyll and GitHub (Terrence Dorsey) 4:00pm-4:30pm

Level 200 (Still a Little Green Behind the Gills)

Documenting software projects doesn't have to be difficult. Even the writing work can be simplified with boilerplate text and simple scripts. You can take care of the publishing part easily, running your own CMS or Web server, simply by taking advantage of Jekyll static web framework, Git, and GitHub Pages. I'll walk you through the entire process.

No Really, This is Mission Critical Software!: Creating Simulation Software in the Age of Madden and Nintendo (Kip Steele) 4:45pm-5:45pm

Level 100 (Absolute Beginner)

A review of simulation software in hospital and capturing real user experience as well as gamification.

Room 4

.NET All the Things! (Bill Wagner) 9:00am-10:00am

Level 200 (Still a Little Green Behind the Gills)

The .NET Stack now runs on Linux and Mac OS as well as Windows desktop. It runs on iOS, Android and Windows tablets and phones. In this session, you'll learn the new tools and processes that enable you to support all the platforms the .NET Stack supports.

Moving from Big and Complex to Small and Simple: Docker and Microsoft ASP.NET (Chuck Megivern) 10:15am-10:45am

Level 300 (Pretty Darned Experienced)

Computer applications continue to grow more complex over time. As features get added, applications get refactored into components. How those components are developed becomes again another area to be managed. Approaches to deal with this complexity have been devised over time – many gain traction. Design patterns and The Law of Demeter are historic approaches that still apply.

Recently, an approach of deploying applications in containers has become very popular. "Docker" technology first gained hold in the clustered deployment and cloud computing world, but it delivers advantages even on a developer's desktop.

Docker impacts how an application or service is packaged and deployed, and was first adopted in the open source world.

The technology has delivered such advantages that Microsoft has adapted its ASP.NET and Windows Server strategy, embracing Docker in a big way. Microsoft is also open sourcing ASP.NET Core, and parts of Windows Server.

This presentation gives an overview to this computing trend, with a particularfocus on ASP.NET.

Examples of ASP.NET web applications and APIs, currently running in production environments in Docker containers, are shown.

Resources:

Deploying .NET applications with Octopus Deploy (Floyd Hilton) 11:00am-12:00pm

Level 200 (Still a Little Green Behind the Gills)

One of the most important pieces of a quality software process is the capability to automate application deployment. In this session you will learn the key concepts of Octopus Deploy and how to use it to make your deployments consistent and repeatable.

Using Automated Workflow Tools to Improve Wikipedia (Mitch Miller) 1:00pm-1:30pm

Over 14,000 articles within the English language version of Wikipedia use a page template that identifies them as an "organic compound" or "drug." This represents a useful resource to people around the world and is arguably more useful when it contains curated links to other resources. This talk describes how it's possible to automate the extraction of a report that is used to curate this data. We'll also show how the same workflow tools can be used to clean up additional data sets and prepare them for loading into a curate database.

Resources:

EF Core in an ASP.NET Core API (Julie Lerman) 1:45pm-2:15pm

Level 200 (Still a Little Green Behind the Gills)

It's a new age for .NET developers. You can build cross platform apps, you can use lighter tools like VS Code, and you can deploy instantly using tools like DockerASPNET Core and EF Core. They are so cross-platform that not only can you deploy your apps to OS X and Linux (oh, and Windows, too) but you can even build them on any of the platforms.

Pick a platform. I'll choose OS X because MacBookGrab an x-platform, open source IDE that does C#: I'll take Visual Studio Code, written in Electron, cuz I already use that for Node.

Need a data store: Hey, how about PostreSQL, because I never got to use that before.

Build a Web API that can persist to PostgreSQL. I'll use ASP.NET Core and EF Core because I have a lot of experience in those already.

Code, debug, git commit. (And show off some of the awesome new features in EF Core.) Deploy to a Linux server (thank you Docker).

Invite the world to use your API.

Anatomy of an Azure IoT Solution (Jim O'Neil) 2:30pm-3:30pm

Level 300 (Pretty Darned Experienced)

Weka Health System's Vaccine Smart Refrigerator is an IoT device designed for health clinics to control the dispensing and storage of vaccines. We'll look under the hood of this real-life Azure IoT solution and discuss the various components and challenges of building such a solution. We'll look at the Azure services in the pipeline, the hardware involved, and how you can leverage Microsoft's IoT Suite to get started.

A First Look at C# 7 (Bill Wagner) 4:00pm-4:30pm

Level 300 (Pretty Darned Experienced)

C# continues to evolve to support modern development tasks. In this talk, we'll examine the features scheduled for C# 7 and look at how the language design process has changed since C# was first open sourced.

History of a Functional Language: From Euclid to Type Providers (Rachel Reese) 4:45pm-5:45pm

Have you ever wondered where your favorite feature came from? Was it influenced by a feature in another language? How are the different programming languages even related? I spent a couple months researching the history of some programming languages, and wanted to share that with you. In this talk, I cover the history of the ML family from approximately the dawn of time, eventually focusing on F# specifically.

Room 5

First Steps to Coding: A Second Grader Shows You How (Oliver Smith) 9:00am-10:00am

Level 100 (Absolute Beginner)

Oliver Smith started learning to program when he was six. He's now seven. In this workshop for beginning programmers, Oliver (with some help from his dad) will show you some of the most important parts of coding while writing a fun program. You can follow along on your own computer in a browser. No need to install anything.

Resources:

Probabilistic Programming: An Introduction (Eric Smith) 11:00am-12:00pm

Level 300 (Pretty Darned Experienced)

The 21st century has highlighted the role of uncertainty in computing, with "big data", machine learning, and statistical artificial intelligence. Probabilistic programming systems aim to bridge the gap between the lessons from deterministic programming languages and the increasing importance of uncertainty in computation. In this talk, we'll cover the basics of probabilistic reasoning, introduce probabilistic programming, and survey this new field of programming.

Resources:

How is a Community Like a Cupcake? (Betsy Weber) 1:00pm-1:30pm

Level 100 (Absolute Beginner)

What makes a community feel like a community? Is it the people? Is it the subject matter? Is it the tech? What is the icing on the (cup)cake? With the right ingredients, a Community Manager can bake up an engaged and successful community over time. What are the 10 ingredients that go into hosting a successful community?

Buy Your Community Organizer A Beer (Maureen McElaney) 1:45pm-2:15pm

Level 100 (Absolute Beginner)

As a community organizer, I help people connect to technology and to each other. I help people learn to program who might not otherwise realize that they, too, can learn to write beautiful code. I founded the Burlington, Vermont chapter of Girl Develop It and have organized multiple conferences, most recently UX Burlington 2015 and Offline Camp 2016. Having recently started working at IBM as a Developer Advocate, I am now in a position where my job description includes helping to support a vibrant tech community. Because of my background, I am uniquely qualified to help support community organizers in a way that makes their lives easier and helps them reach their goals. I know all too well how hard this work is, how draining, and how uniquely rewarding it is. And I want to share with you some tips on how to work with organizers in your community in a way where you both benefit, and in turn your local tech ecosystems benefit as well. The first step… buy your local community organizer a beer with no strings attached. They've earned it.

Resources:

Create with Code: Let's Get Physical (Lucie deLaBruere) 2:30pm-3:30pm

Level 100 (Absolute Beginner)

Controlling physical objects with code is a pedagogically sound method to learning the skills necessary to break into coding. In this session we'll take a brief look at the Seymour Paperts research to understand why and then break into some fun ways to code physical objects to blink, move, race, dance, sense, and more. Make coding a family affair with smart objects and fun robots. Create confidence with code using Raspberry Pi and Arduino to control eTextile or crafty projects. This is a beginner session for those looking to break into coding or helping others learn to code.