Saturday Sept 17 8:30am - 5:30pm Kalkin Hall, UVM Campus, Burlington, VT

Sessions

Read more about the sessions of Vermont Code Camp 2014.

Practices (Room 1)

Behavior-Driven Development: One Team's Exploration (David Coutu) 9:00am-10:00am

Level 200 (Still a Little Green Behind the Gills)

In this session we will look into a team's experience with adopting Behavior-Driven Development (BDD) and look to answer these questions:

  • Why did we try it?
  • What tools and processes did we adopt?
  • How did it go?

Resources:

Better Code, Better Debugging (Kathleen Dollard) 10:15am-11:15am

Level 300 (Pretty Darned Experienced)

Visual Studio and .NET keep offering better debugging support, but debugging is still a game of strategy. Come to this talk to merge strategy with the debugging tools in your environment. You'll see debugging features in current versions of Visual Studio and upcoming in Visual Studio "14" along with operating system features like ETW (Event Tracing for Windows). Good debugging strategies increase the effectiveness of the questions you're asking, and tools offer an array of tactics to efficiently answer each question and move on to the next. Regression testing is the backstop to do this fearlessly. You'll learn how to formulate ideas into testable strategies, use an array of Visual Studio tools when the bug is reproducible, and build and wade through piles of information when the issue only occurs in production.

Clean Code: Write Clean Think Clean (Hetal Dave) 11:30am-12:00pm

Level 200 (Still a Little Green Behind the Gills)

This is a session for developers of all levels and platforms. Dive into the how's and why's for developing clean code and learn to "think clean" when writing code. We will also share tips and tricks about industry tools available to help.

Resources:

It Takes a Village (to Teach Kids to Code) (Mark Olofson) 12:00pm-1:00pm

Coding is a vital skill for 21st century students, and you can help them learn by opening your doors to their schools. Community partnerships provide real world, hands-on help with skill learning, besides keeping student engagement and enthusiasm. Be part of the revolution – get involved!

Resources:

QA Basics for Devs, Project Managers & Presidents (Brie Hoblin) 1:00pm-2:00pm

Level 200 (Still a Little Green Behind the Gills)

We will cover QA basics; defining QA, when & why it is needed as part of the SDLC, a few quick QA exercises for the audience (QA a coffee mug), some basic QA vocabulary, automated vs manual testing why and when to use them, the benefits of using QA, and does it really cut costs?

Resources:

Tales from the Scrum Bowl: Servant-Leadership in the Dual Role of Scrum Master and Developer (Rob Friesel) 2:15pm-3:15pm

Level 100 (Absolute Beginner)

What's it like to be a developer on a team and to serve as its Scrum Master? In this talk, we'll discuss life on an agile scrum team and what it means to wear both of these hats. Does being a Scrum Master take away from the development role? Which role takes priority? Do the roles compliment each other? And what can we learn from each experience?

Resources:

Architecting Your Solution: The Hidden Requirements (Amy Coutu) 3:45pm-4:15pm

Level 200 (Still a Little Green Behind the Gills)

Every project starts with someone saying, "I need THIS done." They're commonly able to functionally define what "THIS" means, but often aren't aware of the VAST majority of necessary non-functional requirements.

Their short list of requirements may encompass less than 50% of the overall scope of a project. The rest will be up to you to identify and address.

In this session we'll cover the often overlooked project requirements that your business stakeholders need YOU to know without being told, in order to create a well architected solution.

Deploying Your Applications with Docker (Brian Lloyd-Newberry) 4:30pm-5:30pm

Level 200 (Still a Little Green Behind the Gills)

Docker is all the rage these days, and it is hard to keep up with all the buzz. This session will start with an overview of using Docker containers as a tool for deploying software applications. We'll also cover some of the tooling that supports clustering and PaaS deployment of Docker applications including Kubernetes, Mesos, and maybe a bit of CoreOS.

Data, Process & Other (Room 2)

jOOQ: Java Object Oriented Querying (Breandan Considine) 9:00am-10:00am

Level 200 (Still a Little Green Behind the Gills)

jOOQ is a lightweight database abstraction layer that allows you to write native SQL using the type safety and expressiveness of Java 8. Why struggle with ORMs or query sanitization when you can use your relational database like it was meant to be used? We will demonstrate how to implement jOOQ for business applications in a few easy steps.

Programming in the 2020s (Eric Smith) 10:15am-11:15am

Level 200 (Still a Little Green Behind the Gills)

