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!

TeamCity on Azure Windows Server

You’ve recently installed TeamCity on your Azure Windows Server and would like to access the TeamCity page from a remote computer. However, you are getting a timeout error when you try to access this page from the remote computer. What gives?

Firstly, let me just point you to these two resources for getting started with Azure Windows Server and TeamCity installations.

For the Windows Server setup, there is a tutorial video that you can watch on the Azure Portal. Navigate to: https://portal.azure.com/ and you will see the following on your dashboard.

azure-dashboard

Once you select Virtual Machines you see the tutorial to get started with Windows Server on Azure.

Next, for TeamCity installation instructions, this can be found on the main website here:  https://confluence.jetbrains.com/display/TCD10/Installing+and+Configuring+the+TeamCity+Server

Once you’ve installed TeamCity, you’d like to access it from a remote computer, as mentioned previous, however, you can’t because the web page keeps timing out. I experienced the same problem and below I’ve got the solution for you to save you some headache (as I had).

While searching around for why this was happening, I found this article here: http://www.danmusk.com/setting-up-teamcity-8-on-an-azure-virtual-machine/. It seems extremely promising, until I realized that it appears to be out of date, and Microsoft have made some major changes to the way that they have the UI structured to achieved what is mentioned in the article.

In a nutshell, what we need to do is configure the port to be accessible from a public facing computer (i.e. the remote that you are trying to connect from). From the Azure environment, this is handled slightly differently than a traditional server where you would just configure the router/hub/switch and the server’s firewall settings. Once you know where to find the configuration, it is much simpler than doing it the traditional way (as one would hope for cloud hosted solutions).

Let me walk you through the steps to get this configured.

Please note that this “tutorial” is for the UI version of Azure as at April 2017. If you are reading this in the future and do not see any of the components that I am talking about, Microsoft may have changed the way that you need to navigate to the setting in order to get this configured. Hopefully, the explanation that is provided here is enough to help you regardless of the UI.

On your dashboard you should see the followingazure-dashboard-2

Note the Network Security Group. This is the one that you need to click on.

Once there you will see a overview page similar to the one below (note that the TeamCity line will be missing in your case, since it has not been set up yet). (Click on the image if it is too small)

nsg

From the side menu, select Inbound Security Rules and you will see an option to add a new Security Rule.

nsg-new

Once you select Add, you will be able to fill in the details that pertain to your TeamCity instance. Enter the port number that you used when installing TeamCity and you will now be able to connect to your TeamCity instance from a remote computer.

Ensure gitignore ignores files correctly

Introduction

In this tutorial we’ll take a look at how to get gitignore to ignore files correctly when it seems that it is not ignoring the files that you have specified in the .gitignore file.

Let’s examine why this would happen.

gitignore will only ignore files that are not currently under source control. This means that if a file was committed before it was added to the .gitignore file, it will continue to track the changes of this file.

This is the basic principle of how gitignore works.

It is good practise to always update your .gitignore file before you commit any files that you do not want or need under source control. These files are commonly binaries, executables or any generated files that are automatically created when you build a project.

There may be cases where unwanted code is checked-in by mistake with the inital commit or subsequent commits. This is when our described problem will arise. No matter how many times you try to specify the file in the .gitignore file, it will always remain in the staging area.

Prerequisite Knowledge Assumed

The below resolution example makes use of the following software’s

  • git
  • git extensions

If you are unfamiliar with git extensions, there is a section right at the bottom that contains just the git commits that are required to resolve the problem.

Resolution

Steps that are required to resolve this problem:

  1. Remove the files that you do not want tracked by source control, from git
    1. You can do this by running “git rm -r –cached file/s
  2. Commit these removed files
  3. Update .gitignore file
  4. Commit .gitignore file

Let’s walk through the following example to expand exactly what you need to do for each

You’ve got a new repo that has just been created. You’re super excited about your new repo and this is the view that you have in git extensions:

When you go to commit you see the following:

From here you decide to stage all the files without adding the files in the bin folder to the .gitignore file.

So you stage all the files and hit commit.

Changes have now been made to your normal.code file and as a result the auto.gen file has been updated. When you go to the commit screen you now see the following:

At this point you realise that you don’t want the auto.gen file or any files from the bin directory to be committed to source control. When you try to add the bin directory to the .gitignore file it doesn’t seem to work, since the staging area looks like the image below:

Point 1 implemented

This is where you will need to implement point 1 (as discussed above).

To do this, open git bash and navigate to the repo.

Once here, run the following command:

See image below:

As you can see, the two files in the bin directory were removed.

When we return to git extensions and refresh the staging area we see the following:

As you can see from the above image, the two bin files have been marked as “deleted“. The files have not physically been deleted. They have simply been removed from git’s tracking.

