Dev Up Conference 2017 – Session Resources

This week I attended the Dev Up Conference in St. Louis.  I thought that the (new) venue, food, and speakers were all excellent, and improved upon past editions of the conference.  Kudos to all involved; they must have put in a lot of hard work.

As usual after attending a conference such as this, I attempt to accumulate links to as many of the session resources as I can find (on twitter, youtube, blogs, and so on), and share them here on my blog.  I do this because I figure that I am not the only one that had to skip great sessions because they were scheduled at the same time as other equally great sessions.

So without further ado, here is the list of all session from this year’s Dev Up Conference, with as many links to additional information as I could find.  Apologies for any that I missed.

Also, a number of the sessions were recorded.  I assume that they will be posted online by the Dev Up organizers, so keep an eye on the conference web site for those.

.CSS {Display: What?}
Martine Dowden

.NET and Couchbase: Using NoSQL Is Easier Than You Think
Don Schenck

.NET, Linux and Microservices Architecture
Don Schenck

1 Billion Records IS NOT BIG DATA PEOPLE!
Steve Howard

5 Popular Choices for NoSQL on a Microsoft Platform
Matthew Groves

A Brisk Stroll Through AzureML Studio
Kevin Queen

A feature based approach to software development
Ryan Lanciaux

A Guide to JavaScript’s Scary Side
Jonathan Mills

A Lap Around Xamarin.Forms
Douglas Starnes

A Skeptics Guide to Functional Style JavaScript
Jonathan Mills

Accessibility Cookbook: 10 Easy Recipes
Martine Dowden

Adding Realtime Features to Your Applications with SignalR
Javier Lozano

Agile Delivery in a Waterfall World
John Gobble

Agile Failures: Stories From The Trenches
Philip Japikse

Agile Metrics That Matter
Clint Edmonson

Agile: You Keep Using That Word…
Philip Japikse

All The New Things: A Madcap Tour of the latest in Microsoft Web Development
Brad Tutterow

An Entrepreneur’s Tale
Randy Walker

An Extended Explanation of Caching
Tom Cudd

An Introduction to Microservices
Mike Green

Angular vs. React: A live demonstration, comparison, and discussion
Kevin Grossnicklaus

Angular, the ASP.NET Pitch
Ed Charbeneau

ASP.NET Core + React Equals Awesome
Lee Brandt

Authentication and Security Strategies for the Modern Web
Spencer Schneidenbach

Azure SQL Data Warehouse, Cloud BI
Randy Walker

Becoming an Architect
Ken Sipe

Beginner Reactive Programming with RxJS
Cory Rylan

Between Two Form Tags
Danielle Cooley

Build a JavaScript Dev Environment in 1 Hour
Cory House

Building a Chat Bot with API.ai
Erin Page

Building A Highly Scalable Service that Survived A Super Bowl
Keith Elder

Building Powerful Applications with Angular and TypeScript
David Giard

Building Reusable UI Components in ASP.NET Core MVC
Scott Addie

Building Your Evil(?) Empire with Azure Functions
Bryan Soltis

Bus Accident Management
James West

Career Management – Better than Career Development
John Maglione

Career Paths Beyond Sr. Developer
Jim Drewes

Cloud Networking: What’s Underneath?
James Nugent

Code Is Communication
Steven Hicks

Compromise Less and Deliver More with Xamarin
David Ortinau

Confronting Your Fears: Entity Framework Performance Deep-dive
Mitchel Sellers

Continuous Delivery at Enterprise Scale
Jason Whittington

Custom Middleware & Microservices with ASP.NET Core
Ondrej Balas

Data Science Platform Architecture
Ryan Metcalf

Database DevOps in Visual Studio 2017 Enterprise with ReadyRoll Core
Ronnie Hicks

Dockerize Your Development
Lee Brandt

Domain Driven Design: The Good Parts
Jimmy Bogard

Effective Data Visualization
David Giard

Electron: Desktop Development for Web Developers
Chris Woodruff

Everything I Didn’t Know About JavaScript
Brad Tutterow

