It's Null?

Phrase heard round the world

HomeArchiveTalks

Learn about CosmosDb

Come learn about CosmosDb, a high-performance, low latency, highly available no-sql database provided by Microsoft Azure. We will cover some of the basics of CosmosDb, followed by a deeper dive into the internals. You learn about some of the more advanced topics such as the Change Feed as well. We will also be using a demo app running on the free tier of CosmosDb during the presentation.

Presented: May 19th, 2020 at Raleigh TRINUG user group meeting

Create and deploy your own website on a custom domain

You will end up with a custom domain serving your own HTML, CSS and JS. You will learn about things like domain registration, DNS and static site generation. This is a developer centric talk. Specifically, you will learn about hosting static content on GitHub pages. I will focus on the Wyam tool as a way to statically generate content. It is a .NET Core based static site generator that uses Razor syntax. We will also take a look at combining static site generation with other techniques like VueJS and Azure Functions.

You will also learn about the general overall benefits of statically generated sites. You will learn about the portability of static content to other services such as AWS S3, Azure Blob Storage, Netlify and other hosting providers. You will also learn about the performance and architecture benefits of statically generated content.

  • Slides: View
  • Code: https://github.com/kstreith/static-site-examples

Presented: April. 17th, 2019 and May 15th, 2019 at Raleigh TRINUG user group meeting

How To Improve Code Quality

We'll learn about what makes high quality code. Then we'll learn about some concrete steps you can take to improve the quality of your code. This won't just be about unit tests. We'll dive into other techniques and spend time talking about how code reviews can really help improve quality.

  • Slides: View
  • Code: No code for this presentation

Presented: Oct. 7, 2018 at Raleigh Code Camp 2018

Developer Tools for the Browser - Level Up!

This presentation covers the Developer Tools built into the Web Browser. Specifically, we are looking to use the developer tools to help with: debugging, prototyping, learning and finally improving our developed web applications. This presentation covers a range of techniques such as JS debugging, DOM breakpoints, performance timing, mobile device simulation and more.

Presented: Oct. 28, 2017 at Raleigh .NET Conf Local

Docker For Developers

This presentation covers Docker, specifically how to use it for daily development in a way that doesn't require you to get the rest of your development team on-board. It demonstrates running load tests from a container using both wrk and locust.io. It also demonstrates running SQL Server inside a container, skipping the complicated install and version data for use as a local development db. It is guided and can be followed to help you learn how to start using Docker today. It is focused on how to run hard to install applications from a Docker container so you don't put all those dependencies on your development machine.

Presented: Oct. 18, 2017 at Raleigh TRINUG user group meeting

Azure Container Service

This presentation covers Docker containers, Container Orchestrators, specifically Kubernetes and using Azure Container Service to create a Kubernetes cluster. Learn how to auto-scale containers, maintain deployment history, rollback deployments. Also covers topics like self-healing clusters, auto load balacing, rolling updates and blue/green deployments all using Kubernetes. The sample app is packaged as container images freely available on Docker Hub. This presentation can be followed to create your own Kubernetes cluster on Azure, deploy the sample application and perform a rolling update on your own cluster.

  • Slides: View
  • Code: Container images on Docker Hub, follow presentation to deploy to custom Kubernetes container in Azure

Presented: Apr. 22, 2017 at Raleigh Global Azure Bootcamp, July 19, 2017 at Raleigh TRINUG user group meeting

ASP.NET Core Application Development Study Group (4 of 4)

This was the last in a series of meetups on learning ASP.NET Core. The series was based on the MSPress book “ASP.NET Core Application Development". Each meetup was focused on particular chapters from the book. In each meetup, local speakers would cover additional material and examples beyond what was covered in the book. For this last meetup, I split speaking duties with Rob Zelt. For this meetup, I talked about ASP.NET Core Middleware and Configuration. I talked about ASP.NET Core environments and how web.config and global.asax are replaced. I talked about the IConfiguration and the variety of configuration sources. Finally, I demonstrated support for user secrets.

Presented: Mar. 15, 2017 at Raleigh TRINUG user group meeting

ASP.NET Core Application Development Study Group (2 of 4)

This was the second in a series of meetups on learning ASP.NET Core. The series was based on the MSPress book “ASP.NET Core Application Development". Each meetup was focused on particular chapters from the book. In each meetup, local speakers would cover additional material and examples beyond what was covered in the book. For this second meetup, I split speaking duties with Rob Zelt and Jeremy Brown. For this meetup I demonstrated Docker containers. Specifically, we created a Docker container for an ASP.NET Core application. I demonstrated versioning of Docker containers. I also demonstrated Docker compose and running other types of applications, like Wordpress. I showed running a Linux Docker container directly in Azure. I finished by showing support for Windows Docker containers on Windows 10.

Presented: Feb. 15, 2017 at Raleigh TRINUG user group meeting

ASP.NET Core Application Development Study Group (1 of 4)

This was the first in a series of meetups on learning ASP.NET Core. The series was based on the MSPress book “ASP.NET Core Application Development". Each meetup was focused on particular chapters from the book. In each meetup, local speakers would cover additional material and examples beyond what was covered in the book. For this first meetup, I covered the new dotnet command-line. I also covered the ability to install multiple dotnet SDKs side-by-side. I demonstrated publish of an ASP.NET Core app, specifically a portable and self-contained application. I also demonstrated running Kestrel behind the Apache web server. Lastly, the entire meetup walked through a hands-on portion where I provided a pre-written repository and they had to include that repository into a new ASP.NET Core application that they created.

Presented: Feb. 1, 2017 at Raleigh TRINUG user group meeting