The Web and CGI gave a boost to 1990s scripting languages. Their low barrier to entry and resulting widespread use fueled a renaissance in application development. But they have also filled the world with imperative code and shared, mutable state, despite lacking the low-level rationale of C. As the use of the Web as an application platform increases, these languages are ill-suited to increased demands for reliability, performance, and distribution. Over the next five years, these languages will be supplanted by faster compiled languages with advanced type systems. In this session, we will take a peek at what intro to programming will look like in the following decade. We'll go over lambda calculus, category theory, dependent types, recursion, cartesian products, disjoint unions, monads, and many other elementary ideas from programming in the 2020s.

Managing Builds with Gradle (Richa Khandelwal) 11:30am-12:00pm

Level 200 (Still a Little Green Behind the Gills)

Gradle is a build automation tool that can automate compiling, testing, packing and deployment of your projects. It combines the flexibility of Ant and Dependency Management of Maven and provides a sweet spot for developers to write effective builds. Gradle supports multiple languages and platforms like C, C++, Scala, Groovy, Android etc. In this introductory level talk, we will discuss why people are talking about Gradle and some of the features that it provides. We will also look into some of the commonly used Gradle tasks. Lastly, we will compare maven and Gradle builds through a sample project.

Modernizing Your Data Warehouse for Hadoop (Christian Coté) 1:00pm-2:00pm

Level 300 (Pretty Darned Experienced)

What is the architecture of a data warehouse in 2014? How can we integrate new trends and technologies? This session talks on how a data warehouse can benefit of newest SQL Server 2014 features and Azure HDInsight Big Data technologies.

D3.js: A Paradigm Shift in Client-side Visualization of Data (Mark Sawczuk) 2:15pm-3:15pm

Level 200 (Still a Little Green Behind the Gills)

Visualization is the key to extracting information from data, but traditionally we've looked at charts and graphs one dimensionally, and decoupled from one another.

This talk is about the D3.js (Data Driven Documents) framework, a client-side visualization framework, and why its paradigm for visualization of data is an enabling technology for ways to explore data visually, and addresses a lot of the limitations associated with other charting libraries.

This talk address the paradigm behind D3, some sample use cases, and a tutorial to help get over some fundamental concepts needed to start using D3.

Awesome Workflows with Grunt, Bower and Yeoman (John Need) 3:45pm-4:15pm

Level 200 (Still a Little Green Behind the Gills)

How to use Grunt, Bower and Yeoman to get your front-end web development projects started fast, automate repetitious and tedious tasks, and maintain those annoying JavaScript dependencies.

Resources:

This Linux Life (Dave Burke) 4:30pm-5:30pm

Level 100 (Absolute Beginner)

In this session we'll look at Linux as an alternative to the Mac OS and Microsoft Windows. We'll compare Linux Development Tools to their proprietary counterparts like Visual Studio and SQL Server Manager and will look at Linux Open Source alternatives to everyday applications like Quicken, Photoshop and Microsoft Office. We'll spend a little time covering the Linux Ecosystem and most popular Linux distributions. Finally, you will learn how to experience Linux on your PC or laptop without making any changes to your current working environment.

Resources:

MS & Other (Room 3)

You've Used Git. You've Used TFS. Why Aren't You Using Them Together? (Cori Drew) 9:00am-10:00am

Level 200 (Still a Little Green Behind the Gills)

