Crapple - Think Different

I Think Mac is Goofy

My employer has given me a Mac, a MacBook Pro to be specific. I haven’t updated my blog in a while so I thought I would use this as an opportunity to make a new post and get used to the keyboard. The thing is, I’ve been using a Mac for a while, on a daily basis. Not as long as I’ve used Linux or Windows, but enough so that I can form an opinion – and the conclusion I have come to is that Macs are goofy.

I know some people who read this are already angry and I don’t care. This is my opinion and of course, everyone has different tastes. I’d like to mention that I don’t think I’m a fanboy or a hater – I use the best tool for the job. Windows is best for gaming, Linux is best for web servers, and Mac OS is good for… uh, developing iOS apps. I’ve found that none of these OS’s have any superior advantage over the other, generally speaking.

So what makes Mac OS X goofy? Well I think it’s Apple’s desire to live up to their “Think Different” slogan. Let me explain with a few examples. The first is scrolling. Mac has a default setting called (un)natural scrolling. What this means, is by default, when you scroll your mousewheel down, or use two fingers on a touchpad and move them down, the page or content you are viewing moves down with it. This feels wrong the first time you do it and it continues to feel wrong when you use Windows and Linux as much as you do on Mac. The first thing I do when I get a new Mac is reverse this setting so the scrolling behavior is consistent with the other two operating systems.

Another example and setting that I change immediately – the control and command keys. On Windows and Linux and you press CTRL + C to copy something. On Mac it’s COMMAND + C. Why? Every time I use a Mac for the first time and try to copy something with CTRL, I feel like a goof. I have to think differently (see what I did there) in order to do something as simple as copying and pasting. Luckily Apple must think deep down they’re wrong and they allow you to swap the function of both these keys.

I think the above two issues would be fixed if they were consistent with the other two operating systems. Then again, I’m sure some trendy goofs have gotten used to doing Apple’s way of things, so it could just be a matter of preference.

Window management is something that needs improvement too. Windows has this nailed down pretty much perfectly. On Windows, you know exactly what programs you have open and where those Windows are. On Mac, when you press the red button in the top left, it only closes the window and not the program itself. So now you have a program running in the background eating up memory unnecessarily. On top of that, try finding the window you want for a program you have open. I usually have around 3 Finder windows open when I am working and it’s always difficult to find the one that I need. The only way I can get to the right one is to use Mission Control and attempt to click on the window that I think is the one I want.

Whilst I’m on the subject of Mission Control – what a mess! The arrangement of the windows are never consistent and like I said before, I have to guess which window I am getting when I have multiple windows open for the same program. It might make it a little easier if you could rearrange this screen, but that’s only a small step towards making Mac a little less goofy.

Doing something similar to what Windows does would fix the above issues with windows. When you click on a program’s icon, it could popup a small display, similar to what shows up when you hover over program icon in Windows. This popup would show a preview of the windows open, making it easier to get to what you want.

There are a lot of other little things that I dislike that make using the operating system feel weird, but I won’t go into everything right now. Despite what I have said, OS X isn’t terrible. It’s built on a solid foundation and there are a lot of things that are very easy to use. With some tweaking to a few of the features, I think OS X would feel a lot less silly at times. That and a huge reduction in the price, one of the larger issues that stop me from actually buying my own Mac.

Posted in Opinions | Tagged , , | Leave a comment

Setting up a LAMP Server with CentOS Part 3

This is the final post on setting up a LAMP server with CentOS. If you haven’t done so already, please read part 1, which shows you how to set up the three main components of a LAMP server, and part 2 which shows you how to configure your set up. In part 3, I will talk about automating part 2 by writing bash scripts to make adding new users easier and installing phpMyAdmin.

Adding a User

The first thing we will want to be able to do is add a user. If you remember the steps in part 2, it took quite a while. In fact it took a whole blog post! Here is a bash script I wrote to make adding a user easier:


MYSQL=`which mysql`

# clear db script

#add the user with their username as password
# -m means create the home directory if it does not exist
useradd -m $1

# set the password to be the same as the username
echo $1 | passwd $1 --stdin

# create public_html folder and set permissions
mkdir $HOME_DIR$1/public_html
chown $1 $HOME_DIR$1/public_html

# copy a hello world php file
cp index.php $HOME_DIR$1/public_html/index.php
chown $1 $HOME_DIR$1/public_html/index.php

# create sftp dir
mkdir $HOME_DIR$1/sftp

# set permissions
chmod 755 $HOME_DIR$1

# write sql script to add user and database
echo "GRANT USAGE ON *.* TO [email protected] IDENTIFIED BY '$1';" >> $SQLSCRIPT
echo "GRANT ALL PRIVILEGES ON $1.* TO [email protected];" >> $SQLSCRIPT

# run mysql script
echo "Enter the mysql root user password."
$MYSQL -u root -p -e "source $SQLSCRIPT"
echo "Added user $1, created web space and added database."

Save this script as ‘’. To use the script, open a terminal and type:

sh username

Replace username with the username you wish to add. I have added comments in the script so that you know what each line does. Essentially it is running the same commands we ran in part 2, the only minor difference is that the SQL is output to an SQL to a file which is then imported through the mysql command. You will need your database root password. I had to set a variable called ‘HOME_DIR’ which points to the home directory on Linux. There is probably an easier way to find the system’s home directory. The reason I did this is because the physical machine that I needed to run these scripts on had the home directory located at /export/home which is different from the standard /home.

Files that need to be created before you run the script

You may need to create the (blank) ‘adduser.sql’ file, I am not sure if the script does that automatically. You will also have to create an ‘index.php’ file. This is a good file to create to test whether the page loads (permissions set correctly) and if PHP is working properly (it should detect it’s a php file and run it). For my ‘index.php’ all I have is a simple echo statement saying ‘Hello World’. You can have something different if you want, perhaps a welcome page.

Check to see if it worked!

To check to see if the script worked, you should be able to visit http://yourhost/~username and you should see the ‘index.php’ file you created. If not, make sure the script ran properly with no errors. If there were no errors, there could be a problem with your setup, most likely to do with permissions. Like most things Linux related, this could be almost anything due to varying configurations, so I won’t go into any troubleshooting tips here. I’m afraid you’re on your own (or with Google) for that one!

Removing a user

Here is the bash script I wrote to remove a user. As you will see, it pretty much does the opposite of what adding a user does.


