Geek Proud, GeekOut.

Posts tagged “Ubuntu

Development tools: Version Control

If you’re a developer you should already know about version control, however if you have never heard of it you may be wondering what it is all about or more importantly why is there an article on GeekOut about it. As a developer, it’s a critical tool for what I do and if you’re looking to get into development then you’re going to need to learn it. The fact is you may already use software that has version control integrated into it. Google Docs, Sheets and even Presentations have a built in version control system which enables you to not only see changes that you have made throughout the history of the document but also changes that other people have made that you have shared the document with.


Virtual Machines and Vagrant

If you remember a few weeks ago we did a piece on development tools. Well this week I want to expand on two in particular, why they are helpful and how you use them. To use Virtual Machines you need a fair bit of power, we would suggest you would not try this unless you have at least 8Gb of memory and at least 5Gb of disk space. While you’re reading this if you have not already go download and install VirtualBoxVagrant and optionally Atom for your machine. If you already have a preferred editor then don’t worry about Atom but all of the examples will be given using Atom. Throughout these tutorials look out for the following conventions.

  • Bold text – Indicates a button or input to enter into a programme
  • Monospaced - Indicates text to be entered into a terminal

Most of the applications that I build for the internet sit on machines running one form of Linux or another and I want to be sure that there is the minimal hassle when I deploy my application from my machine and onto the live box and this is where I use a virtual machine (VM). Having a virtual machine allows me to have a completely different operating system and manipulate it without putting my own system at risk. I have in the past (whilst using Windows) used it to install software which I am unsure about, maybe it would install spyware or a virus or trojan, well that’s no problem, all I would do is just delete the virtual machine and all of that is gone, for good. Virtual machines can also have saved states, so for instance if I wanted to upgrade a bit of software or make a major change to the system that I was unsure about. I can create a virtual machine and save a state before making the change, make the change and if it all goes horribly wrong I can just load the previous state. Think of it like a massive undo button. You might be interested to know that Microsoft provides free Virtual Machines of their operating systems with Internet Explorer installed which if you’re developing a web application on anything other than a Windows will help you debug issues in Internet Explorer. However, I will be showing you how to install Linux on one and then making that install a truckload easier with Vagrant.

By now you should have VirtualBox installed so let’s have a look at it.

VirtualBox Main Screen

VirtualBox Main Screen

This is the main screen where you can create a new VM. When we click New we get given a dialogue box so let’s go ahead and fill that in, give your machine a sensible name and then choose Linux and in my case I have chosen Ubuntu 64 bit if your not running a 64-bit system then you might want to choose 32bit here. Then you’re asked how much RAM do you want to give the virtual machine. This is why we advised that you at least have 8GB of Ram, let’s choose 1,512MB for our machine, next on the list is Hard Disk, from the options select “Create a virtual had disk now” and then select VDI and proceed once more to select that the size be “Dynamically allocated”. Next, you give the file a name and state how much space you need, we would advise going with about 8GB here. So with all of those changes made you will see that you now have one entry in your list.

VirtualBox Manager with one machine

Our new VM

We could start our machine right now but it’s got nothing to load. All we have done is create a virtual computer within your computer, we still need to install it with an operating system so let’s go and download Ubuntu 14.04.

Before we go any further you might be asking what is Ubuntu? Why choose Ubuntu? Why choose 14.04? Well, these would be three very good questions all of which I shall answer.

What is Ubuntu?

Ubuntu is a form of Linux.

Why choose Ubuntu?

It’s a very well respected and widely used form of Linux. It uses a lot of good stable bits of software and has a great amount of support. It is an excellent introduction to Linux if you have never used it before.

Why use 14.04?

As of the time of writing 14.04 is the current Long Term Service (LTS) edition, although we are expecting a new LTS to be released within the next few days/weeks. An LTS is very useful because it is supported for a much longer time than other versions, usually, the software that is released to it is less experimental too. I’m choosing an LTS just because I know as a professional it’s generally easier to administer which will make the next few tutorials a bit easier perhaps.