Fear and (Self) Loathing in IT – A Healthy Discussion on Imposter Syndrome
Angela Dugan

Feed Your Inner Data Scientist: JavaScript Tools for Data Visualization and Filtering
Doug Mair

Forget Velocity, Let’s Talk Acceleration
Jessica Kerr

From C# 6 to C# 7, Then and Now!
David Pine

From Developer to Data Scientist
Gaines Kergosien

Getting Started with Machine Learning, for Non-Data Scientists
Yung Chou

Git Demystified
Kent Peek

Giving Clarity to LINQ Queries by Extending Expressions
Ed Charbeneau

Growing a Dev Team from Bootstrap to Enterprise
Scott Connerly

Have Your Best Season Yet: Becoming a (Microsoft) MVP
Lisa Anderson

HoloLens Mixed Reality for Fun & Profit
Gaines Kergosien

How do You Measure up? Collect the Right Metrics for the Right Reasons
Angela Dugan

How Mobile Web Works at Twitch
Matt Follett

I, for One, Welcome Our Robot Overlords: Intro to the Bot Framework
John Alexander

Implementing a Modern Web Stack in a Legacy Environment
James West

Implementing Web Security in Your ASP.NET Applications
Javier Lozano

Intellectual Property Fundamentals for the Technologist
Jeff Strauss

Intro to Hacking with the Raspberry Pi
Sarah Withee

Intro to Xamarin
Ryan Overton

Introduction to Amazon AWS
Brian Korzynski

Introduction to Angular
Muljadi Budiman

Introduction to Asynchronous Code in .NET
Bill Dinger

Introduction to Online Security
Michael Dowden

Introduction to the D3.js visualization library
Bryan Nehl

Introduction To the Microsoft Bot Framework
Becky Bertram

Javascript Asynchronous Roundup (Promises Promises…)
Mark Meadows

JavaScript Futures: ES2017 and the Road Ahead
Jeff Strauss

Jewelbots: How to Get More Girls Coding!
Jennifer Wadella

Kotlin: What’s in it For You
Douglas Starnes

Learning the Language of HTTP for a Better Data Experience in Your Mobile Apps
Chris Woodruff

Let’s Talk About Mental Health
Arthur Doler

Leveraging Microsoft Azure to enable your Internet of Things
Ralph Wheaton

Linux and Windows Containers, Not All Are Created Equal
Yung Chou

Love and Hate, Having Conversations About Going to the Cloud
Bryan Roberts

Make .NET Great Again!
Sam Basu

Managing Millennials
Jim Drewes

Maximize Professional Growth By Doing Scary Things
Steven Hicks

Mechanics and Moxie: Modernizing Quality Assurance
Kylie Schleicher

Microservice-Powered Applications – It worked for Voltron, it can work for you!
Bryan Soltis

Microservices – A Pattern for Success
David Davids

Microsoft Azure Makes Machine Learning Accessible and Affordable
Douglas Starnes

Migrating from desktop to serverless with AWS
Bryan Nehl

Mobile Development For Web Developers
Justin James

Moving into mobile with Angular 2 and Ionic Framework
Mike Hamilton

Moving into mobile with React Native
Mike Hamilton

Naked and Not Afraid: How to Better Serve Your Clients
Rick Petersen

Neural Networks: The Good Bits
Chase Aucoin

Next-level test-driven development
Alison Hawke

Optimizing Application Performance
Jason Turan

Planet scale data with CosmosDB
Bryan Roberts

Planning for Failure
Jesse Phelps

Practical Security Practices: Threat Modeling
Josh Gillespie

Productivity: How to Get Things Done in this Digital Age
Keith Elder

React for the Uninitiated
Mark Meadows

Refactoring Towards Resilience
Jimmy Bogard

ReSharper: Discover the Secrets
Ondrej Balas

Respond To and Troubleshoot Production Incidents Like an SA
Tom Cudd

Reverse Engineering a Bluetooth Lightbulb
Jesse Phelps

Securing ASP.NET Core APIs and Websites with IdentityServer4
Jeffrey St. Germain

