Fresh Windows 10 – Useful applications to have

In this article, I will take you through my experiences with installing Windows 10 and list some useful applications that I think every gamer/software developer will find useful to have on their machine.

TL;DR: List of applications

Windows

A freshly installed operating system is like a fresh summer rain, washing away all the clutter and unused applications that you’ve installed over the years of using your computer. Every now and then I like to format my computer to get it into this clean, fresh state. The last time I did a format was back in November 2016, so my computer was due for a format. At the beginning of this month, I formatted my computer and a lot has changed in the process of formatting your computer (from when I did it back in 2016, and even way back before that).

For starters, the latest Windows OS is now Windows 10 (back in 2016 when I formatted, it was Windows 8). Much of the installation process of Windows from Windows 8 to Windows 10 has remained the same, apart from the fact that I believe they have some how really improved the speed of the installation. The new installation of Windows 10 took about 10 mins, at most. I remember back in the day I was installing Windows XP on my computer and I wanted to format the drive. Back then I just had a single 1TB hard drive in my computer and the format of the drive alone took about 6 hours to complete. I have no idea why it took so long, but I remember going to sleep and waking up to find it was still not completed. These days, you can format a 2TB hard drive in a matter of seconds.

If you would like to format your computer completely (and I mean, completely fresh instead of using Windows 10’s Recovery installation that is provided) you can download this Windows 10 tool here. It requires you to have an activate Windows 10 license, and is an awesome tool. You simply start it up and it will download a Windows 10 ISO file for you that you can then burn to a USB for the installation process. To create the installation media, I like to use Rufus. It’s simple and super easy to use to create a bootable USB drive from an ISO image.

To my surprise, the Windows 10 ISO (which contains all the versions of Windows by the way) was just under 4GB. The installation process was super quick too. From creating the bootable USB to having a fully installed OS that you can use took about 30 minutes.

Once I had Windows set up, I was ready to get my good old applications back. And this time, limit it to only applications that I will actually use on a day to day basis (I mean, that was the main reason for formatting was to get rid of all the other junk that I had lying around on the system).

Standard set of applications

Right off the bat, the first application I install is Chrome. This is for the simple reason that I hate Internet Explorer with a passion (as most software developers do) and I don’t particularly like Edge. However, to give Microsoft some credit, they have recently announced that Edge will be built of the Chromium Rendering Engine. Once this has been implemented, there may be more reason to actually use the default browser that Microsoft ships with Windows, however as it stands, Chrome is still always my go to browser, simply because it intergrated with my Google account so well and all my bookmarks are stored there.

Once I have my browser installed, I can now (more effectively) browse the web and actually get the other applications on this list.

Next on the list for me is 1Password. 1Password is one of the best password manager out there. I have been using one password for about 2 and a half years now, and I will continue to use it for all my password needs. The main reason I moved over to a password manager for because I was hacked twice in the space of a month – one hack was on EA (origin) and the other was on Humble Bundle. Once I moved over to 1Password, I realised just how many online accounts I have, and now they are secure by each having a different password. Recently, I found out that 1Password allows you to set up 2-factor-authentication in the app, meaning that you no longer have to re-setup all your 2-factor-authentication accounts when you get a new phone, everything is managed inside 1Password.

Bitdefender is my anti-virus of choice, and next up on the list. I’ve been using BitDefender for about 3-4 years now and have never experienced a problem. I find that Bitdefender does a good job of balancing performance while still protecting your computer from viruses and malware.

Gaming Software

At this point, my Windows had already updated my graphics card driver and my screen was able to resize to a resolution of 1920×1080. Normally with a fresh install of Windows, your graphics card drivers will not be installed and the screen resolution will be limited to something like 1024×768 or 1280×960. If you are unable to select the highest resolution for your screen, it’s best to install the graphics card drivers. My current graphics card is a GTX 660. If you have a Nvidia card too you can head over here to install the drivers.

To round off the drivers that you will need, if you have a custom keyboard and/or mouse, you should get those drivers too. For my current rig I am using a Logitech G510 keyboard and a Corsair M95 mouse. For Logitech products, all the software required has nicely been bundle into one installer which you can find here (the download to get is the Logitech Gaming Software). Corsair has also recently moved over to a single software solution called “Corsair iCube”, which you can find here.

Steam is the most ubiquitous gaming store with the widest variety of games. About 98% of the games I own are on Steam. The reason I love Steam is because, once you’ve bought the game it’s yours and you can download it from Steam anytime. There’s no need for disc installations, simply install Steam and select the games you want to download.

