Installing Ubuntu with VirtualBox

In this guide, we will be creating a virtual machine, using the VirtualBox software, and running the Linux distro Ubuntu inside of our host operating system.


To start, head on over to the VirtualBox website, and download the latest version of the VirtualBox software for your Operating System.  It should be a fairly straightforward install process.

Next, head to the Ubuntu download page, and download a Ubuntu .iso file.  You can select either the 64 bit version, or the 32 bit version.  I would recommend the 64 bit, because it is a more modern architecture built for better computers.


With both of these items fully downloaded to your computer, open up VirtualBox.  Hit “New” at the top-left, and name your Virtual Machine.  If the name you choose includes the word “Ubuntu”, then it should automatically fill in the two boxes below.  Otherwise, change “Type” to “Linux” and “Version” to “Ubuntu”.  Hit “Continue”.

Here, it will ask you to allocate RAM to your VM.  This can be any amount, but whatever number you choose will affect your VM’s speed.  I chose 2 Gb, to shorten my build times in later videos.

In the next screen, it will ask how you want it to do the Hard-Drives.  Opt to create a Virtual Hard Drive.  In the prompt that follows, choose to create a .VDI file, and choose an allocation type.  The two types have their own advantages/disadvantages, some of which I detail below:

Dynamically Allocated:

  • Pros: Takes up less space on your HDD if your Virtual Drive is not completely full.  Also takes less time to generate initially.
  • Cons: Slower IO times when running your VM, because VirtualBox has to allocate more space as you use it.

Fixed Size:

  • Pros: Faster IO times inside VirtualBox, because the file is already created, and you are just overwriting the data.
  • Cons: Full-Size file is created from the start, so it takes up more HDD space from the beginning.

It should then prompt you for a size.  Pick something large enough to store all you need to, but not large enough to be cumbersome to your host OS.  It is possible to resize a .VDI file later, as seen in this post, but this process is best to be avoided.


At this point, you should have completely set up your VM.  Go ahead and select your VM from the list on the left, and hit “Start“.  You will soon see a prompt asking you to locate your CD Image.  Navigate to your Ubuntu ISO, and select it.  VirtualBox will boot into the Live CD version of Ubuntu.  You should quickly see a prompt asking if you want to Try Ubuntu, or Install Ubuntu.  Choose to Install it, and follow the prompts.  It should be pretty straight forward from here, up until your desktop gets fully booted up.

Once you finally get to the Ubuntu desktop, there is one final step.  In order to ensure full compatibility with VirtualBox, Oracle has created a small software package for you to install to ensure the best experience.  Go to “Devices” in the Menu Bar of your host OS, and hit “Install Guest Additions“.  Let the process run its course, and you should be good to go.  Let me know in the video comments if any part of this was unclear!

Assembly development on a mac.

When I first got my mac, I had no idea how to continue working on my toy operating system.  After some research, I found a couple of effective ways to do assembly programming on the mac.

Option 1:

I recommend this method for learning basic assembly.  In combination with, dosbox provides a good safe environment for learning the basics.  A guy named Khoraski(on YouTube) has a really good series on how to do assembly programming in DEBUG.

Install dosbox.  Just use the .dmg file to install it to a default directory.

Next create a working directory to store all you dosbox programs and source files. Open up a terminal window, and type something along the lines of ‘mkdir ~/DOSPrograms’ to make a folder.

Now that you have a working directory, just download the file (try this site) and put it into the directory you created earlier(e.g. DOSPrograms).

The rest of this method is just  booting dosbox and using its built in commands.

Option 2:

This is another very safe way to practice Assembly, but provides a much broader toolset.

Download and install VirtualBox, and the latest Ubuntu .iso.

Install nasm via command line.

you should be good to go

Option 3:

Probably the most obvious option, you just install the tools directly into OSX and just program without the protection of a virtual machine.  Download Xcode, enable the command-line tools, and you should be ready to go.  Nasm, GCC, DD, VIM, and LD should be automatically installed and enabled.


I hope some of you found this helpful.  Options 2 and 3 are probably the two I would most recommend for serious Assembly development, seeing as Option 1 is severely limited in scope and utility.

How to make your own iPod

Nearly 4 years ago, I built an ipod out of spare parts from ebay.  I wrote most of the tutorial on how to do so at that time, but I never got around to finishing it or publishing it.  As of yesterday, the tutorial can be seen for free online on Instructables.  It is a pretty easy build, and I learned quite a bit from it.  Good luck!

My thoughts on iOS 7

Despite all the hype, iOS 7 is not the cover-all solution for mobile os’s.  As an Apple developer, I got early beta access, and have been running it for nearly two months, up until last night.  If we were to examine it objectively, we would see that it meets all standards for a mobile operating system, and performs all of the standard functions with ease.  If we were to compare it with its predecessor, iOS 6, we see that it fails miserably in both performance and aesthetics.  With the completely revamped UI, it can be a bit of an eyesore for new users, especially when display elements do not show up when you tell them to.  All the fancy UI work comes at a severe cost for system performance, without much tangible gain.  Instead of continuing this paragraph, here are some pros and cons.


  • Addition of Control Panel.  This is incredibly convenient, and provides quick access to many commonly used features.
  • Improved Siri voice.  Siri’s voice got a lot more real.  It almost feels like you are talking to a real person at times.
  • Lock screen changes.  Now, when playing music, the lock screen shows the music controls without having to double tap the home button
  • Live Wallpapers.  While there are only two that currently work, this feature has potential to allow users to customize their phones to be like Androids.


  • Slow. Many features, such as Control Panel and Notification Center are slow to open, and very unresponsive.  The “frosted glass” look that they use for a variety of things, such as the lock screen, folder screen, and multitasking probably plays a big part in the slowdown, and does not look very good.
  • UI.  This sums up most of the issues I have with this OS.  It just sucks.  The new icons are attractive at first glance, but you will hate them as soon as you start using them.  Heck, I drew shit like this in paint in first grade, and they probably paid a guy a half a million dollars for that.
  • Siri crashes.  Siri underwent some major improvements, but now it crashes about 1/3 of the time.  Don’t know why it does that, but I don’t like it.
  • Did I mention it is slow?

So that is basically it.  The new features are really cool, but the cost of them makes upgrading downgrading not worth it.

How to remove a Steam game from Launchpad

Recently, I noticed that BioShock Infinite has been showing up in my Mac game library, even though it says the game only supports windows.  Just for kicks, I installed it, only to find an error saying “Missing Executable”.  I tried dragging the BioShock Infinite Launchpad icon to the Trash, then I tried holding it, only to find the standard “x” did not appear.  After some research, I found that you can simply remove it from the terminal.  Here are the instructions to do so:

  1. Open a new Terminal window
  2. cd to the Users Applications directory by typing “cd ~/Applications”
  3. List the contents of the folder by typing ls
  4. Determine the “*.app” that you wish to remove.  In this example I will use “BioShock”.
  5. Since  a “.app” is a directory in Mac OSX, we are going to use the “-rf” modifier to recursively force removal of the contents.  Type “rm -rf “BioShock””, and that should be it.

Other Launchpad Icons are located in misc. other Applications directories throughout the file system, and the approach is the same for them all.  Cd to the directory, list the available files, and rm the file.

Caution:  The rm command is very useful, but can be incredibly damaging to your file system. Use with caution.