Learning Objectives: Week of May 4th, 2020

Linux Subsystem on Windows

I have been trying to find more ways to be a productive developer. There are several times where I want to run multiple scripts using PowerShell but I am not able to neatly organize my sessions in a single window. Currently, Windows does not support tabs or windows in CMD, PowerShell, or Bash unless you use TMUX in Cygwin, but the process runs slow. One could always use Visual Studio Code however, my learning objective is to learn more about VIM and limit my need to touch my mouse. I have also tried cmder, however, the prompt does not play well with VIM.

Installation was very simple. You allow access rights and then install a distro. Distros can be found in the Microsoft Windows Store. After you have the distro installed, you just need to run the application. After I had installed my distro, the first thing I learned was how to access my windows C drive. You can find your drive by letter in the “/mnt” directory. You can also direct your current working directory in windows by opening PowerShell from your file explorer window and typing wsl.

If you need to install NodeJS and NPM follow the installation instructions from Github and then install NPM using sudo apt-get install npm.


After installing the Linux subsystem, I went to work learning about TMUX key bindings. I learned about managing windows, listing them, and creating new ones. I also learned about displaying a large clock, splitting panes horizontally and vertically, creating new sessions by name, renaming windows, and detaching from sessions. TMUX allows you to walk away from a terminal prompt while setting up jobs in the background.

ASP.NET Strongly-Typed Validation With Fluent Validation

You might want to create a new view model if you want to have different validation rules for the same property. You might be tempted to create a new view, and in turn, set up new controller and service methods. There is a better way! Welcome to fluentvalidation.net. Fluent Validation allows you to create strict validation rules. Have you ever wanted to use a “RequireIf” validation attribute or setup validation on complex objects? What about validation rules on a list of child objects? Setup is simple, you install the NuGet package, include in your middle-ware, set up a new validation class, and then instantiate the class in your Setup.cs file. Check out the documentation for more information.

Leave a Reply

Your email address will not be published. Required fields are marked *