So let’s install it. Go back to VirtualBox and click on your newly created machine, then hit the Settings button. You will be presented with the following screen.


Follow these instructions

As the picture suggest click Storage and then the Empty cd on the left, finally by the CD on the right-hand side and then click Choose Virtual Disk file. When the file selector comes up go and find the file that you downloaded from Ubuntu which should be called “ubuntu-14.04.4-desktop-amd64.iso” and click OK. If you then click Start then your virtual machine should start to install by asking you a lot of questions about language. Go ahead and follow it through, I’m not actually going to install the system with you, we did this just to demonstrate that you can install any OS on your virtual machine. The great news is that if you do it wrong you can just delete or re-install the virtual machine without it breaking your current system. When I develop an app the first thing I do is put together a virtual machine to work with, I can either work on one machine per app or one machine for all apps. It’s often the case that certain apps need certain bits of software or a certain configuration and having to reconfigure a machine when you mess something up can be a total pain and this is where we introduce Vagrant.

Vagrant is a way that you can make multiple Virtual Machines, give each one go them a unique setup and be able to re-create that setup easily. If you have been following along then you should have already installed Vagrant. As a tool, it is a lot more developer focussed so things are going to get a little technical. First of all, I’ll let you have a think where on your hard drive you are going to put our little experiment. Me personally I have a directory called code in my home directory. Your task is to start a command line tool and then ensure that you are in the directory before you read on any further. I’d love to be able to take you through how to do that for your system but the Internet has multiple resources you can tap into for this and it would make this article about twice as long as it is.  Once in your command prompt in the directory you want to use type:

vagrant init

This will create a file called Vagrantfile which is basically a little text configuration file. If you installed Atom then you should be able to also just type:

atom Vagrantfile

Atom should start to edit the file, if not then start Atom and load the file into it.

There is a lot of information in this file and even  more in the Vagrant documentation but don’t worry too much about understanding it all immediately, you can read more docs in your spacetime by all means. The first thing we need to do is choose which Vagrant, box to install. The file suggests that we can search for one but I happen to know which one I want you to play with. change the line that reads = "base"

to = "ubuntu/trusty64"

Now highlight lines 46 to 52 and from the menu Click Edit > Toggle Comments which will turn the section from grey into some pretty colours. next, change the line that reads

vb.gui = true


vb.gui = false

Save the file but don’t close Atom and let’s try it out. Go back to your command line and check that you in the directory that has the Vagrantfile in and then type:

vagrant up --provider virtualbox

Did it break? Well have no fear we have prepared the file for you so you can just download our sample Vagrantfile, put it in place of the one that you have and try once again to start it by typing

vagrant up —-provider virtualbox

With any luck, your machine has now tried to connect to the internet and download the ubuntu image that we told it to. Once it’s done it will return you to a standard command line. It looks like it did something but also looks like nothing happened right? Well, you should now have a virtual machine running on your system. You can start VirtualBox and probably see it and even access it. From here on in we shall call this the Vagrant box.

There are a few points to note here.

  • When you restart your machine your Vagrant box does not automatically start too.
  • You can start, restart, alter, change and destroy your Vagrant box without causing any damage to your current system
  • It is possible to run a script to completely set up the Vagrant box how you like (guess what the next post in this series is going to be about)
  • You can (and should) shut down the Vagrant box when your not using it to get back memory and processor power.

This Vagrant box we installed is very basic and has no GUI and only the basic software on it. You can shut down the machine through VirtualBox or type this command in the same directory as the Vagrantfile:

vagrant halt

You can access it via VirtualBox, or on a command line again in the same directory you had the Vagrantfile by typing:

vagrant ssh

It’s here that we leave you to experiment for a bit. In the next post in this series, we are planning to get your Vagrant box configured and maybe even able to serve a really simple web application before we dive into the world of development in greater detail. In the meantime, we could really do with your feedback. Did you find this easy to follow? Should we do video tutorials for Mac, Linux and Windows? Let us know through the regular channels of comments on this post or Reddit, FaceBook or Twitter

Love and rockets
– Chris

The Matrix and More – Linux Talk