Another common gaming launcher is Battle.NET (if you play any blizzard games). And recently EPIC Games (the people that brought us Fortnite) have also created a store with an offer to get a free game every two weeks for the next year (2019) making it a definite consideration. At this point only the first two games are known with the first one being subnautica and super meat boy. It seems promising and maybe worth an install simply to get the free games!

Customization software

I only have one item in the customization software list, and that is wallpaper engine. This software can be found on the Steam store here. At first, when I saw wallpaper engine, I thought it was a gimic, but after using it now for almost a year, it’s definitely a really nice additional to any Desktop with the animated wallpapers that you can apply. And there are tons of wallpapers on the steam workshop for this software that you can find. Definitely worth the pick up at a small cost.

Productivity

Next in the line up, we have some productivity software. The items in this list are software that makes general usage of your computer a little easier, and items that you use more often than you think.

First on the list is a PDF reader. My PDF reader of choice is Foxit PDF Reader. I have been using Foxit since about 2014 and I prefer it over something like Adobe because it is a lot more light weight and I find that the performance of Foxit is great.

These days, it may seem like almost everything that you download on the internet comes in a compressed format – this may be .zip, .rar, .tar, .gzip, .7z and many others. I believe that most people are familiar with WinZip and WinRAR to extract these archived files. I do not like these applications because they require licenses and are proprietary. My recommendation for archive files will always be 7ZIP, since it’s free, open source and handles basically any format. I have yet to run into a situation where I can’t use 7ZIP to unarchive a file format.

Since the very first edition of Windows, it has always come with a Notepad out of the box. Notepad is great for jotting down quick notes, but it lacks features that you may have become accustom to  with something like Notepad++ or Sublime Text. For my computer I have installed Notepad++ as it gives you tabbed “note pads” and allows you to close the application without needing to save the “note”. I prefer Sublime Text as a developer tool, and have excluded that from my installation for my home PC.

If you find yourself copying lots of files to and from your computer to lots of different locations, TeraCopy is definitely worth a pick up. The reason I like TeraCopy is it allows you to easily see which files were copied and which (if any) failed to copy. It gives you a separate “tabbed” window for each copy that you perform to a different location if you are still busy with another copy. For the average user this is probably not necessary, since the Windows file copy has improved greatly over the past couple of years. But for those power users that do a lot of copying, I would highly recommend TeraCopy.

The recent updates to Windows 10 have introduced a “Night Light” feature, which reduces the amount blue light emitted from your screen. Since about 2013, I’ve been using F.lux for this and they have improved their software over time too. The most recent version of F.lux is great as it allows you to configure different levels of filtering by setting a “bed time”. It will automatically and gradually reduce the blue light emitted from your screen in a way that is comfortable for your eyes and usually it is barely noticeable as it reduces blue light. Since Windows 10 now has this “Night Light” feature baked into the OS, F.lux would be recommended for more power users.

Lastly on this sub list, we have everything (a searching tool). This is also recommended for power users that perform a lot of searches on their computer. Everything is great, and I am extremely impressed with how fast it is able to perform searches across your entire system. The indexing done by “everything” is amazing and will really help you find anything (by file name) on your computer in a matter of seconds.

Audio and Video

For all your video playback needs, there is only one application that comes to mind, and that is VLC media player. There is nothing more that I can really say about VLC other than it is a great video player and I have been using it ever since I got my first .mkv file that Windows Media Player was unable to handle at the time.

For more power users and for those of you that have a huge collection of videos, I would recommend getting Plex Media Server. Plex is a great addition to any computer that you use for watching movies and series. It’s really simple to set up and once you have it configured you can sit back and let Plex do it’s magic. The way Plex works is, you set up a “library” that points to a directory on your computer. Based on the meta data for this file, Plex is able to build up a catalogue of your videos. Plex excels for series as it is able to group them all together in one place, making it easy access all the episodes of a series. Plex allows you to quickly see rotten tomato and IMDB ratings, gives you the synopsis of the series or movie and also allows you to search for videos that have the same actors in it as the current video you are looking at. If you have a smart TV in your house, Plex is definitely recommended as it makes watching videos on your TV from your computer so much easier than having to copy files to a USB and other weird methods to get the videos to show on your TV.