Securing your Applications with Azure AD
Mike Green

Self-Assembling, Self-Healing Systems in the AWS cloud
James Nugent

Serilog: Logging All Grown Up
Brian Korzynski

Serverless JavaScript OMG
Burke Holland

Should I be a generalist or a specialist?
Eric Potter

Should I make the Transition to ASP.NET MVC Core? Will it Hurt?
Mitchel Sellers

Software Development to Leadership
Cori Kristoff

SQL Server For The .NET Developer
Clayton Hoyt

SQL Server Power Hour With Dan and Kathi
Dan Guzman

Strategies for learning React
Ryan Lanciaux

Survival Guide to the Robot Apocalypse – Intro to Deep Learning for Developers
Steve Howard

Swift start on iOS development
Muljadi Budiman

Take Each Day and Work on Making it Better
Dean Furness

Taking Azure Application Insights to the Next Level
Ralph Wheaton

Taming the Tentacles of Octopus
Kevin Fitzpatrick

Teaching Kids Programming
Sarah Phelps

The Business Case for UX
Danielle Cooley

The Hardest Part of Being an Architect: A Death Star Story
Rick Petersen

The Lean & Agile Transformation Playbook
Clint Edmonson

The Modern ASP.NET Tech Stack!
Sam Basu

The Power of Secrets
Sarah Withee

The Reusable JavaScript Revolution
Cory House

The Saboteur in Your Retrospectives: How Your Brain Works Against You
Arthur Doler

The Thrill of the Hunt: The Return to Exploratory Testing
Kylie Schleicher

The Two Question Code Quiz: How to Interview Programmers Effectively
Scott Connerly

To Infinity and Beyond: Build Serverless APIs
Bryan Roberts

TypeScript — JavaScript Reimagined
David Pine

Understanding Azure Resource Templates
Paul Hacker

Unit Testing Strategies & Patterns in C#
Bill Dinger

Visual Studio Code Can Do THAT?!?
Burke Holland

What C# Programmers Need to Know About Pattern Matching
Eric Potter

What Is Data Science?
Ryan Metcalf

What Makes a Good Developer? – Increasing Your Value in a Polyglot World
Eric Lynn

What’s New in ASP.NET Core 2.0?
Scott Addie

What’s New in Java 9
Billy Korando

What’s New in VS 2017 and C# 7
Doug Mair

Why Aren’t There More Women Developers?
Jennifer Wadella

Windows IoT Core Development on a Raspberry Pi
Kevin Grossnicklaus

You Got Your Dev in My Ops, You Got Your Ops in My Dev
Paul Hacker

Your JavaScript Needs Types
Spencer Schneidenbach

St. Louis Days of .NET 2014

My notes from the 2014 edition of St. Louis Days of .NET.  I was only able to attend the first day of the conference this year.

Front-End Design Patterns: SOLID CSS + JS for Backend Developers

Presenter: https://twitter.com/anthony_vdh
Session Materials:  http://vimeo.com/97315940

Use namespaced, unambiguous classes.   For example, use “.product_list_item” instead of “.product_list li” , and “.h1” instead of “h1”.

No cascading

Limit overriding

CSS Specificity – Specificity is the means by which a browser decides which property values are the most relevant to an element and get to be applied.
    Each CSS rule is assigned a specificity value
    Plot specificity values on a graph where the x-axis represents the line number in the CSS
    Line should be relatively flat, and only trend toward high specificity towards the end of the CSS
    Specificity graph generator: http://jonassebastianohlsson.com/specificity-graph/
    Another option of what a graph should look like: http://snook.ca/archives/html_and_css/specificity-graphs

Important CSS patterns and concepts
    Namespaces
    Modules
    Prototype
    Revealing Module
    Revealing Prototype

Optimizing Your Website’s Performance (End-To-End Diagnostics)

Presenter: http://mitchelsellers.com/
Session Materials: http://mitchelsellers.com/blogs/2014/11/17/2014-st-louis-days-of-net-presentations.aspx

