Windows Development Environment

Table of Contents

Computer

I use a Dell XPS 13 which I think is reasonably priced. It is also light and sturdy.
  • RAM: 16 GB
  • Processor: Intel i7
  • Disk: 500 GB
When you setup make sure to first run Window Update to get any driver and BIOS updates. Then open ‘Turn Windows features on or off’ in the control panel and enable ‘Virtual Machine Platform’ and ‘Windows Subsystem for Linux’.

Dropbox

Dropbox is great for scanning documents. I personally keep a single ‘Documents’ folder with all my files and then just use the search when I need to find something. I use the file name convention YYYY-MM-DD Description so I can also look back historically. The iPhone app makes a really high quality scan and automatically adds timestamps.

Installation

Navigate to https://www.dropbox.com/install and install for your system.

Windows Terminal

New terminal for Windows. Makes for a much better terminal experience.

Installation

Open the Windows Store and search for ‘terminal’. Then click ‘Install’.

Resources


Windows Subsystem for Linux (WSL)

Run Linux on Windows.

Installation

Open PowerShell and run
wsl --install
Install Ubuntu
wsl --install --distribution Ubuntu

Usage

Open Windows Terminal and open Ubuntu.

References


Scoop

Package manager for Windows.

Installation

Set the execution policy.
Set-ExecutionPolicy RemoteSigned -s CurrentUser
Install scoop.
iex (New-Object net.webclient).downloadstring('https://get.scoop.sh')
Install sudo.
scoop install sudo
This allows you to run a command as an ‘Administrator’.
Add extras and versions buckets.
scoop bucket add extras
scoop bucket add versions

Usage

Search for packages
scoop search vim
Install a package
scoop install vim

References


oh-my-posh

Better prompt.

Installation

Install with Scoop.
scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json
Open your profile.
vim $env:PROFILE
Add the following line to the top of your profile to use the ‘paradox’ theme.
Invoke-Expression (oh-my-posh --init --shell pwsh --config "$(scoop prefix oh-my-posh)/themes/paradox.omp.json")

References


Vim

Text editor to speed up your typing. It takes a little while to get used to but the persistence pays of in the long run.

Installation

scoop install vim

Usage

Open vim in current directory.
vim .
Open a file in vim
vim ./my-file.txt

Resources


Vimium

Google Chrome extension to speed up your Googling. Use Vim keybindings to navigate around the browser.

Installation

Head to Vimium homepage and click the ‘Install’ button. Or search for ‘Vimium’ in the Chrome Web Store and install from there.

Usage

  • j,k: used to scroll up and down respectively.
  • d,u: used to page up and down respectively.
  • f-{other}: used to show links on page and then navigate to {other} which was the shown link.
  • ?: show the rest of the keybindings and other help.

Visual Studio Code

IDE to speed up your development.

Installation

scoop install vscode

Usage

Open current directory in VS Code.
code .
Open file in VS Code.
code ./my-file.txt

References


Git

Version control for champs.

Installation

scoop install git
git config --global credential.helper manager-core
git config --global core.autocrlf true

Usage

Initialize a new repository.
mkdir my-repo
cd my-repo
git init
Add a file to track.
echo "hello" > hello.txt
git add hello.txt
Commit changes.
git commit -m 'added hello.txt'

Docker

Container management.

Installation

Go to Docker install page to install.

Usage

View running containers
docker ps -a
View local images
docker images
Pull image from DockerHub
docker pull bash
Run a container
docker run -it bash

dotnet

Cross platform toolchain for developing .NET applications.

Installation

scoop install dotnet-sdk

Usage

Create a new F# console application
dotnet new console -lang F# -n my-fsharp-app
Run F# Interactive
dotnet fsi

Microsoft (R) F# Interactive version 12.0.0.0 for F# 6.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

> let x = 1;;
val x: int = 1

> let y = 2;;
val y: int = 2

> x + y;;
val it: int = 3

Node

A JavaScript runtime.

Installation

