Essential Free Software For A New Build

Recently one of my hard drives decided to die on me, unfortunately it happened to be the one with the operating system on. After getting a new drive (Samsung Evo 840) and installing a fresh copy of windows 7 professional I had no idea where to start, it’s been so long since I started from scratch. Therefore I decided to compile a list of ‘essential’ pieces of software I couldn’t live without, here it is:

1) Avast Anti-Virus Software (

This piece of software is the best free anti-virus I have come across. It has a very quick and easy install and gives you a justified sense of security along with a ‘Everything is good’ message every time you hover over the tray icon. It even speaks to you if you want!


2) Chrome (

No matter what browser you prefer there is no disputing that chrome is fast and easy to use, therefore making it the perfect basis for getting everything we need.

3) 7-Zip (

Space is valuable these days and more and more software companies are compressing there installers for faster download speeds and decreased bandwidth usage. For that reason it’s important to have software that is able to de-compress these packages. 7-Zip is my tool of choic for this.


4) VLC Media Player (

Media is stored in all different formats now, and there comes a point where windows media player just can’t hack it anymore. That’s when VLC comes in. Straight from the download it will support and play a huge variety of file types and with an active community it’s rare that you will find a file that won’t play.

 5)  Dropbox (

Whilst most of you may be saying “but that’s an online service”, and you’d be right, however it’s software allows instantaneous syncing of files and folders from within windows explorer. This makes it much quicker to keep folder structures and still have them on the cloud.

6)*** Spotify (

If you enjoy music as much as I do this is a must have so that you can have your tunes on in the background while installing all of this software. A premium membership is a mere £10 a month and gives you access to millions of songs!

*** = Not essential but makes for a happier user

This should get most people by however I will be writing one for developers and one for designers in the near future.

Sharing Videos With Dropbox

Recently I had the need to share a video with someone who wasn’t on Facebook. Normally this wouldn’t be a problem and I would just use WhatsApp to send them the video. However because the video had been edited it was on my computer and getting it to my phone would take precious time.

The simple alternative is…

It’s easy to create an account and a great way to store and share things. To share the video I simply created a new folder by logging into my account and navigating to the following button (highlighted in yellow): 


Then I named the folder something appropriate and navigated inside it by double clicking it in the folder view you should be presented with after logging in. Dropbox supports the dragging and dropping of files so I simply dragged the file from my desktop and dropped it into the empty folder on Dropbox. Then to share you simply need to right click the file in the Dropbox folder and select share link, shown below..


Then copy and paste the link given and give to anyone you dare to share the video with! Hope you enjoyed.

Pythagoras’ Theorem In APL

Below is Pythagoras’ theorem interpreted into APL. To the left of the function simply enter a 2 element numeric vector for example 3 4 and to the right enter a scalar for example 10.

Pythagoras Theorum APL

A result of 1 means the triangle is right angled, a result of zero means it is not a right angled triangle.

The left vector represents the two shortest legs of the triangle and the right scalar represents the hypotenuse. Below are a couple of examples:

Pythag proof APL

Give it a try…

How To Fix Moodle’s Re-Direct and Access Issues

Recently I have been experimenting with Moodle and I have to say I have been impressed. However the installation was less than straight forward for me. The actual installer was very simple to follow however the bugs that proceeded were a nightmare.

The first error I came across was one which prevented me from going anywhere but my personal profile page. This is the re-direct bug. A picture of the screen displayed in chrome can be found below:


This error is fairly straight forward to fix however it did take some research. Anyway to amend this and access Moodle simply navigate to:


And open in a program such as notepad++. Then find this line (line 795 for me) in the text:

redirect($CFG->wwwroot, get_string(‘wwwrootmismatch’, ‘error’, $CFG->wwwroot), 3);

And replace it with this one:

redirect($CFG->wwwroot, get_string(‘wwwrootmismatch’, ‘error’, $CFG->wwwroot), 0);

This should fix the issue and you should now have a fully accessible site. SHOULD. But I didn’t… When trying to access the site from another computer (which was also inside the network) I got this error:


This error also required some hunting to find a solution but eventually a definitive one was found… Delete the moodledata folder. Please make backups and I am not liable for any damages or loss of data on your systems. This solved the problems for me.

There was one last issue that I run into however it was purely because of how I was hosting the site and how people were accessing this but just in case I will explain: after all of these solutions had been applied some people were just receiving a blank screen when punching in the IP of the hosting machine.

The solution to this is to navigate to:


Then open with a program such as Notepad++. Then locate the following line (line 20 for me):

$CFG->wwwroot   = ‘http://localhost';

And change it for this line where ‘*.*.*.*’ is replaced with the IP of your hosting machine:

$CFG->wwwroot   = ‘http://*.*.*.*';

I hope this resolves issues for some of you using Moodle, once it’s working it is incredibly powerful and well made however getting to that stage was a bit of a mission for me.

The Final Day

Sorry for the belated post I was resting my brain. The final day was a learning experience however more to do with implementing the knowledge we had already learnt.

What a journey this course has been. A very challenging experience however I have obtained an incredible amount of understanding in the past 5 days. Our teacher was very knowledgeable and understanding and provided an education that can not be faulted.

Our last day consisted of the following topics:

  • Nested matrix’s and arrays and the bizarre results you sometimes obtain from them.
  • Enclosing and disclosing variables
  • Mixing and splitting variables
  • The lamination symbol and how to use it
  • Using the display function effectively
  • Checking the depth of variables

The course has been intense both in pace and content and in turn we have quickly developed a basic understanding of APL. However we have only scratched the surface in terms of using it and it’s potential. I look forward to learning more and more about this language and how it can be used.

The Fourth Day

Although every day has been interesting today held a particular interest for me. Today we were learning about traditional loops in APL such as For, Repeat Until etc… However before we learnt about these loops we were asked to perform a task seemingly only possible with loops, without any. I found the solution and compared it with a loop version I created. There was no difference. It shows that just because you know how to perform an operation you shouldn’t be narrow minded and should sometimes take a step back to look at the problem.

Anyway. Today produced the most challenging exercises. The culprit being inner and outer products. Here is what we learned today:

  • The jot symbol and how it is used and associated with the outer product.
  • The calculation and meanings of inner products.
  • Expanded on the operators we already used as well as learning new ones.
  • The use of scope with operators.
  • More on the rotation of vectors and matrix’s.
  • How to use dot products effectively.
  • Searching for character vectors in matrix’s and vectors.
  • Putting the idea of a zero populated matrix into use.
  • The unique symbol.

Although the bulleted list is not as populated as other days’ posts the theory behind the concepts that we learnt today required by far the most attention and even more time to implement them in a useful function.

The Third Day

Firstly apologies for the lack of a post summarizing yesterday’s lessons I was enjoying a delicious Chinese buffet. Without further hesitation here is again a summary of the techniques and idea that we learnt today (yesterday):

  • Membership and how it differs to finding items using a binary condition approach. 
  • The dyadic use of iota and how this compares to using membership to find items.
  • The rotational features of APL.
  • The use of AND, OR, NAND, NOR and XOR.
  • How to use comma bar and why it is so useful.
  • The idea of having empty vectors and the zero tilde symbol.
  • The symbols used to quickly operate on the first dimension of a variable.
  • We had a brief introduction to direct functions.
  • Compression using the results of binary expressions.
  • Some more formatting using binary.

That is all I can remember at the moment however as I said in an earlier post I am writing up a complete set of notes which I will publish at the end of the course and will include notes on every symbol I learn.

Also after the course I will start publishing some of the programs written during the course with explanations on how we learnt to optimize them.