When you start a new job & they're using TFS, do you wish they were using Git INSTEAD? Why don't YOU use them TOGETHER? The git-tfs bridge enables the best of both worlds: TFS for devs who (like I used to say) "have no interest in learning a command-line tool," while enabling those of us who have seen Git solve version control challenges previously assumed unsolvable, to use our new Git love. This is a level 200 talk (meaning if you've never used Git, this talk is not for you... yet. Go to a "what is Git?" talk first. We will not cover the time-consuming "what is a dvcs?" topics and such). If you've used both TFS & Git, but only separately, or want to know even MORE about using both together, this talk is for you.

Techniques for Cross Platform .NET Development (Jeremy Hutchinson) 10:15am-11:15am

Level 300 (Pretty Darned Experienced)

There are many ways to share code between .NET, Windows Phone, and Window Store applications. Reduce duplicate code and copy/paste code sharing with Portable Class Libraries, linking code files and Universal Apps. Learn how to include platform specific code through partial classes and dependency injection to maximize code reuse.

Build A More Vibrant Tech Community (Maureen McElaney) 11:30am-12:00pm

Level 100 (Absolute Beginner)

Learning to code is quickly becoming a necessary skill, but our community needs help to ensure that resources are reaching the people who need these skills most. The explosive growth of Girl Develop It in Burlington has proven that merely by inviting an underrepresented sub sector, you'll find that if you build it, they will come. But GDI is not enough, more resources must become available to bring in wider diversity, reach out to the more rural areas of Vermont, and also to teach children. This is an imperative investment to ensure a vibrant tech future for Vermont. This talk will review how you can contribute and what can be done to build and maintain a wider and more inclusive tech community. It's easier than you think!

Building C# Xamarin Forms Apps (Russell Fustino) 1:00pm-2:00pm

Level 100 (Absolute Beginner)

Use Visual Studio and C# to build native apps for iOS, Android and Windows Phone using the same User Interface code with Xamarin Forms. You just might say, "Pinch me, I must be dreaming of Nirvana!" It's true, come to this session and learn how to get started with Xamarin Forms! We will build an app from scratch showing off all of the controls, pages and layouts as well as some setup information.

Demos will focus using Visual Studio, as well as C#. Also covered will be conditional compilation and the Device.OnPatform method. And we well as a look at Xamarin XAML and all of the controls. After seeing this session, you will know how to write Android, iOS and Windows Phone apps at the same time.

PowerShell the Super Beast! (Matthias Bannach) 2:15pm-3:15pm

Level 200 (Still a Little Green Behind the Gills)

PowerShell the Microsoft version of a functional command line has many features the Apples and Linuxes of this world dream of.

The talk focuses on the basics of PowerShell to get the audience beyond the very basics.

Using PowerShell to automate tasks, gather data, talk to databases and other systems. Massage data and do things with it.

Geek Meets Science: ChemIDplus, an Example of Scientific Thinking (Mitch Miller) 3:45pm-4:15pm

Level 200 (Still a Little Green Behind the Gills)

The ChemIDplus system is one of the longest-lived chemical structure search systems on the web, having started operations in 1998. The database contains over 400,000 records of which about 313,000 have chemical structures. The focus of ChemIDplus is a curated directory of links to health and safety data across governmental, regulatory and literature databases.

What does it take to create a database of chemical structures and make it searchable on the web? A specialized component at the database (often a chemically-aware 'cartridge'), plus a graphical component to render structure for searching and upon retrieval.

We'll examine ChemIDplus as an example of geek-meets-science and an interesting database that's publicly available.

Build X Platform Apps That Work When All Else Fails (Tony Surma) 4:30pm-5:30pm

Level 200 (Still a Little Green Behind the Gills)

Anyone with a phone knows that despite widespread coverage cellular connections are spotty and often slower and weaker than what we hope.

Are your apps one of the few that responsibly handles connectivity issues and manages delays and stale data for the user? Based upon experiences designing and deploying applications in areas hit by natural disasters, we will discuss best practices and strategies for coding these responsible applications across mobile platforms that minimize data transferred, connection delays, store and forward uploads and requests, and use fallback technologies, like SMS, that are more likely to work in limited connectivity scenarios. To help you build consistent user experiences across device platforms we will focus on implementations with C# and .NET, leveraging open source frameworks and Mono/Xamarin that work across Windows Phone, Windows 8 and iOS & Android apps.

Web (Room 4)

Modern Web Diagnostics with a Glimpse into ASP.NET (Anthony van der Hoorn) 9:00am-10:00am

Level 100 (Absolute Beginner)

With the state of diagnostics on the web being what it is, we currently have to do a job that is much harder than it should be. Too often, the tools we are provided with only show a small part of the picture, leaving us to guess what else might be happening behind the scenes. Glimpse is an open source project that aims to change the way we think about diagnostics and the frameworks we interact with.

After releasing Glimpse at Mix 11, Glimpse has become a tool that is used daily by tens of thousands of developers around the world. In this session, you'll learn how to use Glimpse to reveal a complete picture of what is happening within your ASP.NET MVC and WebForms sites, discover what tools are included out of the box, and see how you can easily extend it to suit your needs.

Azure Web Sites Secrets, Exposed! (Nik Molnar) 10:15am-11:15am

Level 200 (Still a Little Green Behind the Gills)

Microsoft's premier cloud solution for custom web applications, Windows Azure Web Sites, has brought the DevOps movement to millions of developers and revolutionized the way that servers are provisioned and applications deployed.

Included with all the headline functionality are many smaller, less-known or undocumented features that serve to greatly improve developer productivity. Join Microsoft MVP and veteran web developer Nik Molnar for a whirlwind tour of these secret features and enhance your cloud development experience.

Using Grunt.js to Automate your WordPress Workflow (Josh Lee) 11:30am-12:00pm

Level 200 (Still a Little Green Behind the Gills)

npm and Grunt.js put powerful automation tools at developer's fingertips.

This talk will provide a brief 20-minute introduction on using grunt.js to optimize your WordPress development workflow, including:

  • Compiling of LESS, SASS, or CSS files
  • Linting of JS files
  • Combination, minification, uglification, and compression of assets.
  • Browser live reload

This talk assumes some familiarity with the command line and CSS preprocessors such as LESS or SASS.

This talk will focus on using Grunt.js for WordPress installations however the information could easily be applied to other platforms.

Resources:

Building a Web Controlled Telepresence Rover (John Cicilio) 12:00pm-1:00pm

Level 200 (Still a Little Green Behind the Gills)

Utilizing the RaspberryPi, power electronics, Python, and a tablet - we will walk through the construction (software, mechanical, electrical) of a web controlled telepresence rover.

This is a fun explanation and "how to" for integrating computation, electronics and web based control that anyone can build with off the shelf parts.

Resources:

Angular JS in Practice (Jon Hoguet) 1:00pm-2:00pm

Level 300 (Pretty Darned Experienced)

An advanced talk on how the Inventory team is using Angular at Dealer.com. Already been through the tutorials, ready for a deeper dive into how Angular is used in practice? Then this is the talk for you. Learn from our mistakes and wins, our gotchas and best practices.

Resources:

Take Control of Your Interface: Crafting API Responses for Your Clients (Darrel Miller) 2:15pm-3:15pm

Level 300 (Pretty Darned Experienced)

Web frameworks help you build an API quickly but most have little support for dealing with an API that needs to evolve, forcing you to prematurely version your API.

Take back control of the content you send over the wire. API responses are the "user interface" of your API and should be crafted with same attention to detail that cause designers to fret over color choices, shadows and highlights.

In this talk I'll show you what I have learned about API response design in the last 8 years of building Web APIs. I'll cover issues like structuring for evolution, sizing for optimum caching, the different ways to include metadata, media type selection and many other issues that surface when trying to design an API for the long haul.

Resources:

Pulling Your Website Up By Your Twitter Bootstraps (Kyle Mitofsky) 3:45pm-4:15pm

Level 100 (Absolute Beginner)

This session will cover an Introduction to using Twitter Bootstrap in ASP.NET.

Twitter bootstrap is a great, open-source front-end framework for designing and developing sleek web applications. It's been out for a while, but if you haven't had a chance to take it for a spin, this session will be a great launching pad. We'll cover some of the basic principles of responsive design, and discuss how Bootstrap (or any front end framework) can make designing a modern UI much easier.

Kyle is currently 20th on the top twitter-bootstrap answerers on StackOverflow of all time. But don't just take his word for it: data.stackexchange.com/stackoverflow/query/185479/

Resources:

The Internet of Things (Jason Kanaris) 4:30pm-5:30pm

Level 100 (Absolute Beginner)

The Internet of Things (IoT) movement is picking up steam. It's estimated that by 2020, the IoT will be an $8.9 trillion market with over 200 billion connected devices. In this session you'll learn how to leverage your existing .NET skills to build the next big (or tiny) thing!

This session will explore:

  • What is the Internet of Things?
  • An introduction to basic micro electronics.
  • What is the .NET Micro Framework (NETMF)?
  • Exploring the Netduino and Arduino.
  • Running C# on a Raspberry Pi.
  • Connecting your devices to Azure.
  • Using the Windows on Devices SDK with an Intel Galileo.

There will be no time for boring slides here. Instead we'll be covering lots of code and fun interactive demos with the audience. Be sure to attend because you won't want to miss out on the swag and cool prizes given away during the session.

Resources:

Room 5

Resilient Applications with Actors (Peter Vile) 10:15am-11:15am

Level 200 (Still a Little Green Behind the Gills)

As CPU clock speeds have stagnated we have gained many cores, creating the problem of keeping them all busy. While the threading model can achieve this, it can be difficult to write deadlock and race condition free code. Several concurrency models have come to prominence of late such as Software Transactional Memory and Actors. In this talk we will look at the actor programming model, compare its programming model standard request/response frameworks and apply actors in a service tier application. Examples will be in Java and Scala.