Marcel Jurtz
Image for post
Image for post
Photo by Reza Namdari on Unsplash

First off: Links to the code and the prototype are at the end of the post.

If you follow my blog a bit more closely, you might know that my most time-consuming hobby is triathlon. Strength training in the gym or at home is and remains part of it, but is more a means to an end. Then in October 2020 I had my first experience with CrossFit — (very) short, very intense workouts without too much equipment, leaving you with a feeling like the one you have after finishing a very hard interval session on the running track — I was immediately captivated. The basic idea of CrossFit workouts are so called WODs (Workouts of the Day), so you don’t usually train repetitive workouts, but always bring some variety into the mix. When you’re a coached CrossFit-Athlete, you usually don’t get to know the contents of todays WOD until you hit the gym (which are called “Box”). The sessions are usually named to make them easier to communicate. If you look up the term “WOD” on any search engine, you’ll be inundated with related posts. …


Image for post
Image for post
Photo by Christopher Gower on Unsplash

ASP .NET Core already has quite a decent di-container built in. However, there are some quirks you might need to be aware of. In one of my applications, I’ve been using a factory pattern to register my views by using open generics. To be more clear about that: I have an Interface IView<TView>, and I want to register all of this interfaces implementations.

As I found out, Microsofts DI-Container currently doesn’t support that by default (text me if I’m wrong!), but there’s a solution for this problem. Scrutor is a package that adds more complex di-features — specifically scanning. …


Image for post
Image for post
Photo by Safar Safarov on Unsplash

I’ve been starting a new blog on my domain, for which I wanted to use the ‘blog’ subdomain. However, this subdomain was already in use for all my coding-related stuff. So, I decided to move my current blog from /blog to /coding and upload my new blog to /blog. So far, so good. Now I have both of my blogs up and running. There’s just one problem: Any incoming traffic to existing posts on my blog would resolve to 404s. In todays post, I’m gonna show you how I resolved that issue.

First of all, my domain runs on an apache server, so I decided to capture all 404s and redirect them to a specific errorpage. To do this, I needed to add the following statement to my .htaccess file, which is located in the root directory of my webspace. …


Image for post
Image for post
Photo by Fotis Fotopoulos on Unsplash

Have you been implementing the validation of your ViewModels in ASP.NET (Core) using DataAttributes so far? If so, chances are you’ve always been dissatisfied because your classes became messy and full of unnecessarily replicated code. Yes? Then today’s post is for you.

FluentValidation

FluentValidation is a way to define strongly typed validation for classes in the form of a Fluent API. The term fluent in this case refers to a code structure where a function always return the modified object. This way, you can chain together multiple method calls and produce very readable source code, especially in configurations where it is often used. You may already be familiar with this structure from areas like the ASP.NET …


GitHub has been secretly pushing out a new feature in early july, that allows you to create a profile-level README-file. In todays post, I’ll be showing you, how you can create your own profile README to customize your own profile page according to your preferences.

First of all, you won’t find this feature in your settings. To get started, you have to create a new repository with the same name as your username. For example, my GitHub username is “MarcelJurtz”, so I’m creating a new (public) repository named “MarcelJurtz”. …


I’ve been using Zwift pretty extensively for the last few months. For anyone unfamiliar: Zwift is a VR Biking platform. That means, you can put your bike on a smarttrainer, connect it to your pc (directly via ant+ / ble or by bridging with your phone), and then you can ride virtual worlds without having to go outside. Sounds not too bad, right?

After a few sessions, just riding became kind of tedious, so I’ve tried to do some of the preconfigured workouts. You can either do workouts by themselves or follow a trainingplan, which consists of multiple workouts that you have to complete to a given date. The workouts all have the same structure. They consist of different blocks, that can have a variety of requirements. The blocks that are available are either steady pedaling, ramps (up or down) or intervals (alternating steady blocks of high and low power which are repeated to a predetermined extent). Basically, there are some more types, but we’ll get back to that later. …


As a developer you have probably already worked with Regular Expressions. If you’re like me and didn’t need them too often, you probably googled them up more than you wrote them yourself.

So today I’d like to go through the basics of Regex and show you how to build regular expressions and how to write them yourself.

If you haven’t had anything to do with this topic before, this post is still for you, of course. Regular Expressions are a way to check strings against a certain pattern, for example if it is alphanumeric or contains only uppercase letters. …


The ability to work with the terminal under MacOS and use my familiar Linux workflow is awesome, but I have always missed a crucial component: a package manager.

Homebrew is a package manager for MacOS, according to the developers “The missing package Manager for macOS (or Linux)”. Today I would like to explain how you install and use Homebrew productively.

First of all: You can find the project’s website here, there you will find all the information and documentation you could wish for.

You might have to install the command line tools first. This can be done with the command xcode-select –install. If you already have Xcode or other software that needs the tools installed, you can skip this step. You can use xcode-select -p to check if the Command Line Tools are already installed. …


Some time ago I moved my blog from WordPress to Jekyll, but I never really explained the reasons. That’s why I want to discuss in today’s post the option of managing websites using an offline CMS or Static Site Generator.

CMS like WordPress are often ridiculed and devalued by their complexity or their overall structure. In the meantime, there is a variety of similar content management systems available, but they usually share the core functionalities and structure. Usually, these systems consist of a backend, via which the website is managed. Articles are stored via a relational database. …


Image for post
Image for post
Photo by Patrick Tomasso on Unsplash

Today’s post is about learning new things more efficiently, i.e. wasting as little time as possible on learning. I use the Feynman technique, named after the physicist Richard Feynman. Feynman was known for his ability to break down complex facts into their core message and to convey them very easily.

You certainly know the concept of being able to explain things to others in order to better understand them yourself. That’s exactly what I’m doing with my blog and that’s also the goal of the Feynman technique. …

About

Marcel Jurtz

Software Developer (C#, Java / Desktop, Web, Mobile, Games (VR)), Triathlete & Coach - mjurtz.com — Sign up to my newsletter: coding.mjurtz.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store