MYSQL=`which mysql`

echo "Delete user $1? WARNING: You cannot undo this!"
echo "Type 'yes' to remove."
read answer

if [ "$answer" = "yes" ]; then

        # clear sql script
        echo > $SQLSCRIPT

        chown $1. $HOME_DIR$1
        chgrp -R nobody $HOME_DIR$1
        userdel -r $1

        echo "DROP USER [email protected];" >> $SQLSCRIPT

        # run sql script
        echo "Enter the mysql root user password."
        $MYSQL -u root -p -e "source $SQLSCRIPT"

        echo "User $1 deleted and database removed."

        echo "OK, user not deleted."

Using the remove user script is as simple as adding one. Simply type:

sh username

Make sure to type ‘yes’ and not just ‘y’ to confirm removing a user.

Required files

You may also need to create a blank ‘removeuser.sql’ file, in case the script does not generate it. In fact, I recommend doing so as we are dealing with deleting stuff, which is potentially more troublesome than creating stuff.

If everything goes according to plan, you should see a message stating that the user was deleted and no other error messages. Again you will need your MySQL root user password.


Some users won’t want to deal with MySQL through the command line, but thankfully phpMyAdmin is a great solution for this. There are a few different ways to install phpMyAdmin and I recently discovered that you can install it with the package manager ‘yum’. The command to do this would be:

yum install phpmyadmin

Since I did not know this, I will briefly explain how to manually install phpMyAdmin. It is actually incredibly simple, the first thing you have to do is download the latest version from the web site.

The next thing you’ll want to do is extract the files to ‘/var/www/html’. The folder should be named something like ‘phpMyAdmin-4.1.9-all-languages’. You should rename this to ‘phpmyadmin’ (all lowercase) by typing:

mv /var/www/html/phpMyAdmin-4.1.9-all-languages phpmyadmin

You should now be able to visit ‘http://yourhost/phpmyadmin’. This will load phpMyAdmin and everything should be ready to go. You should see a login form which is linked with your MySQL users. You can try it by logging in as root, or testing it with the user you created earlier with the bash script/commands.

If you get any errors with phpMyAdmin, it may be because certain packages for PHP need to be installed or enabled/compiled with PHP. A quick Googling will help you with this, and again, since everyone’s Linux distro varies, I don’t know what packages will need to be installed and it would be out of the scope of this tutorial to cover them all. I will say however, that after you have installed a PHP package, make sure to restart Apache. Remember the command for this is:

service httpd restart


If you have followed all three tutorials, you should now have a LAMP server set up. You should also be able to add users easily with a bash script (and just as easily remove them) that will give them their own user directory on Apache as well as one MySQL database to work with. The setup isn’t perfect and there are some security holes as well as missing features, but this should give you a taste of what it is like to be a web server admin.

Posted in Undergraduate Research | Tagged , , , , , , | Leave a comment

Setting up LAMP Server with CentOS Part 2

In a previous post I wrote a tutorial for quickly setting up a LAMP server. One of the reasons you might want to do this is to create a web hosting server. If you follow the steps in the article, then right now only you can upload files to the server. This post will talk about setting up users, configuring Apache to allow user directories, giving users access to one MySQL database and setting up SFTP access. If you’ve used web hosting before, you’ll find this feature list pretty bare by comparison, but again, since this is just undergraduate research, I am only doing this for the purpose of learning.

Set Up User Directories in Apache

User directories in Apache is what allows you to have multiple users with their own web space on your web server. Visitors will be able to navigate to to visit their site. This feature is disabled by default, however it is a simple edit of the config file to enable it. To do so, open the Apache config file in your favorite text editor. On CentOS, this file is located here (by default):


Open this file and around line 374 you should see something like:

<IfModule mod_userdir.c>
     UserDir disabled root
     UserDir public_html

It may be commented out with ‘#’, in which case all you would need to do is remove the ‘#’ in front of the above 4 lines. What the above code will do will enable user directories and if any of your users have a public_html folder, that will be the root of the web space. Once you have uncommented these lines, you will need to restart Apache for the changes to take effect. Do this by typing:

service httpd restart

To test if it worked, we will need to create an index.html file inside your public_html folder. Navigate to your home directory, usually located at /home/username. Then make a folder called ‘public_html’. To do this type (replace username with your own username):

cd /home/username
mkdir pubilc_html
cd public_html
touch index.html

Now open up index.html in your favorite text editor. You can put anything in the HTML file if know HTML already, but in case you don’t, or need a quick refresher, here is a basic HTML page:

<!doctype html>
     <title>Welcome to my web site!</title>



<p>If you can see this, then I have successfully created user directories with Apache! Woohoo!</p>



Now you should be able to navigate to http://yourserver/~username and you will see the above web page that you created. The ‘~’ is required with the way we have set up Apache, however it is possible to set Apache up in a way so you don’t need it. That is out of the scope of this tutorial, as is HTML.

If you would like to test that PHP is working, you can create a .php file and write whatever test code you want in it. You could choose to echo something, or run the phpinfo(); function. In the real world, if you used phpinfo(); make sure to delete the script once you have finished tesing, as phpinfo(); reveals a lot of information about your server, which is useful to hackers 😉

403 Error Forbidden

If you get an error 403, it means there is a permissions problem. This is fairly easy to solve, it just means setting the user directory on Linux permissions to 755. To do this type:

chmod 755 /home/username

Replacing username with your own username. Later on I will show you how to automate this process with a bash script (since the whole point is to have multiple users).

SFTP Access

Since you will have multiple users and not all of them will want to use Linux/SSH to manage their files, we will need to set up remote access through SFTP. SFTP stands for Secure File Transfer Protocol. It’s pretty much the same thing as FTP, except that it is more secure! This is the recommended way to transfer files, but if you’ve used web hosting before, especially shared hosting, you will find that a lot of them allow FTP as well.

To enable SFTP access you will need to modify the SSH config file, which on CentOS is usually located here:


Find the line that says:

Subsystem       sftp    /usr/libexec/openssh/sftp-server

and comment it out by adding a ‘#’ before it. Then add the following line underneath it:

Subsystem       sftp    internal-sftp

Next, save and close the config file and restart the SSH service by typing:

service sshd restart

The next thing we need to do is create a working directory for SFTP in the user’s home folder. To do this type:

cd /home/username
mkdir sftp

The next thing we will need to do is test the connection. We can do this on another computer with an FTP client, or you can use an FTP client on the same machine. I recommend FileZilla as it has a great interface and works on Windows, Mac and Linux. Any FTP client should work as long as it supports SFTP. To connect to your server, use these details:

Host: <Your host IP address or Domain Name>
Port: 23 (by default)
Username: <Your CentOS username>
Password: <Your CentOS password>

When you connect, you should be able to view your home directory, including the public_html folder you created. You should also test that you can upload something into the public_html folder as well. If so, then you’re all set. If not, there may be a permissions problem. To make sure the permissions are set correctly, type these commands into a terminal:

chown username /home/username/sftp
chmod 755 /home/username
chown username /home/username/public_html

Replace username with your Linux username. With the current configuration, all your users can log in with SFTP and browse files on the entire server. This is really insecure and you should chroot and jail SFTP users. Unfortunately I was on a schedule and ran out of time before I could figure out how to get this working. It should be noted that even though users can view other files, they can only modify files they own, so for a test environment, it should be okay.

Add a MySQL Database

The next thing we will do is create a MySQL database for the user. On regular web hosting, especially paid hosting you get more than one database. For the purpose of learning, we will only be using one database and later on you can look into easier ways of allowing the user to create databases themselves. To create the database, we will first need to open up the MySQL console by typing:

mysql -u root -p

You will be asked for the root user password. This is different from the root Linux user, so make sure you remember what you used when you set up MySQL, as it is a pain to reset it! Next, we will type some SQL to create a database and a user and give that user permissions to do whatever they like with the database. In the SQL code, replace ‘username’ with the Linux username you wish to use, or you can create a new one. Typing a semicolon denotes the end of a statement in SQL, so when you press enter, it will execute that statement. If you will to execute all statements at once, you can type them on one line, instead of pressing enter. The SQL we will use is:

GRANT USAGE ON *.* TO [email protected] IDENTIFIED BY 'username';
GRANT ALL PRIVILEGES ON username.* TO [email protected];

This will create a database with the same name as your username. If you wish to change the name of the database I have highlighted in green where the actual database name is. The password is also the same as the username, but if you wish to change that also, I have highlighted that in red.

This is a really long post and a lot to take in so I will end it here. In the next post, I will talk about installing phpMyAdmin to test and manage the database. I will also talk about writing bash scripts to automate adding and removing users.


Posted in Tutorials, Undergraduate Research | Tagged , , , , , , , , | Leave a comment

Setting up LAMP Server with CentOS

One of the components of my undergraduate research class is to learn how to be a Linux administrator and as part of that, one of my tasks is to learn how to set up a LAMP server. Part of the reason for doing this, is that the particular server that I am setting up will be used in another class for a web site project they will be working on. In this post I will go through the steps I went through in setting up a LAMP server on CentOS 6. Below are step by step instructions on installing the software and getting things up and running. The steps assume you have already installed CentOS 6 and have a working Internet connection. That is something that is out of the scope of this post, so before continuing, make sure you meet that prerequisite.

1. Install Apache

The A in LAMP stands for Apache which is a web server. The web server is the software that can accept requests from a client (a browser) and sends back a response (a web page/HTML).

To start, open up and terminal and make sure you have root privileges by typing ‘su’. You will be prompted for the root password.

Once you have root, to install Apache enter this into the console:

yum install httpd

Once that is installed, you can start the service by typing:

service httpd start

To verify that it works, if you are using the desktop environment in CentOS you can just open a web browser and type:

If you are not using the desktop environment, you will want to find your CentOS I.P. address on your local network. To do this, type:

ifconfig eth0 | grep inet | awk '{ print $2 }'

You should see an I.P. address that looks similar to what computers on your network have. For me, that was ‘10.0.0.x’ and in my CentOS specific case, my I.P. address was Once you have this information, you can visit http://yourip and you should see a welcome page by Apache. If not…

If You Don’t See the Apache Welcome Page

CentOS is a very secure Linux distro and as a result, the firewall may be too aggressive. This is a good thing in a real world environment, but for learning purposes, we will disable the firewall to allow the web site to be seen. The firewall in Linux is called ‘iptables’, to disable it, we simply type:

service iptables save
service iptables stop

This should disable iptables and you should be able to view your site. Unfortunately, when you next boot up your CentOS machine, iptables will automatically start up, so lets turn that off by typing:

chkconfig iptables off

Start Apache Server on Bootup

Apache won’t start up by default when you boot your machine, so you’ll want to make sure that starts on boot. You can do this in a similar way to turning off iptables. Type this into the terminal:

chkconfig httpd on

Once this is done, Apache is installed and ready to go. Apache by default is installed to ‘/var/www’ and any pages you wish to display on your site goes in the ‘/var/www/html’ folder. If no page is specified, Apache will look for the index.html page by default. You can test this by placing a test page in the ‘/var/www/html’ folder. HTML is out of the scope of this tutorial, but if you’re messing with a web server, you should probably already know how to create an index.html page.

2. Install MySQL Server

The M in LAMP stands for MySQL. MySQL is a database management system (DBMS) that is very popular and powerful. Installing MySQL is pretty easy. To begin, again make sure you have root and type:

yum install mysql-server

Once the MySQL server is installed, start it by typing:

service mysqld start

Again, we will want to make sure MySQL starts on startup, so type:

chkconfig mysqld on

Securing your MySQL Server

The next thing we want to do is secure the MySQL server. To do this, run a script that comes with the MySQL installation by typing this into the terminal:


The prompt will ask you for your root password for the MySQL root user (not the Linux/CentOS root user). Since you haven’t set one up yet (first time install) it is blank, so simply press [Enter].

You will then be asked if you want to set a password for the root user. Do this now and make sure you remember it, as it is a pain to change/reset it!

The prompt will then as you a series of questions, to which you can reply yes to all of them. Once that is finished, your MySQL server is setup and ready to go. To verify this, type into the terminal:

mysql -u root -p

Type in your root password and it should bring up the mysql terminal. Then type:

show databases;

This will list all your databases. There should only be two right now. To quit the mysql promt, type ‘quit’. MySQL is successfully installed!

3. Install PHP

The last part of LAMP is PHP. PHP is a server side programming language that allows you to dynamically generate web pages/HTML. For the basic PHP install type:

yum install php

PHP is capable of many things but requires libraries to do so. You may want to install other PHP libraries to the server. To find out what libraries are available, type:

yum info php-

This will display a list of modules that can be installed. To view more information about them, type:

yum info name of module

You can install multiple modules at once and some of the ones I recommend to get started can be installed by typing:

yum install php-mysql php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml

Verify that PHP is Working

To test that PHP is working, we can create a test page. Create a new file called ‘info.php’ in ‘/var/www/html’. Then, open up ‘info.php’ in your favorite text editor and type:

<?php phpinfo();?>

Save and close the file. Before we try to access the file, we may need to restart Apache so that the PHP installation will be recognized. To do this type:

service httpd restart

Once that is done, navigate to ‘http://your.server.ip/info.php’ and you should see a PHP page listing all the modules installed.

Once that is done, your LAMP server is ready to go!


This tutorial covered how to install the various components of a LAMP server. What I did not cover was properly setting up everything and allowing other users to have their own directory/web space. I plan on doing this in another tutorial. It should also be noted that this probably isn’t the most secure installation, especially because we disabled iptables. The correct method would be to allow the specific ports (for example, for Apache that would be port 80) through the firewall, whilst leaving the others closed. If you have any questions, comments or suggestions, please feel to leave a comment.


Extra Credit

Thanks to my Linux admin friend Joe for helping me early on to get started!

Posted in Tutorials, Undergraduate Research | Tagged , , , , , | Leave a comment

Introduction to Bitcoin Mining

I have created a new blog post category titled “Undergraduate Research”. I am currently taking on a research project at my school and I will use this category to post my findings. I hope to keep it as accurate as possible and will post my sources. The research topic is related to high performance computing and my first task is to research Bitcoin mining. This post will give a brief introduction to Bitcoin and the required hardware and software.

First, what is Bitcoin? Bitcoin is the first digital decentralized currency. It uses cryptography to control the creation and transfer of money. It uses peer-to-peer technology to transfer funds and since it is decentralized, all transactions are verified by everyone in a process called Bitcoin mining. Mining is the process of verifying transactions and is done so using specialized software and hardware. This is the component of Bitcoin that we are interested in as it relates to the research topic.

Bitcoin Mining Hardware

Bitcoin mining has evolved since it was first created as has the software and hardware required. In the beginning, the CPU was the only way to mine for coins. This is an incredibly inefficient method that would take years to mine for a single coin. It was then discovered that GPU’s were more efficient at mining and going from CPU to GPU allowed for a “50x to 100x increase in mining power”. Next was a type of hardware called FPGA’s, which stands for Field Programmable Gate Array. Whilst the increase in mining power was not huge, the power efficiency was increased, making this method a lot more efficient than GPU mining. Finally, we get to where we are today with ASIC’s. ASIC stands for Application Specific Integrated Circuit. It is highly unlikely for Bitcoin mining technology to get any better than this. ASIC is simply a specialized chip that can be purposed to do only one task. Since it is so specialized, this leads to a huge increase in efficiency with whatever tasks it is created to do, which in this case, is Bitcoin mining. For the purpose of our research (and probably lack of funding) we will most likely use the CPU and GPU to engage in Bitcoin mining. The purpose of the research is not to make money, but to understand the technology.

Bitcoin Mining Software

When it comes to the software used for Bitcoin mining there are a few options. First you will need a Bitcoin wallet. This is actually a digital wallet and acts much like a physical wallet in real life, as a place to store the currency. You can either choose to have an online wallet, or for more secure storage you can use a software wallet installed on your computer. Next you will need mining software. Two popular choices include CGMiner and BFGMiner. I tried installing these programs on Linux (CentOS 6, virtual machine) but they all talk about installing AMD Radeon drivers or configuring them to be used on FGPA or ASIC devices. I do not have an AMD graphics card on any of my systems and nor do I own an FGPA or ASIC device, which made my attempts to install the Bitcoin mining software difficult. This will be something I will have to look into further.


Mining Guide on We Use Coins – FAQ –

Posted in Undergraduate Research | Tagged , , , , | Leave a comment
wicd network manager

How to Solve the “Could not connect to wicd’s D-Bus interface.” Error on Ubuntu 13.10

I haven’t posted in a while, I’ve been lazy and busy with school work. Recently I messed up my Ubuntu installation and needed to re-install. I downloaded the latest version of Ubuntu, which at the time of writing was Ubuntu 13.10. From my previous post, you will note that I initially installed with 12.10, so it really has been a while since I posted! Anyway, if you read it, you will know that I don’t use Ubuntu’s default network manager. For whatever reason, it makes network and internet connections slow and sometimes it drops. My solution is to nuke it and replace it with wicd. Unfortunately, for some reason after installing wicd, it would not run and gave me this error:

Could not connect to wicd’s D-Bus interface.

If you stumbled across this page, you probably want the solution right away and the explanation afterwards, so here it is:

Open a terminal and run these commands:

  1. sudo mv -v /etc/resolv.conf /etc/resolv.conf.backup
  2. sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
  3. sudo rm -v /var/lib/wicd/resolv.conf.orig
  4. sudo service wicd start

I do not take credit for this solution, I found it here on It also has instructions on how to undo what you just did in case that did not work for you. Interestingly, I didn’t find this result on Google, instead I tried a different search engine called Duck Duck Go. Since this search result was at the top I found it impressive and even surprised that in this case, it beat Google since it found what I was looking for.

I think it is a real shame that I have to go through all of this just to get Ubuntu to work the way I want it. The default connection managers on Windows and Mac OS all work perfectly. As secure and stable as Linux can be, I still would never recommend it for anyone other than a programmer or for a server. As an everyday OS, even Ubuntu still has a long way to go before it can replace Windows. I have yet to try Linux Mint though, I have heard this is another Linux distro that is supposed to be more user friendly.

In any case, I hope these solve your wicd d-bus errors. I can’t guarantee that these will work for you as, to be fair, I don’t really know what they are doing in the first place – I still have a lot to learn about Linux.

Posted in Tutorials, Ubuntu | Tagged , , , | 2 Responses
Ubuntu Logo

[try-linux] Just Installed Ubuntu 12.10!

