# Tuesday, 24 July 2018

A package manager is a tool to install desired software and any other components on which that software depends. They do so by reading from a pre-configured package file, which lists dependencies, required configurations, where to retrieve binaries, and the order in which each step must occur.

Many software developers are familiar with package managers, such as NuGet (for Microsoft applications), PIP (for Python) and RubyGems (for Ruby). These are used to add components to a software project.

Chocolatey is a Package Manager designed specifically for installing desktop applications onto a Windows computer, outside of any software project.

You can get started using Chocolatey by navigating to https://chocolatey.org/. Chocolatey requires Windows and PowerShell (which comes pre-installed on current versions of Windows).

Install Chocolatey by opening a Command prompt and typing

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

or by opening a PowerShell prompt and typing

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

You will likely need to open those prompts as an Administrator. Close the prompt when you are done.

choco install openlivewriter -y choco install googlechrome -y choco install firefox -y choco install notepadplusplus -y choco install nodejs -y choco install git -y choco install putty -y choco install nodejs -y choco install visualstudiocode -y choco install paint.net -y choco install dropbox -y choco install fiddler -y choco install azure-cli -y choco install audacity -y choco install visualstudio2017enterprise -y choco install slack -y choco install filezilla -y choco install handbrake -y choco install gitkraken -y choco install camtasia -y choco install snagit -y choco install unity -y choco install azure-cli -y choco install curl -y choco install everything -y choco install spotify –y
choco install icloud -y choco install docker -y
choco install kindle –y
choco install microsoft-teams –y
choco install postman -y

Once Chocolatey is installed, you can install software with the command "choco install ", followed by the name of the package. Uninstall software with the command "choco uninstall ", followed by the name of the package. You can find existing packages and their names at https://chocolatey.org/packages.

"choco install" and "choco uninstall" have a number of command line switches. I found "-y" to be the most useful, which answers "Yes" to any prompts to download or run software, saving you a lot of time and intervention.

My number 1 use case for Chocolatey is to re-install all my desktop applications after I reset a PC (delete all data and applications and re-install Windows). I have created a batch file named "ChocolateyInstallScript.bat" to install many of my favourite desktop applications.

The script is listed below:


I ran this script this morning after resetting my laptop. It ran for about an hour with no intervention from me. After an hour, all the apps were installed.

Below is part of the output:


The best part is that, for what I am doing, Chocolatey is completely free!

For more information, check out the the Chocolatey documentation here or watch my interview with Chocolatey creator Rob Reynolds here.

Chocolatey provides a a simple way to install and manage desktop applications. It saved me time and energy when I rebuilt my machine.

Tuesday, 24 July 2018 16:06:00 (GMT Daylight Time, UTC+01:00)
# Friday, 20 July 2018

I decided I needed to re-image my laptop.

After more than two years, my laptop felt slow. Installing and uninstalling applications and forgotten / unneeded service that are still running made their presence felt in sluggish performance.

I was pleasantly surprised how easy it was do this on Windows 10.


My goal was to completely wipe out everything on my PC and start fresh, so I wanted to know what I was removing and would have to add back.

Step 1 is to back up any data or documents on your laptop. If you are using tools like OneDrive, Dropbox, and GitHub, all your data might already be backed up. This was true for most of my files, but I found a few (most notably my PST email archive) that I needed to back up manually to an external hard drive.

Step 2 is to make note of the applications you will need to re-install after you reset the computer.

Reset PC

Once everything is backed up, you can reset your machine with a clean install.

Click the START button in the bottom left and type "Reset this PC", as shown in Fig. 1.

Fig. 1

This should bring up the "Recovery" screen, as shown in Fig. 2. (Note: If this does not work, you can go to Windows Settings and search for "Reset this PC".)

Fig. 2

On the "Recovery" screen, click the [Get Started] button to launch the "Reset this PC" wizard. The first screen ("Choose an option") of the Wizard is shown in Fig. 3.

Fig. 3

Click the [Remove everything] button to advance the "Do you want to clean the drives, too?" screen, as shown in Fig. 4.

Fig. 4

On this screen, select [Remove files and clean the drive] button to advance to the "Ready to reset this PC" screen, as shown in Fig. 5.

Fig. 5

On this final wizard screen, click the [Reset] button.

This will delete all files, re-install windows, and launch a startup wizard to ask you about things like preferred language and keyboard layout.

When finished, you will have a PC with Windows 10 installed and little else. At this point, you will want to re-install any applications you need and restore desired files from your backup. I used Chocolatey to automate re-installing my applications.

I did this for 2 different laptops. The whole process took about 90 minutes on my 2-year-old Surface Book and about 3 hours on my 4-year-old Surface Pro 3.

The most stressful part was backing up everything and hoping I did not forget an important file. My next project is to make sure everything is included in Dropbox, so I won't need to worry about this.

Friday, 20 July 2018 09:29:00 (GMT Daylight Time, UTC+01:00)
# Monday, 19 September 2016
Monday, 19 September 2016 12:38:00 (GMT Daylight Time, UTC+01:00)
# Monday, 30 November 2015
Monday, 30 November 2015 17:36:00 (GMT Standard Time, UTC+00:00)
# Monday, 14 September 2015
Monday, 14 September 2015 23:08:54 (GMT Daylight Time, UTC+01:00)
# Monday, 31 August 2015
Monday, 31 August 2015 10:11:00 (GMT Daylight Time, UTC+01:00)
# Monday, 06 July 2015
Monday, 06 July 2015 18:22:00 (GMT Daylight Time, UTC+01:00)