Javascript Async Patterns

This presentation covers patterns you can use for your asynchronous code in Javascript, specifically javascript in the browser. Covers callbacks and promises which you can use today. Touches on upcoming patterns like async/await keywords which may be added in a future version of Javascript. The goal is to come with away with some ideas about how to improve your async code and the pros/cons of the various patterns.

Presented: Jan. 18, 2017 at Raleigh TRINUG user group meeting, Oct. 29, 2016 at Raleigh CodeCamp

Converting Web App to ASP.Net Core

Demonstrates converting a existing ASP.NET WebAPI application to ASP.NET Core and .NET Core. Discussed converting both with the WebApiCompatShim and without. Both converted apps are demo'd running on Linux using VS Code.

Presented: Sep. 10, 2016 at Raleigh DotNetConf.local

Behind the scenes of Modern Web App, part 4

Part 4 of a 4 part series. The purpose of the series is to build up a sample web application. The application being built is a Chore tracking application, tracking children, chores assigned to children and whether a child has completed a chore. The final session discusses and shows solutions to problems raised in earlier sessions. This session also covers writing client-side validation, both using a two-way data binding framework and as a separate client-side validation library. This session wraps up all the previous sessions to end up with a final usable chore tracking application. The goal of this series is to intentionally NOT use a framework and write the code by hand to better learn how frameworks work.

  • Slides: None, download code and follow SessionReadme.txt
  • Code: On GitHub

Presented: Aug. 3, 2016 at Raleigh TRINUG user group meetup

Behind the scenes of Modern Web App, part 3

Part 3 of a 4 part series. The purpose of the series is to build up a sample web application. The application being built is a Chore tracking application, tracking children, chores assigned to children and whether a child has completed a chore. In this third part, separating each grid into it's own component is discussed. This sample discusses bugs that can occur with slow responding servers and possible ways to mitigate these bugs. The web application silently fails if there are server side errors and methods to deal with server side errors are discussed. Finally, a simple two-way data binding framework is provided and discussed so that users have some understanding how frameworks work. The goal of this series is to intentionally NOT use a framework and write the code by hand to better learn how frameworks work.

  • Slides: None, download code and follow SessionReadme.txt
  • Code: On GitHub

Presented: Jun. 1, 2016 at Raleigh TRINUG user group meetup

Behind the scenes of Modern Web App, part 2

Part 2 of a 4 part series. The purpose of the series is to build up a sample web application. The application being built is a Chore tracking application, tracking children, chores assigned to children and whether a child has completed a chore. In this second part, a fully functional back-end has been written in ASP.Net MVC4 and as such Visual Studio 2013 or later is required to run the app. The front-end does not use MVC and uses static HTML and plain javascript. In this session, attaching event handlers, directly and with event delegation is discussed along with how to create modal dialogs in HTML. The goal of this series is to intentionally NOT use a framework and write the code by hand to better learn how frameworks work.

  • Slides: None, download code and follow SessionReadme.txt
  • Code: On GitHub

Presented: May 4, 2016 at Raleigh TRINUG user group meetup

Behind the scenes of Modern Web App, part 1

Part 1 of a 4 part series. The purpose of the series is to build up a sample web application. The application being built is a Chore tracking application, tracking children, chores assigned to children and whether a child has completed a chore. In this first part, the goal is simply to write code that renders each of the three grids. The examples show creating DOM elements with JQuery, without JQuery, mitigating cross-site scripting attacks and ways to improve rendering performance. Finally, a small templating library is shown to demonstrate how a templating library might be written. The goal of this series is to intentionally NOT use a framework and write the code by hand to better learn how frameworks work.

  • Slides: None, download code and follow comments in choreMain.js
  • Code: On GitHub

Presented: Apr. 6, 2016 at Raleigh TRINUG user group meetup

Web Applications: High Level Architecture Discussion

Led a 2 hour interactive discussion on high level web application architecture. Covered such topics as post-back vs ajax web architecture, highly coupled front-end and back-end system vs. de-coupled, chatty vs. chunky communication, pros & cons of server vs client-side executed code, comparisons of modern web apps with native mobile apps, improvements over js such as typescript, coffeescript, abilities to prototype quickly with de-coupled architectures, pros and cons of building api first, how team organization affects web application architecture, organization of js code, breaking into components, modules.

  • Slides: View, slides started free form discussion
  • Code: None

Presented: Mar. 2, 2016 at Raleigh TRINUG user group meetup

Debugging Javascript in the Browser

Demo of JS debugging tools in IE8, IE11, Chrome and Firefox. Discussed a number of advanced debugging techniques. Covered debugging techniques that work regardless of framework, also discussed techniques specific to Angular, Knockout and Ember. Also included hands on lab with broken JS samples where developers could work on improving their debugging skills.

Presented: Nov. 11, 2015 at Winston-Salem Triad Developers user group meetup, Aug. 26, 2015 at Wilmington Cape Fear DotNet user group meeting, Mar. 4, 2015 at Raleigh TRINUG user group meeting, Nov. 8, 2014 at Raleigh CodeCamp

Learning from JS Libraries

Interactively walked through a few open-source JS libraries as a way of learning JS techniques and best practices.

Presented: Sep. 30, 2015 at Raleigh TRINUG user group meeting

Diving into Microsoft's Code

Looked at open-source .NET framework code, MVC, Web API code. Discussed how to find on GitHub. Discussed debugging with symbol servers. Also included customizing Console class and building custom version of .NET framework.

  • Slides: View
  • Code: Slides include links to MS code that was shown

Presented: Jul. 29, 2015 at Raleigh TRINUG user group meeting