• When I put up a new website in Azure I tend to run into the same problems. Pointing DNS to the azure website nets a lot of urls. I'll have mydomain.com, www.mydomain.com, mydomain.azurewebsites.net, and http/https versions of all of them. When talking SEO, you generally don't want duplicate ways to get to the same content. Luckily, this can be solved relatively painlessly with url rewrites in the web.config. I put together a quick reference to handle some of the scenarios.
    approx. 2 minutes. Software    azure asp.net
  • I'm recently working with microservices in Asp.Net Core. With microservices, there tends to be a lot of network connectivity. One service potentially calls many other services to build a final response. It's difficult to see where a request started, all the subsequent requests that happened back to the final result. Concurrency keys are a way to track a single request through all its dependancies. The idea is when a request is made a concurrency key is generated.
    approx. 2 minutes. Software    asp.net csharp .net core microservices
  • A lot of the projects I work on use multiple database engines. SQL Server or Mongo for persistence, Redis for caching, Elastic for search, etc. Setting all of them up whenever I configure a development environment can be a hassle. Turns out Docker solves this problem very well. Docker not really explained If you don't know what Docker is I recommend checking out this intro article. Ideally, I'd convert my projects to all use Docker containers, but a lot of them aren't .
    approx. 4 minutes. Software    docker
  • You can publish to Azure websites a number of ways. They all have their strengths and weaknesses so I tend to change them up depending on the situation. If I'm trying to get something quickly up to Azure I'll go with the git deployment. If I want full continuous integration I'll generally go WebDeploy and automate with continuous integration. This article explains how to deploy a .Net Core application to Azure websites using git.
    approx. 3 minutes. Software    .net core azure git
  • I really like my Macbook Pro. I'm also a developer who uses .Net a lot. This creates a problem for me since the .Net ecosystem is primarily a Windows one. Luckily, with the addition of .Net Core this is changing. .Net Core is open source, cross-platform, and supports many of the things us .Net developers are used to. I was wanting to test the cross-platform part so I set out to build a simple Asp.
    approx. 5 minutes. Software    csharp .net core asp.net
  • Selenium is a great product for browser automation. It allows me to build great suites of interface tests. The only issue is the code to implement Selenium in the C# world isn't very clean. With a single page application, the developers end up with a lot of Thread sleeps, complex selection queries, etc. Enter Coypu. Coypu is a C# wrapper around Selenium with an API inspired by Capybara. This means coding to Coypu is very straightforward.
    approx. 3 minutes. Software    selenium csharp
  • I want to note this was my first stab at getting a workflow for cross-platform libraries using the new technologies. I don't consider any of these methods the correct way to do things, but they represent my experience with it so far. I've had a fairly unstable relationship with .Net recently. I support the push to make things cross-platform. I understand that change is tricky. However, I feel like there is a lack of the usual Microsoft prep-work when it comes to the new offerings.
    approx. 5 minutes. Software    asp.net .net core csharp
  • Re-Launch with Hugo

    The site has been transformed. It's now mattkruskamp.com instead of cyberkruz.com. But, there's more! I've moved from a website builder (Squarespace) to using a static website generator (Hugo) to create the site. Why? Content ownership I'm going to simplify here a bit. The internet was originally created to be a decentralized network. Any person or business can throw a server on the network and host a website or other resources. No one site is technically more important than the other.
    approx. 2 minutes. Software    hugo
  • Rafting Westwater Canyon, Utah

    This summer I rafted Westwater Canyon with some co-workers. Unfortunately, I haven't had the time until recently to put together the video. Westwater Canyon is on the Colorado River east of Cisco, Utah. Since the canyon sits near Canyonlands and Arches National Parks the scenery is a plethora of red, orange, green, and black. Taking a look around between rapid fights is breathtaking. The class III and class IV rapids made sure we had a great time, but also requires the use of a river guide.
    approx. 1 minutes. Hobbies    rafting
  • How to Brew Beer Quickstart

    When I make beer I like to follow a set of steps to make sure that I don't forget anything. I put this list together as a reference while I'm brewing. This article assumes that you have all the ingredients and tools to brew. Usually the ingredients are put together in a kit. Let's get started. Sanitation Any imperfections or bacteria will destroy the taste of beer, and you'll probably will not know it for the duration of the brew.
    approx. 4 minutes. Hobbies    beer