Finally, for all those old school users out there that still have music files on your computer I would recommend Winamp. Winamp is a great tool for ripping any of your old CDs that you might have lying around and is also a super light weight music player.

General Customization

This section is purely for power users and may not apply to your “style” of using Windows. I’m including this portion in the article for reference purposes.

The one thing that I truly hate about the Windows Explorer since Windows 8, was the inclusion of the “Folders” section on the default Explorer window. For a new installation of Windows, this is typically the first thing that I remove from the explorer. There is an excellent article over at how to geek explaining how to get rid of this section.

For those of you that have more than 1 hard drive in your computer, you will generally want to point your Downloads, Documents, Videos, Pictures and Music folders to a different location other than the C drive. The latest update to Windows 10 has actually made this really simple and all you need to do is right click on the aforementioned folder that you want to move, select properties, go over to the “Location” tab and select Move. This will allow you to easily relocate the default storage of these “Library” items on your computer. This makes a huge difference especially  when your main hard drive (C drive) is a small SSD.

Closing

I hope this article has proven to be help for any of you installing a fresh version of Windows!

Git Behind The Proxy

If you work for a corporate, chances are that you will need to deal with a proxy when it comes to connecting to the internet (or any computers that are outside the domain).

This can be very frustrating at times, because you now need to jump through another hoop in order to get your work done.

I’m writing this article in the hopes that it will help someone in the future, should they come across a similar problem or even the exact problem. This article covers setting up automated builds with TeamCity and pulling down a git repository from Assembla – all while behind a corporate proxy.

The corporate proxy that is used in my case is squid proxy (a common choice these days).

TeamCity Setup

The usual way of setting up TeamCity is allowing the server and the agent/s to run under a system account. This allows you to avoid password changing problems (should the password for the user that you set to run the server and/or agent/s, change), which is very common in the corporate setting (with a normal minimum password reset required every 30 days or so).

Following the default settings I came across the following problem with nuget restore. When running nuget restore from TeamCity it would always log that it was starting the download but then it would say that the connection was closed by the remote host. This error message was not very useful to me.

I searched around for about 2 days and found a couple of ways to run the TeamCity server through a proxy, but was not able to find a way to apply this proxy route to the agent. The agent is where we actually need the proxy information be applied because the agent is the one that is running the build steps (in this case, nuget restore).

I then came across this stackoverflow question: http://stackoverflow.com/questions/21043355 and this was where I found an answer to the problem. It’s still not ideal, because basically what it means is that we need to make the agent run as a user on the domain.

Through my searches I also came across this stackoverflow question here and here. On the second link, I posted my own answer. The details in the answer is what I ended up doing and this worked for me.

If it possible (as it was my case) – get a user uses password does not expire on the domain. If at first they do not buy into this idea, you need to explain to them that by not having this in place you could run into problems further down the line for your automated builds, since each month (or whatever the password change policy is), the builds will start failing because it does not have access to run under the user that you have specified.

Git Setup

What we would like to do is use ssh over port 443, since port 22 (normal ssh port) is blocked for security reasons. One of the main reasons that I can think of is that port 22 is also used for FTPs.

I learnt that this was possible when I stumbled upon this stackoverflow question here and in particular look the answer provided here and here.

However, due to Assembla’s lack of documentation for using ssh through port 443, this task turned out to be more tricky than explained in the answer mentioned above. Luckily, I got the information from one of the support guys and have provided the details for you below.

  • The hostname to use is altssh.git.assembla.com (this reflects to IP: 64.25.188.37)

As such, following the information provided in the questions above what we can do is add the following to our ssh config file (located at: ~/.ssh/config – if you are on windows, simply open git bash and navigate to that folder)

OR

Once you’ve got this setup you can test the connection by running the following in git bash:

You’ll notice that it connects to the above mentioned IP address on port 443.

If you are lucky this will have solved your problem, if you are unlucky like me – you’ll get a connection timed out error.

Git Setup (Alternative 1)

If the above section doesn’t work, there is another option that you can try (which in my case also didn’t work and I needed to make changes to the proxy to allow this. You can see what I did for that in the section below titled: Proxy Changes)

You can try route the ssh traffic through the proxy using socat (a proxy client).

This requires you to download and install cygwin for windows (and also include the socat package – this can be down via the installer. If you need assistance with this, follow the guides on cygwin’s website)

There were a couple of methods that I came across (which I’ll list below) but by far the quickest way that I found was from this post here (i.e. Method 1)

Method 1