I decided a long time ago that I wanted to learn Linux. I’ve dual booted before and installed some version of Linux, but it never really stayed. The main problem with that is that I’ve always installed it on my gaming PC. This time, I have installed Ubuntu alongside Windows 8 on my laptop. My laptop is used primarily for programming and school work. The programming part should help with keeping it.

I’m also going to try and post updates here, not only to keep track of my progress, but stuff I find useful whilst on my journey of Linux discovery. Below are some initial issues I had when installing.

Installing Ubuntu Alongside Windows 8

Before I installed Ubuntu (64bit by the way) I did not get the option to “install alongside Windows” which I had seen on the web site. To get this option you have to:

  1. Boot into Windows.
  2. Open a command prompt with administrator privileges.
  3. Type:
    chkdsk /f
  4. This will find problems with your hard drive. If it finds any issues, it will ask if you want to run chkdsk on next startup. Select yes, then reboot your PC.
  5. When you reboot, it will do its scanny thingy (that’s the official term) and when you’re back into Windows, open a command prompt again (with admin privileges) and type:
  6. This will tell you if there are still any problems. If not, boot from the Ubuntu disc and when you go to install Ubuntu, you will have the “install alongside Windows” option.

Slow Internet Speeds

UPDATE (May 1st, 2103): The instructions below did not solve my issue with the slow wireless. I undid whatever it is I did and installed wicd to replace the network-manager that comes with Ubuntu. I have not had any problems with wireless since then.

Another issue I had was really slow wireless Internet. To fix this I followed these instructions. I only followed the first part which was:

1) Hit “alt+f2” to run a command and type:

gksudo gedit /etc/modprobe.d/blacklist.conf

And add the following lines to the bottom of the file:

blacklist ath_hal
blacklist ath_pci

Reboot. If it’s still not working than it is very likely you have ath5k being blacklisted somewhere. Blacklisting may have occurred if you are coming from a Hardy upgrade and/or did not uninstall the madwifi driver before doing this.

Disabling the Guest Account

I don’t like other people… Using my PC so I wanted to disable the guest account. Easy solution found by googling and I came across this site.

To disable the guest session and/or remote logon in Ubuntu 12.10 (Quantal Quetzal):

  1. Open a terminal window.
  2. Type
    sudo nano /etc/lightdm/lightdm.conf
  3. Type in your sudo password.
  4. Add the following in a new line at the end of the file if you want to disable the guest session:
  5. Add the following in a new line at the end of the file if you want to disable the remote login option:
  6. If you choose to disable both, your lightdm.conf file should probably look like this:
  7. Hit CTRL-X to exit nano.
  8. Hit Y to save the file.
  9. Hit Enter to accept the original filename and overwrite the file.
  10. On the terminal, type
    sudo restart lightdm

    to restart the display manager. Doing so will require you to log in again and may close running apps, so save your work before doing so.

  11. The guest session and/or remote logon options should now be disabled.

Finally, I wanted that really nice boot screen that Windows 8 has. After I installed Ubuntu, it would boot into Grub, which is a bootloader for Linux. Then I decided, if I’m going to learn Linux then I might as well set it as my primary operating system, so I decided against the shiny Windows 8 bootloader!

Next on my list of things to do:

  • Install Eclipse and use my Windows folders for project directories.
  • Install Android SDK and use my Windows folders for project directories.
  • Install an FTP program (if one isn’t built in already).
  • Figure out which text editor I want to use for programming.
  • See if I can’t get Photoshop to work.

There are probably other things I want to try, but for now this is good enough.

Posted in First Impressions/Previews, Ubuntu | Tagged , , , | Leave a comment

Comparison Review: Need for Speed Most Wanted vs. Forza Horizon

I’m going to try something experimental here – review two games at once (separate scores). I decided to do this as both games are very similar and were released in the same year.

I’d first like to say that I am a fan of both series. I’ve loved all the Forza games except the first one, and that is probably because I never played it. I also love the Need for Speed series and I’ve played pretty much all of them. I never liked Pro Street though, no idea what that was all about. For this reason it will be interesting to see how these two games compare, considering Horizon is more or less what Need for Speed has been doing for years.

Traditionally Forza has always been about racing on a closed course. Forza also leans more towards simulation racing, although not nearly as much as Gran Turismo, which allows Forza to appeal to a wider range of audiences. Forza also focuses on the cars as well – each car can be upgraded, tuned and painted pretty much any way you like. Forza also attempts to create communities with things like car clubs and marketplaces so it also includes a social aspect. Horizon steps out of the series’ comfort zone, with slightly less realistic physics and more importantly, an open world environment –  two things that make it more closely related to Need for Speed.

Need for Speed on the other hand focuses on the street racing scene, even in the early days with games like Road Challenge, Hot pursuit and even one of my favorite, lesser known underdogs, Porsche Unleashed – all of the racing takes place on public roads. This means that you’re not just battling with other racers, but traffic and sometimes cops as well. This usually makes for some interesting gameplay and definitely changes things a bit. For example – the concept of the racing line is completely thrown out, as you have to account for traffic and avoiding the cops. Sometimes, you can also play as the cops as well, which again makes for a change in gameplay.

The first major feature of both games is that they both feature an ‘open world’ environment. In Horizon, you’ll be roaming the streets that are based on Colorado. You’ll be dodging traffic, setting speeds with speed traps and smashing signs for discounts at the upgrade store. Not only are there asphalt roads but dirt roads too, so sometimes AWD can come in handy, but is not necessary. There are also other NPC racers roaming around, which you can challenge, and if you win, you’ll get some money based difficulty. Getting to race events in Horizon means setting waypoints to them and driving there. You can teleport (fast travel) to the Horizon festival locations, such as the garage, paint shop etc, but other places must be driven to. There are also outposts which you can teleport to for a fee to make travel quicker, although I preferred to drive to locations simply because I enjoy the driving in Horizon. Outposts’ teleport costs can be reduced to free by completing ‘PR Events’ at each one. There are some great looking locations in the world, but for the most part, you’ll be speeding past it, so it’s hard to appreciate any detail, including the day/night cycle. A lot of the roads are mostly twisting one or two lane roads – perfect for car enthusiasts and as mentioned before some dirt roads. There are also small towns/cities with a grid like setup to make things a little different. There doesn’t seem to be a lot of traffic and coupled with the fact that a lot of the roads look pretty much the same it can feel a little lifeless at times, but it’s still fun to drive around in.