First install nvm-windows.
scoop install nvm
List available versions.
nvm list available

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    17.8.0    |   16.14.2    |   0.12.18    |   0.11.16    |
|    17.7.2    |   16.14.1    |   0.12.17    |   0.11.15    |
|    17.7.1    |   16.14.0    |   0.12.16    |   0.11.14    |
|    17.7.0    |   16.13.2    |   0.12.15    |   0.11.13    |
|    17.6.0    |   16.13.1    |   0.12.14    |   0.11.12    |
|    17.5.0    |   16.13.0    |   0.12.13    |   0.11.11    |
|    17.4.0    |   14.19.1    |   0.12.12    |   0.11.10    |
|    17.3.1    |   14.19.0    |   0.12.11    |    0.11.9    |
|    17.3.0    |   14.18.3    |   0.12.10    |    0.11.8    |
|    17.2.0    |   14.18.2    |    0.12.9    |    0.11.7    |
|    17.1.0    |   14.18.1    |    0.12.8    |    0.11.6    |
|    17.0.1    |   14.18.0    |    0.12.7    |    0.11.5    |
|    17.0.0    |   14.17.6    |    0.12.6    |    0.11.4    |
|   16.12.0    |   14.17.5    |    0.12.5    |    0.11.3    |
|   16.11.1    |   14.17.4    |    0.12.4    |    0.11.2    |
|   16.11.0    |   14.17.3    |    0.12.3    |    0.11.1    |
|   16.10.0    |   14.17.2    |    0.12.2    |    0.11.0    |
|    16.9.1    |   14.17.1    |    0.12.1    |    0.9.12    |
|    16.9.0    |   14.17.0    |    0.12.0    |    0.9.11    |
|    16.8.0    |   14.16.1    |   0.10.48    |    0.9.10    |
Install the latest LTS.
nvm install 16.14.2
Use installed version.
nvm use 16.14.2

Usage

Run JavaScript REPL.
node
Welcome to Node.js v14.17.0.
Type ".help" for more information.
> var x = 1;
undefined
> var y = 2;
undefined
> x + y
3

Resources


Python

Easy to read, learn, and use programming language.

Installation

Install pyenv
scoop install pyenv
List available versions
pyenv install --list
:: [Info] ::  Mirror: https://www.python.org/ftp/python
3.8.9
3.8.10
3.9.0
3.9.2
3.9.6
Install latest version.
pyenv install 3.9.6
Set latest as global version.
pyenv global 3.9.6

Usage

Check version.
python --version
Run Python REPL.
python
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 1
>>> y = 2
>>> x + y
3

References


kubectl

Kubernetes CLI.

Installation

scoop install kubectl
Update your KUBECONFIG environment variable and (optionally) add an alias.
vim $PROFILE
$env:KUBECONFIG = "C:\Users\<user>\.kube\config;"
Set-Alias k kubectl
Then reload your profile.
. $PROFILE

Usage

k get pods --all-namespaces

kubectxwin

CLI for configuring Kubernetes contexts

Installation

Clone the repository.
git clone https://github.com/thomasliddledba/kubectxwin.git
Add the executable to the PATH and (optionally) add an alias.
vim $PROFILE
$env:Path += ";C:\<path to kubectxwin repo>\bin"
Set-Alias ktx kubectxwin
Reload your profile.
. $PROFILE

Usage

View contexts
ktx ls
Change context
ktx set docker-desktop
Switched to context "docker-for-desktop".

kubenswin

CLI for configuring Kubernetes namespaces

Installation

Clone the repository.
git clone https://github.com/thomasliddledba/kubenswin.git
Add the executable to the PATH and (optionally) add an alias.
vim $PROFILE
$env:Path += ";C:\{path to kubenswin repo}\bin"
Set-Alias kns kubenswin
Reload your profile.
. $PROFILE

Usage

View namespaces
kns ls
Change namespace
kns set kube-system

Helm

Package manager for Kubernetes.

Installation

scoop install helm

Usage

Install a chart (i.e., package).
helm install stable/postgresql --name my-postgres
List charts.
helm list
Show status of chart.
helm status my-postgres

Pulumi

Infrastructure as code.

Installation

Install using Scoop.
scoop install pulumi

Usage

Create a new project.
mkdir pulumi
pulumi new kubernetes-typescript
Preview the changes.
pulumi preview
Update the resources.
pulumi up

Resources


Lightshot

Screen capture tool. (Used for most of the images in this post.)

Installation

Install Lightshot by downloading here.

Usage

Take a screen shot by pressing the PrtScr button on your keyboard. You can then select an area on your screen, add lines or arrows, and save or copy the image to your clipboard.

Resources


ScreenToGif

Screen capture tool, but GIFs.

Installation

Download and install from screentogif.com.

Usage

Start ScreenToGif.
Drag the window around the area you would like to record and press F7 to start recording. Press F8 to stop recording.

Resources


OBS Studio

Screen recording tool.

Installation

Download and install from OBS Studio website.

Usage

Check out becomeablogger.com for some great resources on how to use OBS Studio.

Resources