For those of you who love a silly little thing to do with Ubuntu, read on! For those who are just interested why on earth The Matrix is one of the things being discussed, go ahead and read on! Perhaps you’ll find that Linux isn’t as scary as you might have first thought.


Making YouTube Videos For Free

Are you the creative type who has been urging to create your very own masterpiece to go on YouTube? Perhaps you’re a gamer who has been looking to up the ante a little bit and take to the (small) big screen and go to YouTube? Do you want to learn how to make your own YouTube videos completely for free without fancy software? Then look no further, this is a beginners guide to making YouTube videos. All you require is your creative mind…

A common issue for people who are looking to start their journey on YouTube and other video sharing platforms is starting out. More specifically the finances required to set up a channel with good quality production. I don’t have a fancy computer and I certainly don’t have any high-value products for my recording. Instead, all of the software I got was for free and the equipment I have in today’s market must be worth no more than £100. So what will you need to begin your journey if you’re looking to make YouTube videos? How do I make mine since I’m on Linux? This is a journey into Open Source Software doing what it does best: Surprise people.


Game Design with Timlah – 3D Models

As I’ve been working towards the game I’m making, which now has a working title (Search Within), I decided that since I’m making a 3D game with 2D sprites, the thing that’s going to take the most time is all of the the 3D Models that are going to be in the game.

One tricky little bit I’m perceiving is the X Y Z axis of a 3D model compared to the XY axis of a 2D model. An interesting point with this is that even all of the objects could potentially be bigger than the sprites. But, I thought I’d look at the modelling software Blender and show people the process of using Blender to make a single 3D Model. In the last Game Design with Timlah, we looked at the free assets on the Unity asset store.


Linux Gaming

After a conversation brought up on a fantastic post, I thought I’d talk about gaming on Linux. So before we delve too deep into what games are available, let’s talk about what Linux is, what is the point of Linux, what are the benefits (And the negatives) of using Linux and how you can get started.

My Linux distribution

At the time of writing, I’m not using the optimal distribution for my Linux build. I run a Linux-based Operating System (OS) called Ubuntu and I’m running Ubuntu 12.04 (Precise Pangolin). Now you might be wondering “What the heck does a Precise Pangolin have to do with this?” – Each major revision of Ubuntu has a codename, this one happens to be Precise Pangolin. Perfect.

I picked this build as it was the Ubuntu Long-Term Support (LTS) which means that if anything goes wrong, your build will be supported officially. The LTS lasts for 2 years before it goes onto the next LTS (So the next one will be version 14.04, set to come out this year). Now, this might be a lot of jargon for people who don’t know what Linux is all about or what it can do for gaming. Carry on below!


My hardware is pretty outdated in all fairness. I have a GeForce 9600 GX graphics card with 4GB of RAM. I run an Intel i3 which is overclocked at 4ghz p/core and with a 750w Power Supply Unit (PSU). I use a 7200RPM 126GB HDD, but I’ve got a 500GB one just… Sat here… Doing nothing!

So my hardware isn’t very well optimised by any stretch of the imagination. So how can I do gaming!? Well, on this rig, which wouldn’t be too expensive to buy now-a-days (£200ish, I’d wager!) I was even able to play games such as Skyrim. So don’t think “My computer is too old for gaming” – ever! Unless your computer cannot run a modern operating system. With this being said…

My transition to Linux

Tux, the Linux mascot.

My transition to Linux was met mostly with me being really stubborn, unwilling to move and over glorifying Windows. Let me break this down, though:

I started with praising Windows and Microsoft in general. I was saying how “Windows has made it all easy” to which the response to me would always be “Yes, but you also don’t know enough of what’s going on.” To me, that didn’t matter. Computing was easy with Windows and that is where everyone was, so why should I go to something that might require a few more seconds of set up time and it’s less popular?

I decided though, that I’d give this whole “Linux malarkey” a try, since hey, I call myself a technology lover! So, I boot up a virtual machine and I get a hold of this one called “Ubuntu”, which just so happens to be the most popular (Citation needed) distribution of Linux. I grabbed myself some software to run a virtual machine (VirtualBox) and grabbed an Ubuntu iso.