Most Wanted’s world is very similar to Horizon except in Most Wanted you’ll be avoiding cops. Getting to events means driving to them for the first time, but after that you can teleport to them via an in game interface that’s really easy to use. The traffic feels a little heavier in Most Wanted, though not by much, however the world does have a bit more variety than Horizon, which really comes in handy when trying to avoid the cops and is also more pleasing to the eye. As with Horizon, traffic is made up of your regular family sedans, light trucks and SUV’s to make it feel a little more realistic.

In terms of looks, Most Wanted’s world edges out a bit over Horizon, however I like how Horizon’s world is set up. For example, to get a new car in Horizon, you simply drive or fast travel to the ‘Auto Show’ and you can buy any car you want as long as you have the credits. In Most Wanted however, you have to come across it in the street somewhere and drive up to it. Once you have found a car, you now own it and can get in it at any time whilst not in a race. This sort of forces the player to drive around the world hunting for cars, which I found a little annoying. I preferred buying them from one place. Horizon has something similar though, called ‘Barn Finds’. These are 9 unique classic cars that are located somewhere in the world and you’ll be notified when one can be found. There will be a general area that you can look in to find the car, so it cuts down on the time spent roaming around, wasting time. If you want to waste even less time you could just look up the locations online, something I recommend instead of buying a treasure map from Xbox Live marketplace that reveals the locations. In free roam mode, Horizon features a few more things to do, but in race mode, for both worlds, the open world aspect is largely pointless as the routes for the races are linear and don’t allow for much freedom at all.

The story for both games are very similar – you’re basically trying to be the best racer in the respective world and you do so by competing in smaller racing events to get a chance to challenge one of the celebrities or top racers. Once you beat them, you climb to the top even further to beat the top racer and become the best racer there is in the world, at which point you can exclaim Hammond style “I am a driving God”. Horizon has 7 bosses, whilst Most Wanted has 10. In either case when you beat them, you win their car. The smaller events in Horizon feature different types of races that contribute to a points system that lets you access more races to challenge your rivals. Some of them are closed circuit and there are no traffic, but still take place on public roads. Others are are point to point and have a linear route with traffic. There are also a few events called ‘Showcase’ events that usually pit a given car against a plane, chopper and even a hot air balloon. This is a point to point event and when you win, you get to keep the car. Horizon’s races aren’t just about winning though – there is a ranking system based on popularity. You get more popular by showing off your skills, which can be done in and out of races. Skills are things like drifting, burnouts, near misses with traffic and getting air. Leveling up your popularity can gain you an extra money bonus as it impresses the Horizon sponsors.

There is just as much variety in Most Wanted’s races, except cops are involved. This changes the gameplay a bit as you’ll have to come up with different strategies for winning races, as not only will you be attempting to overtake other racers and dodge traffic, but also outrun the cops, get through their speed blocks and avoid spike strips. The more damage you cause and the longer you keep the cops chasing after you, the bigger your wanted level becomes and the harder the cops are. There are places that you can hide in that reduce your wanted level and make it hard for the cops to find you. Another alternative to losing the cops is to drive through a gas station that repairs your car. These stations not only repair your car, but repaint it too and you don’t have to stop either.

One thing that can make or break a driving game is the driving physics – just look at Test Drive: Unlimited – great game concept, but the awful driving physics made me hate it. Both Horizon and Most Wanted feature a more laid back physics engine and Most Wanted even more so. Horizon’s cars feel a bit more like driving actual cars, but not so much to the point where it feels like a simulation. In addition, the difficulty can be tweaked to make driving a lot easier, something Most Wanted is lacking. For this reason, Horizon wins here as it can appeal to the casual gamer, whilst still retaining the Forza fans and  driving enthusiasts. That’s not to say Most Wanted’s driving physics are bad – the cars in Most Wanted all feel different, but is clearly leaning more towards a more ‘arcadey’ feel, especially when it comes to drifting – it’s so much easier to drift in Most Wanted, but it’s still not that hard in Horizon. Whilst I’m on the subject of difficulty, Most Wanted rates races as either easy, medium or hard and that’s about it. Here, Horizon shines as things like driving aids and opponent difficulty can be adjusted and tailored to suit any player of any skill. Of course, turning down the difficulty in Horizon means you get less of a reward, which only encourages you to challenge yourself. There is also one aspect of driving that I must call attention to for Most Wanted that I feel ruins the driving experience. In Horizon you have different cameras – third person near/far, in car and a hood view – standard for most, if not all racing games. Unfortunately, the Most Wanted developers chose to ignore this standard and you only get two cameras – third person and first person hood view with no hood. This is disappointing not only because it shows lazy developers but it makes the game feel cheap, like a budget game – a low level of production quality I don’t expect from a Need for Speed title. I’m not asking for detailed interiors, just give me a hood in first person view so I can drive more accurately. You might argue that Most Wanted isn’t supposed to be a realistic driving game and you’d have a point, but lets face it – this isn’t made to compete with Mario Kart or Blur, it’s a little bit more realistic than that, and all other games of this category have proper cameras. The AI in both games is pretty decent, but I think Horizon is a little less predictable and on the lower difficulties, they tend to make more mistakes, which adds a human quality to them. One thing I hate about Most Wanted’s AI, is that it feels like everyone is against you, especially the cops. They rarely go after the other racers as hard as they do on you and that sort of bias makes the game a little frustrating at times.

Speaking of frustration, when you crash in Horizon, it’s no big deal – you just get back on the road and continue, or if you have it enabled, rewind time and don’t make the same mistake twice. However, when you crash particularly bad in Most Wanted, it tries to imitate the immaturity of something like Burnout, where it changes to a cinematic slow motion camera that would make anyone into car crash porn drool. I hate this because it seems juvenile and pointless and doesn’t let me see what else is going on in the race. This is something that no racing game should have, except the Burnout series, as those games are all about juvenile destruction as opposed to skilled racing.

The races themselves are well designed in Horizon, although they start to look a little samey towards the end. The same appears to be true of Most Wanted, but annoyingly the courses in Most Wanted and not as well designed as Horizon. It’s too easy to go off track and for an open world racer, it really doesn’t allow you the freedom you might expect. Though the freedom argument is true for both, it hurts even more so in Most Wanted due to bad course design. I rarely went off course in Horizon, but it happened all too often in Most Wanted.

