Boston Code Camp 25 - Sessions

held in April 2016

There were 37 sessions at BCC25.

Microsoft Azure (and AWS) have emerged as the dominant public cloud platforms for developers and IT Pros. But where are the tools to help stay safe and secure? In this Azure-focused talk, we'll cover 17 of them. We'll warm up with a couple of high level topics like compliance and multi-factor authentication, move to security features of more popular services (like Storage, SQL, Web Apps, and VMs) including some that many long-time users don't know about, then shift gears to talk about security-focused services that have come out recently or are in preview. Topics we'll touch on will span administration, secret management, encryption, firewalls, networks, PowerShell, and more. Along the way we'll mention commonly used Azure features to avoid (showing... More

Ever think about being an independent consultant or freelancer? In this talk I’ll provide you with some real information that can help you decide if it is for you. I’ll also provide some tips on things you’ll need to get started. The majority of the information in this presentation is based on what I’ve learned in the past 6+ years as a freelancer/independent consultant. More

Writing safe concurrent programs has become a principle concern in recent years, as multicore CPUs have become more widespread. Functional languages help developers support concurrency by encouraging immutable data structures that can be passed between threads without having to worry about a shared state. This session will cover the actor based concurrency model as base tool to write correct concurrent, reactive, fault-tolerant, scalable applications leveraging the core characteristics of immutability, isolation and asynchronous processing. F# agents by themselves allow you to define an asynchronous encapsulated sub-process that you can design to reply asynchronously to certain types of messages We'll briefly cover core functional... More

In this session Prathap Kudupu will introduce you to Aurelia, a next generation open source JavaScript framework for building apps on every platform. With its focus on clean JavaScript code, modern architecture, data binding, extensible HTML and testability, you'll wonder how you ever got along without it. More

Automation is defined as the controlled operation of an apparatus, process, or system by mechanical or electronic devices that take the place of human labor. Automation is desirable because when we attempt to manually implement complex processes, we make mistakes, and these mistakes have a ripple effect that, many times, takes a vigorous root cause analysis to correct. Automation can seem like an expense when you are at the start of a project but investing in automation will pay dividends as systems grow and become more sophisticated. Common tasks become repeatable and measurable, and the code that implements these tasks is placed under source code control and is maintained in sync with the software and systems that are being automated. Automation... More

In the world of Object Oriented Agile development, the emphasis on working software may seem to drive us to build "maintenance challenged" code. SOLID provides a model for building software that is easier to change, easier to understand and more stable. We will discuss the details and history of SOLID design principles, and how the application of these principles leads to more maintainable code. More

Microsoft recently purchased Xamarin, a company focused on building tools to help developers build native mobile app one time for iOS, Android, and Windows Phone. With over 15,000 companies relying on Xamarin to date, it’s quickly becoming a “must-know” for mobile app developers today. Join Microsoft Technical Evangelist Gavin Bauman as he talks about the features of Xamarin, demos the development process, and connects an app with Microsoft’s cloud platform, Azure. More

Today’s industry demands applications that can handle thousands of users and analyze terabytes of data expeditiously. To achieve this, software is moving from an object-oriented paradigm to a functional paradigm. By utilizing concurrency and parallelism to leverage multiple cores, programmers can achieve radical improvements in their applications. Fortunately, both paradigms can and should coexist. During this talk we will discuss several different concurrency programming models, analyze the pros and cons of each, and suggest their best use. You will learn how to exploit the parallelism in your computer’s GPU and leverage clusters of machines with MapReduce and Stream Processing. Moreover, you will learn how functional programming addresses issues... More

Clean Code – This time with a computer, a projector, and Visual Studio Clean Code presents the work of “Uncle” Bob Martin and discusses his book of the same name. How often have you left a project you were coding and come back to it a week or two later? Did you just pick it up and continue or did you have to reacquaint yourself with your own work? Did you think “why did I do that?”. Clean code will minimize this problem. You are not unique. When we develop without Clean Code in many ways we incur technical debt. Any time you spend figuring out what you did is time spent paying down your technical debt. Clean Code produces software that is easy to create, understand, and maintain. Your code isn’t complete when the program runs! You... More

Are you interested in machine learning, or curious about how to begin conquering Kaggle challenge? Microsoft has just released the R Tools for Visual Studio to make your work efficient and fun. In this talk, I will introduce the R Tools for Visual Studio, and show you how to use it to conquer Kaggle’s machine learning challenge. More

Remember when testing websites were easy. Load them up in the 1-2 most popular browsers and call it a day. Now with mobile phones, tablets, multiple operating systems, screen sizes, cars, tv's even refrigerators along with pc's in all different sizes, how can you test? With help from VorlonJS, a simple JavaScript script installed on your server, you can remote debug and inspect multiple clients. We will look at getting setup with VorlonJS for local development and then learn how we can deploy VorlonJS to debug in Staging and even Production! More