If your test environment is different that your production environment, look for linear differences in order to estimate the differences between the servers.  For example, if the production server is a quad-core server and the test server is a dual-core server, measure the performance of the test server twice: once with one core active and once with both cores.  The difference between running with one core vs. two cores should allow you to estimate the difference between the dual-core server and the quad-core server.  Obviously, this will not be perfect, but does provide some baseline for estimating the differences between servers.

Different browsers have different limits on how many simultaneous requests can be made to a single domain (varies from 4 to 10).

Simple stuff to look at when optimizing a web site:
    Large images
    Long-running javascript
    Large viewstate

Make sure cache-expiration is set correctly for static content.  This is done in the web.config file.

TOOLS

Google PageSpeed
    Provides mobile and desktop scores
    Used in Google search rankings!
    Not useful for internal sites
    Similar to YSlow
    Blocked by pages requiring a login

Google Analytics (or similar)
    Useful for investigating daily loads (determine why site is slow at certain times)
    Use to investigate traffic patterns

Loader.IO
    Reasonably priced and free options available
    Use to simulate traffic load on your site
    Only tests static html

LoadStorm
    More expensive
    Use to simulate traffic load
    Tests everything; not just static content

New Relic
    Internal server monitoring

Hadoop For The SQL Ninja

Presenter: https://twitter.com/mwinkle

Hive is a SQL-like query language for Hadoop.
    Originated at Facebook
    Compiles to Map/Reduce jobs
    Queries tables/catalogs defined on top of underlying data stores
    Data stores can be text files, Mongo, etc
    Data stores just need to provide rows and columns of data
    Custom data provides can be created to provide rows/columns of data

Hive is good for:
    Large scale queries
    A variety of formats
    UDF extensibility

Hive is NOT good for:
    Interactive querying
    Small tables
    OLTP

Hive connectivity
    ODBC/JDBC – responsive queries
    Oozie – job-based workflows
    Powershell
    Azure Toolkit/API – now includes Visual Studio integration for viewing/executing queries

Angular for .NET Developers

Presenter: https://twitter.com/jamesbender
Session Materials: https://github.com/JamesBender/AngularDemos

AngularJS is a Javascript MVC framework
    Model-View-Controller are all on the client
    Data is exchanged via AJAX calls to REST web services
    Makes use of dependency injection

Benefits of AngularJS
    Unobtrusive Javascript
    Clean HTML
    Limits the need for third party libraries (like jQuery)
    Works well with ASP.NET MVC
    Easy Single-Page Applications (SPA)
    Testing is easy.  Jasmine is the test framework of choice.

HTML attributes provide AngularJS “hooks”.  For example, notice the attributes on the elements <html ng-app=”AngularApp”> and <input ng-model=”user.name” />

Data binding example:

    <input ng-model=”user.name”/>
    <p>Hello {{user.name}}</p>

    In this example, data entered into the input text box is echoed in the paragraph below the input element.

Making Rich, Interactive, Multi-Platform Applications with SignalR

Presenter: http://mitchelsellers.com/
Session Materials: http://mitchelsellers.com/blogs/2014/11/17/2014-st-louis-days-of-net-presentations.aspx

Use cases for SignalR
    Any application that involves polling
    Chat applications
    Real-time score updates
    Voting results
    Real-time stock prices

The Smooth Transition to TypeScript

Presenter: https://twitter.com/pottereric

TypeScript provides compile-time errors in Visual Studio.

TypeScript has type-checking
    Optional types on variables and parameters
    Primitive types are number, string, boolean, and any
    The “any” type tells the compiler to treat the variable like Javascript would

Intellisense for TypeScript is very good, and other typical Visual Studio tooling works as well.

TypeScript files compile to javascript (example.ts –> example.js), and the javascript is what gets referenced in your web applications.

TypeScript class definitions become javascript types.

The usual Visual Studio design and compile-time errors are available when working with classes.

A NuGet package exists that provides “jQuery typing files” that enable working with jQuery in TypeScript.

TypeScript supports generics and lambdas.