Even though both are arcade racers, they both have real cars in them, so I expect a little bit of realism. I have no complaints with Horizon in this regard, but in Most Wanted, I find it stupid that a Ford Crown Vic can keep up with a Lamborghini. I realize logic doesn’t always have to be in a video game, but come on, this is really pushing it!

Cars can be upgraded in both games, although Horizon allows for a lot more customizations than Most Wanted’s relatively simple system. On top of that, Horizon’s cars can be painted any way you like and have custom designs applied to them, and you can change the rims to be as tasteful or distasteful as you like. The point is, you make the car yours and not just another car on the road. Custom designs can be made by yourself, or purchased from a marketplace, highlighting Horizon’s community aspect. The exterior models in both games look great, but I think Horizon edges out a little more because they look a little more realistic. Obviously Horizon wins when it comes to interiors as Most Wanted does not have an in car view.

On the subject of graphics and presentation both games look equally great. My only complaint about Most Wanted is glare from the sun is too excessive and the reflection hinders my ability to drive. In Horizon, your car can only be visually damaged, if you have it turned on. When your car does become damaged, it isn’t s detailed as Most Wanted, where cars crumple more and bits fly off. In Horizon, there is less crumpling and you mostly get paint scratches. Damage also affects performance in Most Wanted, but not in Horizon. As stated before, the open world looks good, but Most Wanted looks slightly better. Horizon has a day/night cycle, but Most Wanted has a rain/no rain cycle, which also affects handling. If Horizon had weather effects, it would win out easily in this comparison, especially if it affected performance. As a side note, the next thing I wanted from the Forza team as I was writing this review was a rally game and it appears my wish has been granted – there will be a rally expansion pack for Horizon coming out soon, if it isn’t out already.

Continuing the discussion on presentation – both games sound great, although I would argue Horizon’s car sounds are much better. If you don’t believe me, drive in any tunnel, especially in a car with a V8 or bigger and try to tell me you didn’t experience any frisson. Most Wanted’s engine sounds are not as detailed as Horizon’s but they’re good enough. Horizon also has better tire sounds, but I think Most Wanted has better crash sounds. Both games feature a great soundtrack as well. Horizon has 3 radio stations with DJ’s and the music selection is pretty good with maybe only 2 or 3 songs I didn’t like. Most Wanted does not have radio stations, but a playlist instead. Again, the music selection is pretty good with only 2 or 3 songs I didn’t like. For the most part, the music appeals to most tastes and if you’d prefer, can be turned off completely. When it comes to sound, both games are pretty equal.

In conclusion, I think Horizon is the best Need for Speed game ever made… It reminds of some of the better Need for Speed titles such as Hot Pursuit (not the one by Criterion), Road Challenge and Underground, in terms of gameplay, car physics and selection and when it comes down to it – a focus on racing. I wished the roads didn’t become repetitive after a while and whilst I’m looking for things to complain about, the load times could be better, although they aren’t nearly as bad as Forza 4. I should mention load times in Most Wanted for me are irrelevant as I played it on PC and had no issue with load times, but I think it’s unfair to compare the two on load times because they’re on different platforms. I was pleasantly surprised at how good Horizon is, considering this is Forza’s first jump into a world that is largely dominated by the Need for Speed series. Horizon focuses on exciting races and great driving physics, as well as appealing to all kinds of car lovers and gamers – a great recipe for success. 9/10.

In terms of final quality Most Wanted feels like a big step down from what I expect from the Need for Speed series. The concept of the game isn’t really something new, it’s something that the Need for Speed series has been doing for a while, and quite well, up until this point. Most Wanted has everything it needs to be a great Need for Speed game, but ends up being only a decent Need for Speed game as it falls short on technicalities. Less aggressive and unrealistic AI, and a focus on the player as a driver would turn this least wanted Need for Speed game into a true Need for Speed classic. 7/10.

Posted in Gaming, Reviews and/or Opinions | Tagged , , , , , , , , | Leave a comment

[How To] Play Co-Op Doom Online With The PC Version

I can’t consider you an FPS gamer until you’ve had a Doom nightmare or two. Doom is the game that started it all, just look at any successful modern FPS and you’ll see it pretty much copies this 19 year old game. Take Call of Duty for example – the story is pretty much pointless, it’s just an excuse to send waves of enemies at you, just like in Doom. Also, with each new game, there are no new features, the graphics stay the same and it costed the full retail price on release, much like Doom. However, Doom does have one feature under its belt that the Call of Duty series lacks – Doom’s protagonist, Doom Guy, is left handed! If you don’t believe me, pull out the pistol in Doom – cannot be unseen!

The Guide

Alright enough talk, you know what Doom is now and you want to play it. Below are instructions on what you need and how to get the game working.

Disclaimer: This is only a basic guide to get you up and running – to get the best experience you may need to fiddle with settings later, or you may not. Either way, if something doesn’t work please Google it first, I have no idea what I’m talking about 😛

Why This Guide Was Created

The original Doom came out in 1993. It did not support online play, only local games, which means you need a third-party program to get this working. Unfortunately, they’re not all that easy to use sometimes and usually requires lots of fiddling around with networking settings. After making my friend spend hours figuring this out (whilst I chilled) I decided to steal his findings and write them up, mostly because communication is not his strong suit.

What you will need:

  • Required:Chocolate Doom – There are many programs just like Chocolate Doom, but Chocolate Doom was chosen for two reasons – (1) it works and (2) it doesn’t add extra features like jumping and looking up and down, so you get as close to the original experience as possible.
  • Required: Your I.P. address – whoever is hosting the co-op game will need to know their I.P. address so  they can give it out to their friends to connect to them. You could use to find this out, but I prefer because it sounds cooler/sillier.
  • Required: .WAD files – You can get the entire Doom collection on Steam and all you have to do is download and install it. You won’t even need Steam, Chocolate Doom just requires the .WAD files, so if you can get them from another source, this guide will work fine as well.
  • Recommended: Access to your router – You may need to forward a port.


Before you dive into the instructions, this guide was created with the assumption that you are using Steam. It should work fine if you have the .WAD files, because that’s really all you need.