Containers are everywhere today. In this talk we will take a look at the various options for using and deploying containers and the differences between them. We will see containers in action, cover what your options are and why you might choose one technology over the other.   More

Whether you’re actively looking, passively listening, or settled in where you are, we all need to keep our skills current and be prepared to land that next opportunity. Rick and Gary, two veterans of job searching, will share their tips and tricks on networking, recruiters, resumes, job descriptions, phone screens and interviews, negotiating your worth, tracking your leads, staying motivated, and more! Join in on the discussion, and share your stories. More

Love it or Loathe it, testing is an unavoidable aspect of developing high-quality software. But there's a world of difference between well-tested code and simply writing tests. Very often, the difference boils down to how you assess the "correctness" of your code. By focusing on software as a mapping from inputs to outputs, property-based testing offers a powerful methodology for testing the logical invariants a piece of code should always uphold, regardless of implementation details. This session presents a review FsCheck, a powerful library for doing property-based testing and sophisticated data generation in the CLR ecosystem. In addition to the basic features of the library, attendees will learn about identifying common invariant patterns and... More

You've probably heard a lot about how easy it is to store data in a noSQL, document-oriented database. JSON provides a flexible means for storing unstructured data in databases. What you might not have heard though, is that getting data out of those databases can feel quite foreign, even to experienced developers. This talk will cover querying, and aggregation in two leading noSQL document provides, Couchbase, and MongoDB. Some understanding of JSON will be helpful, but experience with noSQL databases is not required. More

You know that technical debt is bad, but sometimes it's unavoidable. How do you convince your non-technical boss to let you spend time removing that debt? How do you explain the need to hold off on new features and focus on cleaning code that already works? Project managers and bosses don't want to pay for the same work twice, and they certainly don't want to delay the implementation of the functionality that their customers demand. This presentation will provide tips and techniques that you can use to ensure that you are given the time you need to remove technical debt and build software that you are proud to develop. More

Where did I leave my keys? This session will cover how your application can use a search engine to improve finding and surfacing relevant content. This session will compare and contrast several of the most popular tools/services: Azure Search, Elastic Search, Solr and Lucene. Slides: http://1drv.ms/1X7NuKH More

Unity is a popular free 2D/3D game development engine with a huge community following and a ton of support. Join Gavin Bauman, Microsoft Technical Evangelist, as he details the basics of building with the engine. Expect to walk away with a solid foundation of the Unity editor, resources for where to find game assets, knowledge of free Microsoft tools to support building your games, and finally, a functional game built by you! More

In this fast-paced, take-no-prisoners session, we will build and deploy an IoT dashboard with simulated cooling devices distributed throughout the world. The architecture will demonstrate (1) device registration and management, (2) aggregation and display of real-time telemetry data from the cooling devices and (3) alert monitoring for misbehaving devices. Technologies to be explored include: • IoT Hub • Stream Analytics • Event Hub • SignalR Please arrive early and keep your seat belts fastened! More

Azure Stream Analytics (ASA) is a fully managed, cost effective real-time event processing engine that helps to unlock deep insights from data. Stream Analytics makes it easy to set up real-time analytic computations on data streaming from devices, sensors, web sites, social media, applications, infrastructure systems, and more. This is an introductory session to ASA. you will learn how to create stream processing logic to gather data from Internet of Things (IoT) devices. We will use a real-world, Internet of Things (IoT) use-case to demonstrate how to build your solution quickly and economically. We are going to learn how to: -Setup and Configure ASA in Azure Portal. -Create Azure Event Hub to stream the data. -Create ASA Jobs to process IoT... More

In this session we will be learning about the react JavaScript framework and how it can help you create reusable user interfaces with ease. In addition, we will be bringing the application to life by using the Flux architecture pattern that we will implement using the Alt.js library. With these two frameworks together you can create fast web pages with common UI components throughout your application. More

Orchestration, automation, and monitoring are just some of the challenges when moving to container technology. Service Fabric is a distributed services platform that solves these challenges and more. It is a battle tested system that is used inside Microsoft for its mission critical applications such as Azure SQL, Document DB, and Bing Cortana - processing more than 500 million evaluations per second. In this session we will explore Service Fabric and see how it helps to solve the challenges of distributed computing. More

This session will feature the latest approaches and tools in developing for web security. These include OWASP ASVS 3.0, OWASP Proactive Controls 2.0 (how to fix the OWASP Top 10), applying the right security headers, and much more. Whether you write ASP.NET applications, Javascript SPA applications, or anything in between, you will want to attend to get an overview of what's current in web security development. More

Four talks moderated by Ron Krawitz 1) The Importance of Usability - Sara Morley Inspired by the work from Steve Krug’s book Don’t Make Me Think, Sara Morley will be presenting on the idea of usability. Usability is a crucial part of creating a website/application but usually it is the last thing people think of. The talk will discuss some of the crucial aspects of what usability is It will also remind everyone that when creating a website/application “you are not your user.” 2) Security in the age of wireless automotive - Keith Fitts As cars become more technologically advanced and our desire for safer and more informative vehicles increases, we are also faced with more security threats. Some of these threats remain at the informational level,... More