Please note: This software is free and open source, hence I was able to grab an ISO, which is one of the ways the developers distribute their operating system. Don’t believe me? for more information.

The day Windows collapsed (For me)

Windows 8 had been released and I didn’t like the way it looked, not one bit. I was playing on my computer as per usual, when suddenly and dramatically, it gave me the dreaded Blue Screen of Death! Cue the dramatic music. Yes, it all happened around the time Windows 8 was released – But I’m not blaming Windows 8 for anything, it literally just happened that way.

So, after some examination, I decided: “I need to reinstall Windows.” – It was pretty far gone. Memory issues (not hard drive space, but issues allocating memory properly.) No idea how it managed to get that bad, not my magical Windows… But, I didn’t have my Windows 7 disk. This wasn’t looking good. Head in my hands, I looked at… It. That Ubuntu distribution which I had also put onto a pen drive in the month – Just because it was so easy…

Reformat. Boot from USB… And there it was.

The Ubuntu installation wizard was there in front of me… And it is no harder than installing Windows. In other words, it was very easy.

See? It even tells you what you have and don’t have. -Disclaimer- This was taken from

Why I have not gone back

Several reasons:

From a really intuitive command line (Typing sudo apt-get install (Package name) will search repositories for any package by that name and will then proceed to install it) to a very customisable operating system, Linux/Ubuntu is a techies heaven. With all the source code editable, you can do whatever you want to do with your computer. This, to me, made it very appealing.

But what about all the games I lost out on? Sure, there have been a number, including the phenominal Saints Row 4 (I am a big fan of the Saints Row series)… But, we know there has been a shift for more Linux gamers recently.

A request

I’m one man. Statistically, that makes me irrelevant. I understand this, but if you’re a developer and you’re reading this, I’m not going to tell you to “Produce games only for Linux”. I’m going to ask you, instead, “Please, consider making your game available on Linux as well as Windows and Mac.”

I won’t pretend to know everything about porting your game, as I barely know anything at all about such things! However, there are lots of resources for porting your game over to Linux now-a-days. With this being said, I won’t keep on at you all if your game isn’t on Linux, it’s not for everyone and the world understands. It doesn’t matter what language you use, for the most part, there are ways to port your game over… And I, a Linux gamer, would be incredibly interested to hear from you if you’re planning a Linux port!

My personal Steam list

When I started on Ubuntu, Valve just announced and released Steam for Ubuntu. This was an incredible turn of events for me and when I started, I only had around 10 of my roughly 100 games for Linux. It was quite a sad time, but hey, I persevered and I am glad I did.

Now, as you can see, I have quite a filling list… A lot of these games: I’ve yet to play!

My steam library - Well, a fair bit of it. 54 of my 121 games are available on Linux.

My steam library – Well, a fair bit of it. 54 of my 121 games are available on Linux.

If you think you see a game on that list you’d like to see reviewed on this site, let me know and I’ll do it for you guys. Just for you guys. Don’t tell anyone else. Okay, tell everyone else.

Let me know what you’d like to see and if you’d like to see more information on Ubuntu, please do visit . More free open source software is a great thing, but if you do end up downloading Ubuntu and enjoying it, please consider donating to them, as it helps keep them going. It gets them coffee in the mornings to develop nice apps and updates to your computers for free.

One thing to note, a majority of my games are what are considered “Indie” games. Take what you will from that, I’ll review whatever is on the list.

The other games on my list (not many more) are:

  • Rush
  • Secret of the Magic Crystal (I was gifted this. Oh boy.)
  • Snapshot
  • Space Pirates and Zombies (When I first tried, it crashed first time… I’m sure I can get it to work)
  • Strike Suit Zero
  • Super Hexagon
  • Superfrog HD
  • Surgeon Simulator 2013
  • Team Fortress 2
  • Thomas Was Alone
  • Toki Tori
  • Trine 2
  • Worms Reloaded

Thanks to all the readers who make this worthwhile :) You rock.