UPDATE: There is a Mac version of Chocolate Doom and all it needs are the .WAD files in the directory you download the .dmg file. Your Steam copy should work fine, or you can use whatever .WAD file you have.

  1. The first step is to actually download and install the Doom games you want to play. If you have Steam, you simply need to download them, you don’t even have to launch them once or anything. If you are using the .WAD files on their own, keep them in a memorable location for now, you’ll need them in step 3.
  2. Download Chocolate Doom. It should download an archive/zip file – extract that to any location you want, it doesn’t matter, just as long as you can remember where it is.
  3. You now need Chocolate Doom to know where your .WAD files are. If you have the Steam version, it seems to automatically find them. If you have the individual .WAD files, the best way for Chocolate Doom to recognize them is to copy and paste them into the directory you extracted Chocolate Doom.
  4. By default, the game works on port 2342, but it won’t run – it will give you an error message about binding the game to that port, so we’re going to change it. It is recommended that whoever is hosting port forward the new port. We decided to use 6500, it was unused on my machine and it worked. Port forwarding will be different for each router, but for my Linksys, I log into the admin panel, click on “applications and gaming”, then “single port forward”. You can then make an entry that looks similar to this (see the doom2 entry at the bottom):

    If 6500 doesn’t work, try something much bigger that’s unlikely to be used like 31337 (seriously), you’re essentially trying to find an unused port.
  5. Now you need your I.P. so your friends can connect to you. Simply visit one of the sites above (or however you obtain your I.P.) and copy and paste the address to your friends. I’ll show you how to connect later.
  6. The final thing you need to do is create the server, so go ahead and launch chocolate-setup.exe in your Chocolate Doom folder. You’ll be presented with the most retro screen a console gamer has ever seen.
  7. You’ll see a lot of “Configure” settings – something you’ll want to fiddle with later to get the game just right, but I do recommend fixing your mouse settings right now. The reason for this is that initially the mouse is slow and laggy, here are my settings that help reduce that a little:
  8. Now, once you go back to the main menu click “Start a Network Game”. If you installed your .WAD files correctly, in the list of games, you should see all the games for your corresponding .WAD files. Select the one you want to play. Set your difficulty settings and choose what map to start on and “game type” should already be set to co-operative.
  9. The last thing you need to do is change that UDP port. Use 6500 or whatever you decided, then click “Start”.
  10. Finally, you should now be presented with a lobby screen. This is when you get your friends to connect (see below) and then press “Start Game” once they’re all in and off you go!

Connecting To The Host

  1. Launch chocolate-setup.exe.
  2. Click on “Join a Network Game”.
  3. Type your hosts’ I.P. address with the port like so: ipaddress:port. So for example, if your address is and the port is 6500, type in
  4. Click connect and you should be in the lobby screen. Wait for the host to press “Start Game”. Friendly fire is on, so be sure to show how much you value their friendship appropriately…


You now have everything you need to play a co-op game of the old Doom series with your friends. As I stated earlier in the guide, the main menu for the Chocolate Setup program has a lot of configuration options. I suggest tweaking these to set the right resolution and controls etc.

Chocolate Doom isn’t perfect – there appears to be some mouse/movement lag that feels like mouse acceleration or vsync is turned on in multiplayer, but it’s nothing too drastic. I also don’t know how to turn off friendly fire, which would be quite helpful. As I said, fiddle with the settings and remember this is only a basic guide – you may find additional help elsewhere.

If you have any questions, comments or tips/suggestions, please feel free to leave a comment on this post.

Posted in Gaming, Tutorials | Tagged , , , , , , , , , , , , | 4 Responses

Natural Select 2 First Impressions

If you have played the Natural Selection MOD for Half Life 1 before, then great, you’ll know everything you need to know to play NS2 and if you liked NS1 then there is no reason not to like NS2. If, like me, you weren’t any good at it because you were scared of it’s complexity then, NS2 is the same thing, but a little bit better. I’m sure there were tutorials online for the first one, but the second one has some videos built in, which is nice. They’re just links to YouTube videos, but they’re good enough. Thankfully there seems to be quite a few ‘Rookie Servers’ that go easy on the new players and I really enjoyed playing the game.

The game has two sides, marines and aliens. The marines have to destroy the alien hive and they do so with pure firepower. A marine on his own isn’t that powerful, so grouping together with other players and rushing an area, much like a strategy game with a bunch of units is one of the best tactics. Of course, that strategy part is in there, as one player can elect to be  a commander. The commander has a top down view of the game, instead of the first person view that the other players get. The commander can assign objectives, tasks and deploy certain things, such as health and ammo stations and turrets. There can also be multiple command centers, just like there can be multiple hives. Although a Marine on their own isn’t powerful, they can upgrade their weapons and armor, but eventually you’ll want the two cool upgrades. The first cool upgrade is a jet pack. A bloody jet pack, how cool is that? The second cool upgrade is a mech suit. The first upgrade lets you have a minigun and punch things. The minigun has unlimited ammo, but it overheats. The second upgrade replaces the melee attack with another minigun, which I didn’t get to use but I’m assuming they both overheat pretty quickly as well. These are essential for taking out the aliens.

Over on the alien side the objectives are similar – take out the marine command centers. The alien you spawn as has the ability to evolve to different aliens and you do so, kind of based on need. Whilst some are more powerful than others, some are for healing, some are for sneaking and probably, the alien equivalent to the mech suit is the ability to evolve into some horned elephant thing called an ‘Onos’. Oh no indeed, this big and powerful alien has a lot of health and pretty much destroys anything in its path, so a group of marines are need to take it down. The alien side is a little more complex. They too have a commander who plays the same role and has the same top down view, but playing as an alien as well is slightly harder. The base alien can climb walls and you really use it to ambush lone marines, others are for healing or doing suicide bile bombs. There’s even a freaky looking pterodactyl like one that  can fly, which is really cool.

NS2 improves over the original mod with better graphics and a more intuitive interface. The game feels really smooth and fluid and it’s a lot of fun to play. One thing to remember though is that this game really requires team work. It isn’t like other FPS games where one player can run and gun (or crawl and  munch if you’re an alien) and just own everyone, you really need to work as a team to survive and keep your upgrades. Overall if you’re looking for a fast paced FPS with a lot of teamwork and strategy involved, this is the game for you. Due to the strategic complexity, especially if you’re a commander, it may take a while to get used to, but it’s still a fun game to play and a great change from most of the shooters released today.

Posted in First Impressions/Previews, Gaming | Tagged , , , , , | Leave a comment