Point 2 implemented

Now we need to commit these removed files so that git will no longer track changes made to these files

After you have committed these files your git extension will look something like this:

Point 3 implemented

You can now update the .gitignore file to add any additional files that you would like to ignore. For the purpose of these example, we do not need to add any more contents to the .gitignore file as we have already specified all the bin files in the .gitignore file.

Point 4 implemented

You can now commit the .gitignore file and git will never track any files in the bin folder.

Simple git commands to resolve

If you are unfirmaliar with git extensions you can simply execute the following git commands to resolve the problem:

See the below images for the full example

How to use basic handlebars (handlebars.js)

Basic steps

In this article we will take a look at creating a basic handlebars file and making use of it in your html page. There are a few basic steps to use handlebars that we need to follow.

  1. Create the handlebars template file
  2. Get (or make up) data that will be used to populate the handlebars template
  3. Make sure to wrap the data in an opts where you can append the containerSelector (explained more below)
  4. Create a method that will do the injection of the data
    1. This method will also place the handlebars template onto your page

The code used in this article is simply for example purposes.

A full html page will be provided at the bottom for reference. For the sake of the example, all the code will be inside of the one html page; however you would likely want to have these components separated out as good coding practices dictate. When it comes to split out the code into different files, remember to include all the files in the main html page. An example will be shown at the bottom as well.

1. Create handlebars file

There are three things that can be noted here.

  1. We put an ID on the script tag – “handlebarsTemplateExample”. This will be used as our template selector which will be discuss below.
  2. We are creating HTML in the script tags (this is how handlebars works).
  3. We have this weird notation of “{{” and “}}”. These are variables which handlebars uses to bind information. Similar to AngularJS.

2. Get data for handlebars to inject

For this basic example we will simply make up some data. Ideally you would want to get this data from an ajax call or something similar.

3. Wrap data in opts

Since all of this is done in JavaScript it makes it easier for us to manage our code if we wrap all of our arguments into an “options” variable which is usually shortened to “opts”.

Opts is simply the parameters that we are going to be passing to the method. It is easier to say: “myMethod(opts)” if there are plenty of arguments that you want to pass to the method as opposed to: “myMethod(arg1, arg2, arg3….)”.

Making use of opts is also a better JavaScript practice as you can easily determine what each of the parameters are referring too. You can take a look at these two articles for more information on that (since this is a whole other discussion):

  1. http://stackoverflow.com/questions/12826977/multiple-arguments-vs-options-object
  2. http://stackoverflow.com/questions/4893642/javascript-passing-arguments-to-function

So let’s make the “wrapper”

In the above code block you will see that we have added templateSelector and containerSelector to our opts object.

  • templateSelector will be used to determine where we get our source from (i.e. the handlebars template)
  • conatinerSelector will be used to inject the result of the handlebars into a div on your page. This means that you would need to have a div (with an ID of “insertDataHere” (in this example) on your html page). You can see the full html page below if you are confused.

4. Create method to do handlebars injection

This is the final step to get your basic handlebars up and running. We will now make the basic handlebars injection method.

The code above is quite simple. Let’s break it down line by line.

This takes the html from the templateSelector and stores it in a variable called source. This would mean that it contains our html where we have defined: {{data.header}} and {{data.information}}.

Now that we have the basic handlebars “template” (inside source), let’s create the actual handlebars template by compiling the source. The result is stored in template.

This line is where the magic happens. Now that we have a compiled handlebars template we can send the template our data. The variable “data” must contain “header” and “information”. If it does not, these items will not be bound to the template. This matches the names that we gave our data injection variables between the “{{” and “}}” in our handlebars file.
Lastly we put our completed template (which is stored inside html as per the previous line; with its data injected in) inside of our div on the main html page.

You have now created a basic handlebars template and injected it into your html. Please see the below code for the full reference.

Full one page HTML

Remember you can also always download the files and not use the HTTP address for the script/s.

References to remember when splitting out files

Output

Here is a screen shot of the result

blog-handlebars-example

UPDATE/EDIT

Previously I had mentioned that you could extract the handlebars template out of the html file. Your external reference would look like this:

This will not work, because there is one thing that I forgot to mention. The extracted handlebars file needs to be inside of an HTML file. This is because a .js file does not register “<script>” tags.

This means that you would need to load the HTML page into your other HTML page. This is just a simple way of extracting the handlebars file out into another file; it is however not the most pleasant way of doing it. For the simplicity of this tutorial I would recommend that you rather keep the handlebars script in your HTML file and not split this into another file.

If you do wish to split it into another file this is how you would do so:

Furthermore, in your HTML page you will need to add the following