This will be a hands-on introduction to the Music Blocks software (See http://walterbender.github.io/musicblocks), a Free/Libre Software programming environment designed to introduce children to the powerful ideas found in music (and programming). Attendees will be expected to bring (or share) a laptop running either Chrome, Firefox, or Safari in order to participate in the session. No prior knowledge of music or programming required. More

Hey, did you know that you can use Visual Studio for you Python development? Why learn another development tool, when you can leverage the rich feature set of Visual Studio. This session will examine the ins and outs of Python development using Visual Studio 2015. More

In this talk I will show how to remove lots and lots of unnecessary code from your application. Counter variables, wrapper functions, callbacks - they can all be removed using utility libraries or even built-in JavaScript ES5 language features. In particular I will show how to remove * callbacks and pyramids of doom * extra functions just to massage the arguments * wrapper functions * manual iterations * special emphasis on removing boilerplate code from the unit tests In each instance there will be a lot less code, but it will be more robust, manageable and simpler to reason about and test. More

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. More

A simple technique to disable the script injection attacks on your web pages is to disable the inline JavaScript. This means that most popular ways to inject variables and code fragments into your pages will have to change. I will show the JavaScript to JavaScript rendering engine for Express that allows you to set very strict and safe Content-Security-Policy on your website. Not only my approach is much safer, but it will be very testable as well. As a bonus I will show how to avoid sensitive information leaking to GitHub and NPM. More

When Visual Studio 2015 was released last year, it was announced that support for a Code Quality monitoring tool called SonarQube was now available. SonarQube is an Open Source tool used initially in the java world to monitor and track "technical debt" within a code base ("the elephant"). Many of us in the .Net world are new to this tool (including me), but it can be invaluable in helping development teams come to grips with the technical debt present in a code base (especially in legacy systems) and begin to address it. In this session, I will present what I've learned about SonarQube, walk through setting it up to work with Visual Studio and the TFS Build process, and show examples of what it can measure. More

Machine Learning no longer requires years of experience to implement. Come to this session to learn how you can use Project Oxford to stand on the shoulders of giants to create powerful and unique insights for your users. You will see how easy it is to add machine learning capabilities such as vision, speech, facial recognition and language understanding into your web application. More

Test Driven Development (TDD) mean freedom. The ability to bake quality into your application as you develop it can change the way you think about software frees you from the fear of creating applications that are brittle and don't respond well to change. It effects the way we approach, design and write applications. Test Driven Development is powerful. Yet many developers allow themselves to be intimidated by what they perceive as added complexity. Managers worry that the practice of "test first" will delay development. This presentation will explain the concepts behind TDD, outline the benefits, give you some concrete examples of how to do TDD using the C# language and some advice on how to sell it to your managers. More

This will be an open discussion around announcements, sentiment and observations from those who attended Microsoft's Build conference earlier this week. Come whether you were able to attend in person or virtually to find out what was buzz worthy and what fell flat. More

TypeScript is becoming a popular language for developing complex solutions that target JavaScript. In this brief introduction you'll learn how to add strong types, classes and interfaces to what you already know about JavaScript, and how to compile and deploy your solutions. You'll also get a look at TypeScript declaration files, which let you access existing JavaScript libraries such as jQuery and Angular. Join in to learn how to make your solutions more robust with TypeScript. More

This intermediate level session will build on the earlier introduction to TypeScript by showing examples of TypeScript in action with AngularJS 1.x. Bob German will begin by showing how to build light-weight widgets with Angular and TypeScript that can be deployed almost anywhere. Then Bob Goodearl will show a more advanced example of TypeScript Single Page Applications with Angular and ASP.NET MVC. In order to take advantage of this session, it will be helpful to have a basic understanding of AngularJS and ASP.Net MVC. More

Interested in mastering automation? I'll be presenting SeleniumBase, a Python/Selenium-based testing framework that makes web automation much easier. SeleniumBase is used by major companies such as HubSpot, Jana, and Veracode. This presentation is based on a talk that I gave at The Boston Python Meetup that took place at the Microsoft NERD Center in February, 2016. http://www.meetup.com/bostonpython/events/226992443/ Slides from that talk are located here: https://github.com/mdmintz/presentations/blob/master/Automation_Presentation.pdf More

Azure websites offer the ability to run programs or scripts in the background (on the same resources you already pay for with the website). Last Code Camp, I presented WebSites and WebJobs – this time I want to get to the detail of WebJobs to help you understand what problems it can solve for you. I’ll be covering the following: - How to create webjobs - Detail on the file system/directory structure that can be useful - Special files and their meanings - Overview of Kudu and its role in webjobs - Introduction and examples of using the WebJobs SDK bindings and triggers - Introduction to WebJob extensions (and if time – example of writing a custom extension) More