Following the link above from the post I mentioned you’ll notice that you need to make changes to the ssh config file. Here are the changes that I made:


Expanding the example


  • 10.10.10.10 – this is the actual proxy address and will be different in your case
  • 9418 – this is the port to communicate with on your proxy. In my case we are using 9418 (because this is how it was configured on the squid proxy – see this answer on stackoverflow for more information (it is important to make sure that the proxy is configured this way).
  • 8000 – the port that the proxy communicates on.

Method 2

The other method involves running socat through git rather than running all ssh connections through socat. You can find information on how to do this here

Important note. Make sure that the path to the socat file exists. If you’ve installed cygwin on a 64 bit machine you likely have the files sitting under C:\cygwin64 instead of C:\cygwin.

You can place the gitproxy.cmd file in any location, all that you need to do is when you run the command:

you need to provide the full path to the file. For example:

There is another example using socat from an .sh file which you can find here. The same information applies to this one. Make sure that cygwin’s bin folder is in your path for this to work (or change the socat in the file to be the full path – like with the previous example).

Proxy Changes

Finally, we managed to get the proxy and the server to play nice with each other.

Our investigations lead us to this web page here. One this page, it shows you that you can use ssh to ssh into another server as a proxy command. This basically means all we need to do is ssh into the proxy server from our server and viola! (Except not as easy as “viola!” as there are settings that need to be configured)

One of the most important configurations required for this to work (as you might notice from the web page linked above), is the presence of netcat (i.e. nc). Once you have installed (or confirmed that) netcat (is on) the server you will need to make changes to the ssh config file.


Expanding the example


You will notice that in our ProxyCommand we are now running the ssh command to connect to the proxy server directly using the user “user”.

By doing this when we run the test (namely running

) we will see that it asks us for a password. This password is the password for the user that you have provided in front of the @ in the ProxyCommand line.

You will notice that there is a -q after the ssh in the ProxyCommand line. This suppresses the “Killed by signal 1” message from the terminal of the ssh connection. You’ll find more information about this here.

Avoid using the password

To avoid using a password, simply create an ssh key for the user that you are using to ssh into the proxy server. Copy this key to the server that you are running the command from.

Using my previous examples as reference, create a key on 10.10.10.10 (the proxy server) for user “user”. Now copy this key to the server that you are running the “ssh -T -v git@git.assembla.com” command from.

This newly generated key must also be added to the authorized_keys in that user’s .ssh folder.

Once you have done this you will need to append your ssh config file with the following information:

This will make sure that when the ProxyCommand is run, the correct key (IdentityFile) is used for that host.

Final changes for TeamCity required

After you’ve gone through this entire ordeal, you might still be experiencing a problem with using the VCS from TeamCity (as I did). You might run into a situation where you receive a “Connection timed out” message when TeamCity tries to pull from your repository using the VCS settings.

Why this happens is beyond me. I can’t seem to find any information regarding it on the web.

I was able to come across the following link, which details how to change the TeamCity server proxy settings (via the environment settings). If that link helps you, that’s fantastic! Unfortunately, in my case it did not work.

There was another setting which I found that could be tried (but this also didn’t work). You can find the details for that here (there is an answer on this question which links to the TeamCity page which will explain how to make the required changes).

Finally, what I decided to do was to create a new build step (in TeamCity) that would run a “git pull origin master”. This is the first build step of course. This runs in a “hard-coded directory” which is then referenced as the path in all the other build steps.

If all of the above does not work for you and you would prefer not to specify the checkout folder directory in each build step after, I have some bad news for you. You will not be able to do a checkout using the git protocol. You will need to use HTTPS, which is explained in my final section.

This is of course to my knowledge. If anyone knows how to get it working beyond what I’ve mentioned in this post, please comment and let me know what you did to get it working.

If nothing above works for you

If all else fails (from the above) and you are unable to modify the proxy to allow the connections, there is one last saving grace.

This is simply to use https to clone the repo.

Of course, it’s still not just that simple, since we are behind the proxy. There is one additional change that you will need to make before you can clone out https.

You can see this answer on stackoverflow for more of the details.

Once you’ve made those changes you can simply do a git clone https://blahblah and you’ll be able to check out the code with your git username and password.

TeamCity Setup for HTTPS

In order to get this to work, you will need to set your fetch URL to the HTTPS version of the repo and then in the Authentication Mode section, select password.

In the username box, provide your username and in the password box your password.

Test the connection and all should be good to go now.