Setting up my Raspberry Pi 2 for Retro Gaming

Earlier in the year I purchased a Raspberry Pi 2 and have been playing around with different distro’s. One interesting distro that I came across was RetroPie. While RetroPie currently has a newer version of their distro in Beta form (Beta 4 at the time of posting), I’m posting these directions as reference instructions to myself and others.

Below you’ll find setup/config instructions specific to RetroPie v2.6 and the parts I’ve listed in my setup. Content below may also be relevant for newer version of RetroPie, however, your mileage may vary and some of the steps may not be necessary in version 3+.

Specs on My Pie

Parts List



Install Operating System

There are a number of Operating Systems you can install and run on your Raspberry Pi, but I won’t cover them all here. Instead I’ll be focusing on installing and configuring RetroPie, which is an Operating System based on Debian Linux with a heavy focus on video game emulation. This guide is also targeted towards Windows users. If you’ll be using Mac or Linux there are other guides that you can follow to install the Operating System on your card.

  1. Insert your Micro SD card into the SD Card Adapter and click it into your computer’s SD card slot (if you don’t have an SD card slot, there are alternatives).
  2. Download and install Win32 Disk Imager.
  3. Download the latest version of RetroPie (be sure to select the link for Raspberry Pi 1 or Pi 2 according to your specific board).
  4. Open Win32 Disk Imager as Administrator (opening from the start menu should prompt you and ask you if you’d like to open it as Administrator).
  5. Select the RetroPie “Image File” that you just downloaded (keep in mind you may need to unarchive the image).
  6. Select the Device letter from the drop down your SD card is registered under (double check this in My Computer to make sure you have the correct device selected).
  7. Click “Write”.

When the writing process completes, your card is ready to be installed into the Raspberry Pi!

Expand Filesystem

After installing your new RetroPie image, you’ll need to expand the filesystem. This essentially means that the entire card becomes usable, where currently you’re only able to use a small portion of the storage on the card.

  1. When your Raspberry Pi starts up, it will automatically open Emulation Station. Press F4 to exit Emulation Station.
  2. You should now see a command line screen.
  3. Enter the following command to launch the Raspberry Pi configuration screen:
    sudo raspi-config
  4. Select “Expand Filesystem” and press enter to approve the expansion.
  5. You may also wish to configure your Internationalization Options such as your locale, timezone or keyboard configuration.
  6. Select “Finish” and reboot.

Enable WiFi

Enabling WiFi is pretty simple, but you’ll need to know two things: name of the WiFi access point and password.

  1. To get the name of the WiFi access point, just take a look at the name of the WiFi you’re trying to connect to over your phone, Windows, Mac, Linux, etc. That is the name you want. I’ll assume you already know the password or have access to someone who does.
  2. Open the WPA Supplicant file, where we’ll store your WiFi credentials:
    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
  3. Using the example below as a guide, add this information to the bottom of the wpa_supplicant.conf file and fill in the WiFi name and password with your network information:
        ssid="WiFi Network Name Here"
  4. Now save the file:
    1. Press: Ctrl+X
    2. Press: Y
    3. Press: Enter
  5. Your wireless adapter may or may not immediate detect the change. Do a reboot so you’re sure the settings were applied.
    sudo reboot
  6. After rebooting, jump back out to the command line by pressing F4. To test your WiFi connection, run the following Debian update command. If you see errors updating then your Internet settings were incorrect and you should go back to step 2 and correct any issues you find. Otherwise your Raspberry Pi now has Internet access!

Update the Firmware and Operating System

Now that you have Internet access configured (either through WiFi or Wired) its time to install system updates. There are a number of things that can be updated here to improve stability and performance.

If you haven’t already, exit Emulation Station by pressing F4 so you see the command line.

Debian Updates

In the command line, enter the following commands one at a time to update your Operating System:

  1. sudo apt-get update
  2. sudo apt-get upgrade
  3. sudo apt-get autoremove
  4. sudo apt-get clean
  5. sudo reboot

Raspberry Pi Firmware Updates

In the command line, enter the following commands one at a time to update your Raspberry Pi’s firmware:

  1. sudo rpi-update
  2. sudo reboot

Update Raspberry Pi Configuration Script

From command line, update the Raspberry Pi configuration script so you’re working with the latest tools:

  1. sudo raspi-config
  2. Select “Advanced Options” and press enter.
  3. In the list of Advanced Options, find “Update” and press enter.
  4. Select “Finish”

Update RetroPie Setup Script

From the command line, update the RetroPie setup script so you’re working with the latest list of emulators and settings:

  1. cd /home/pi/RetroPie-Setup
  2. sudo ./
  3. Select “UPDATE RetroPie Setup Script” and press enter.
  4. When the update is complete, press enter on the OK screen to return to the main list.
  5. Now select “Cancel” to exit the RetroPie Setup Script.

Disable RetroPie Splash Screen

One small change that I think makes the RetroPie experience a little nicer is getting rid of the RetroPie splash screen. Visually its cleaner to see the system boot and then Emulation Station loading… loading… loaded (and skip the tacky RetroPie splashes that are available).

To disable the splash screen exit Emulation Station by pressing F4 and start the RetroPie setup script:

  1. cd /home/pi/RetroPie-Setup
  2. sudo ./
  3. Select “SETUP (only if you already have run one of the installations above)” and press enter.
  4. From the list of Setup options, find “Configure Splashscreen” and press enter.
  5. From the Splashscreen configuration list, select “Disable custom splashscreen on boot” and press enter.
  6. Press enter to select OK on the confirmation screen.
  7. Now exit the Setup options by selecting “Cancel” and press enter.
  8. Now you should be in the main menu, find “Perform REBOOT” and press enter.

You should no longer see the RetroPie splash screen on startup.

Useful Controller Configuration Tips

Setup initial controller mappings using the following commands:

sudo cp /opt/retropie/configs/all/retroarch.cfg /opt/retropie/configs/all/retroarch.cfg.bak

cd /opt/retropie/emulators/retroarch/tools

./retroarch-joyconfig -o ~/retroarch-p1.cfg -p 1 -j 0

sudo cat retroarch-p*.cfg >> /opt/retropie/retropie/configs/all/retroarch.cfg

Exiting Emulators with Joystick PS3 Button

Mupen64Plus Config

Find the Mupen64Plus config file and search for the line containing “Joy Mapping Stop”. It’s likely not set to anything yet. Simply change the value to “J0B16” as seen below to allow the emulator to exit when the PS3 button is pressed.

Config file: /opt/retropie/configs/n64/mupen64plus.cfg

Joy Mapping Stop = “J0B16”

NOTE: value is case sensitive and requires capitals.


RetroArch Config

Find the RetroArch config file (these properties may exist already, but are likely not defined yet) and add the options below. You can exit the emulator using one of the two options listed below. Personally, I prefer to exit the emulator using the PS3 button as opposed to exiting by pressing Start + Select.

Config file: /opt/retropie/configs/all/retroarch.cfg

Exit using Start + Select

input_enable_hotkey_btn = “0”
input_exit_emulator_btn = “3”

NOTE: Hot button config for “select + start” to exit emulator

Exit the emulator using the PS3 button

input_exit_emulator_btn = “16”

NOTE: Exit emulator using PS3 “PS” button


PiSNES Config

Similar to the RetroArch config changes, copy the button values for Joystick from retroarch.cfg (/opt/retropie/configs/all/retroarch.cfg) to the PiSNES config file.

Config file: /opt/retropie/emulators/pisnes/snes9x.cfg

Exit using Start + Select

input_enable_hotkey_btn = “0”
input_exit_emulator_btn = “3”

NOTE: Hot button config for “select + start” to exit emulator

Exit the emulator using the PS3 button

input_exit_emulator_btn = “16”

NOTE: Exit emulator using PS3 “PS” button

Enable Multiple PS3 Controllers to Connect to Bluetooth

Exit EmulationStation and enter the following command to set Bluetooth in the “UP” state. This will only need to be done one time:

“sudo hciconfig hci0 up”

Now we need to make sure the Bluetooth is set to scan on startup. Add the following command to the file “/etc/rc.local” just before the “Exit 0”:

“hciconfig hci0 piscan”

Now reboot:

sudo reboot

NOTE: Currently the only way I’ve found to disconnect Bluetooth connected controllers is to reboot the Pi. This can be done directly from the EmulationStation menu and will turn off the remotes until they are manually turned on again.

Bypass EmulationStation No Controller Connected Screen

To disable the EmulationStation “No Controller Connected” screen, we can simply run through the controller setup once with a connected keyboard. Keyboard can be left plugged in or disconnected after that and controller prompt screen will no longer appear. Connecting PS3 controllers is still functional, simply press the PS3 button on each controller to turn them on and connect them.

View Firmware Version

If you’re curious which version of the Raspberry Pi firmware that is currently installed, run the following command:

sudo vcgencmd version

Restart/Shutdown (Command line)

sudo reboot

sudo poweroff


These steps should help you get almost everything configured for your Retro gaming Raspberry Pi. I’ve included references links below to all of the materials that I’ve found useful in configuring my own Raspberry Pi. If you have questions or need further direction I recommend looking through the links below for assistance as many of your questions may already be answered there.

Good luck and enjoy!

Reference Links

An A to Z Beginners Guide to Installing RetroPie on a Raspberry Pi

RetroPie ver 2.3: A Pictoral Primer

How to Build an All-In-One Retro Game Console for $35, the Easy Way

RetroPie Installation Guide For The Raspberry Pi

Guide to the RetroPie

RetroPie Project SD Card Image for Raspberry Pi 2

Raspbian + RetroPie + XBMC

NOOBS (New Out of Box Software)

Lightlight Pi

EmulationStation Getting Started
Raspberry Pi Config.txt Options

Wifi (Configure from Command line)

Install Updates (Debian Updates and RPi Updates)

View Firmware Version

Restart/Shutdown (Command line)


RetroPie Disable Splash Screen

RetroPie: Which Gamepad Should I Use?

RetroPie Keyboard and Controller Issue

RetroPie/RetroArch USB Controller Setup Help.

Useful Controller Configuration Tips For a Raspberry Pi Retro Gaming Centre


USB joystick for primary input device

Setting up a PS3 controller

Fixed PS3 Controller Steps

Setting Up a PS3 controller for mame4all pi

Raspberry Pi: Connecting multiple PS3 controllers via bluetooth

No Luck Getting Any Controllers to Work with Emulators

How to Setup a Controller in 2.2

Controller Setup Nightmare

Mupen64Plus Config – Exiting Emulator with Joystick

Setting up Dosbox games

Bypass No Controller Connected Screen by Setting up USB Keyboard Once

Enable Multiple Remotes to Connect to Bluetooth



OpenID Authentication Plugin for vBulletin 4

Recently I volunteered to help fix an existing project or develop an OpenID authentication plugin for the vBulletin platform. The group in need was and I would have never known if it hadn’t been for Jorge Castro’s public request for help.

The Story

The existing plugin had been developed specifically for vBulletin 3.x, however, they are (as of writing this) in the process of upgrading their forums to vBulletin 4 especially wanted OpenID to be available when they make the upgrade. That’s where I came in.

Canonical, the company behind Ubuntu, provided me with necessary software licenses for vBulletin 4 and from there it was a lot of late nights attempting to simply get a successful OpenID process to occur.

Working a full time job doesn’t make projects like this as easy as I remember them once being… Nonetheless I was able to successful port the plugin to vB4 where there were several significant differences that took me some time to address and to be honest, the previous code was a bit more complicated to follow than it should have been.

One major change from vB3 to vB4 was the way templates work. I’d never worked with vBulletin before, but I’ve had an extensive amount of experience with phpBB and bbPress in the past. After getting over the frustration of how vBulletin prefers to store ALL template information (in the database rather than pull from template files) I was ready to begin the repair process.

One major annoyance was that vBulletin 4 kept a “deprecated” method intact for vb3 templates that haven’t yet been ported and the deprecated method would printout a warning on the live page letting you know that you should update your templates. That’s not a problem, but vBulletin likes to only release helpful information to License holding, account proving customers. I had a license yes, but was not the owner and unfortunately I was unable to get much of a response from the Ubuntu mailing list about getting access to vBulletin’s online support section.

For anyone having similar issues, I’ve posted the error message that I first came across below. If you got here, then you probably found the vBulletin post regarding this, but if you don’t have access like I didn’t then you’re still in luck…

Warning: fetch_template() calls should be replaced by the vB_Template class in [path]/includes/functions.php on line

While it was pretty clear that fetch_template() was deprecated, I was unable to get a clear usage example of how to use the new vB_Template class. I finally came across a post on StackOverflow that was exactly what I needed. Other issues that I had with fixing the plugin were some issues with SQL queries and were much more critical.

I wrote an article recently on how to debug PHP in real time as you’re using/executing a page or function… all through the very well known Eclipse IDE. If you’re interested in PHP development then you should certainly take a look at that post as it walks you through the setup and will make your life much easier. After tracing through the code over and over, each time finding new little issues and having to walk through the entire log in process again each time… I’d finally managed to get a successful authentication. So, I took a screenshot of my development environment…

vBulletin OpenID Plugin First Success

It wasn’t long after the first success that I was able to pin point other problematic spots faster and then from there everything just fell into place. In fact I had “full functionality” only about an hour after the first success. That didn’t mean that I was finished.

There were still a lot of minor issues that I’d found with the code. Array index out of bounds, corrupt query results in some situations causing a critical database error page to appear, unhandled invalid urls would take the plugin for a ride and ultimately crash, etc.

I’ve now worked out all of the issues that I came across from my own testing. Hopefully Ubuntu and Canonical won’t find any either and the upgrade can occur soon!

Download for Free

If you’re here for this plugin then I’m sure you’ve seen that there aren’t many (dare I say any) that are working, free or at least reasonably priced. Fortunately this plugin is based on an open source PHP OpenID library and Canonical apparently plans to maintain it from here on out in their source control service.

Before you download: I’ve posted a direct download the vanilla release that I first pushed to Canonical, however, its in your best interest to check for a newer version on their source control page for this plugin. That being said, feel free to continue on to download!

Download from me (last updated 2012-09-29)

Download from Canonical


This plugin contains a README and INSTALL file that should go into plenty of detail to help you install and get going in no time at all. The only thing that is left for you is to optionally improve on the simplistic log in form as seen below.

vBulletin Simplistic OpenID Login Form

While I do indeed love web design and development, I left the OpenID log-in form simplistic for one reason: Every web designer designs differently and its a waste of my time to put much effort into this when people who use it will likely want to use it in a way I never considered. The good news is that, it doesn’t appear in the header by default, so you can actually place this little form ANYWHERE you want. However, due to obvious reasons, you’ll likely find the header as I’ve done to be easiest as it automatically disappears one the user is logged in.


It’s been a fun month or month and a half that I’ve spent dabbling on this plugin. I’m always happy to contribute where I can to communities that I’m interested in or proud of and I consider this volunteer effort to be no different.

I’m also a little excited to see how the vBulletin community accepts this plugin. Will it be a boom or a bust? Only time will tell, but until then hopefully will be enjoying OpenID functionality!

Debugging PHP in Ubuntu using Eclipse

This guide walks you through the necessary steps to configure the Eclipse IDE for PHP debugging. This can be very handy, especially when you’re trying to resolve an issue in a complex PHP application or plug-in.

Things you’ll need

  • Eclipse
  • Eclipse PHP Development Tools (PDT)
  • Xdebug
This article assumes that you are configuring Eclipse and Xdebug for development on a localhost web server. If you are not, be sure to make appropriate adjustments to accommodation your needs. Likely the only changes you will need to make will be differences in connecting to your server verses localhost.

Quick Overview

For those that are unaware, Eclipse is a very popular IDE for developing in Java. However, Eclipse is much more powerful than that and can in fact easily be used for developing in many other languages including PHP.

Xdebug is a brilliant debugging extension designed for use with PHP. Once configured, Xdebug will allow you to remotely connect to your web server… or in my case connect to my development localhost web server. Rather than using crude echo and logging techniques to debug your PHP code, Xdebug allows you to literally step through and inspect values and function flows in real-time.

If you’ve ever scratched your head at a PHP script and thrown in dozens of echos or logging statements to track the execution path then you’ll really come to appreciate the benefits of using Xdebug.

Configuring Eclipse and Xdebug isn’t difficult. In fact its painless with the correct steps on hand. That’s where this guide comes in. I found myself coming across incomplete or outdated forum posts and stackoverflow questions, so I thought I’d post what worked for me.

If you already have Java and Eclipse installed, then just jump ahead to installing and configuring the PHP Development Tools and Xdebug.

Install Eclipse

This will install ~118 new packages, assuming you’ve not already installed some of them, and will total around 255 MB that need to be downloaded.

  1. Open a terminal and enter the following command to install Eclipse:
    sudo apt-get install eclipse


  2. After the download completes, open Eclipse to confirm that it installed correctly. Leave it open for our next install.

Install PHP Development Tools (PDT)

  1. If you don’t have Eclipse open at this point, open it up.
  2. Navigate through the menus to: Help -> Install New Software…
  3. You will be prompted with a new window asking you to select a site or enter the location of a site. You should be able to drop down the list of sites and find one labeled “–All Available Sites–“. Select this option and wait for the list below to populate.

  4. Scroll through the list until you find a category labeled “Programming Languages” and click the arrow to expand this list.

  5. Continue to scroll through the Programming languages until you find a item labeled “PHP Development Tools (PDT) SDK Feature” and check the box to the left.

  6. Click Next and continue throw the installation. You’ll have to select that you agree to the terms of installing this software.
  7. After the installation has completed, you will be asked to restart Eclipse to apply changes. Go ahead and restart Eclipse, then move on to the next install.


Install XDebug

  1. Open a terminal and enter the following command to install Xdebug:

    sudo apt-get install php5-xdebug

  2. After installation completes, there are a couple of files that need to be configured. If you copy and paste the commands below, make sure to check that the quotes that are copied over are regular quotation characters, as they may cause problems if they are not.
    1. sudo gedit /etc/php5/conf.d/*xdebug.ini 


      xdebug.remote_enable = 1
      xdebug.remote_handler = “dbgp”
      xdebug.remote_host = “localhost”
      xdebug.remote_port = 9000 

    2. sudo gedit /etc/php5/apache2/php.ini 

      Scroll to the bottom and add:


  3. Restart your Apache server so that the new PHP configuration settings are loaded.

    sudo /etc/init.d/apache2 restart

  4. Confirm that your Xdebug installation was successfully loaded by creating a simple PHP file called “phpinfo.php” and placing it in the public root of your Apache web server. Be sure to include the following in your file, save it then navigate to it in your browser:

    <?php phpinfo(); ?>

  5. After loading the php info page, search for “xdebug”. If you find it listed, then you have successfully installed and configured Xdebug. If not, check back over the steps listed above or consult Google.
Configuring your Eclipse project to connect to Xdebug
After you’ve finally gotten everything installed, you’re probably anxious to start debugging. You’re not far off. The only thing that’s left is to import your PHP script or site and establish a Debug Configuration for your project.
To import a site, simple select: File -> New -> Project… -> PHP -> PHP Project. This will open a new window where you can open PHP files from and existing location. Assuming this location is in your public root directory in Apache, you can work with these scripts in real-time.
After importing these existing files, right click on your new project and select: Debug As -> Debug Configurations…
Make sure that you’ve selected Xdebug as the Debugger type. Click Apply and then Debug. This will open a “Debug” perspective in Eclipse, allowing you to view variables and stack traces live. Assuming you’ve created a breakpoint or selected to break at the first line of the file, you should now see your PHP script paused waiting for you to debug!
Tip: If you’re planning to debug a large project such as a WordPress, phpBB, vBulletin or any other large web application, pointing the Debug Configuration to your index.php makes debugging much easier.
Congrats! By now you should be beginning a new road to a much easier life of PHP development.
If you have any questions, comments or suggests feel free to let me hear them below! I’ll try to help where I can, but I can guarantee I’ll know how to solve any of the issues you may encounter. 😉

Making CSS UL Menu’s Browser-Consistent

If you’ve ever made a web site and wanted it to look consistent from one browser to the next, then you’re well away of the difficulties that are involved. Fixing these sorts of styling issues can be a major annoyance, however, I like to hunt down issues on my own pages from time to time and stand up to the challenge.

One issue that I can across today was dealing with horizontal menu positioning using unordered lists (<UL>) and some positioning. The positioning wasn’t consistent between browsers or even operating systems.

The bad

I started by opening the affected page in multiple browsers (Internet Explorer, Safari, Chrome, Opera & Firefox) on multiple computers (Mac, Linux & Windows) and getting some initial comparisons. There were 3 different variations and (oddly enough) the same browser didn’t necessarily render the same on a different operating system. So there I was. A puzzle… and I like puzzles.

Some of the first things that I inspected were font sizes and families. It occurred to me that different operating systems may differ in fonts, so it seemed like a good starting point. I tested this by forcing a common font: Arial. That wasn’t the problem. The inconsistencies remained consistent.

I also checked into the possibility that the <UL> or <A> elements were applying different heights. Typically anchor elements, <A>, use a display style of inline. If you’re implementing a menu similar to mine then you’re likely applying a block style, which permits better dimension definition of the element. Forcing height on these elements also did not resolve the issue.

I was running out of ideas, but then it hit me. Line-Height. While the other styles appeared to be consistent between browsers and operating systems, there was one style that I’d previously worked with and knew was certainly NOT consistent: line-height.

The good

After forcing a consistent line-height in my CSS, all browsers suddenly began respecting my intended styling. Sigh of relief.

On that note, its worth bringing up the success that browser competition has brought to HTML and CSS rendering standards over the past few years. The push for the fastest and most capable browser has brought a scattered group of browsers a little closer and the result is that we get to enjoy dealing with fewer and fewer bugs.

While your average Joe web developer may have dug around for hours for this issue to no avail, I must say… I thought it was nice to face such a subtle issue rather than being forced to use some crazy IE specific hacks like for legacy IE.

[How to] Create a bootable USB stick on OS X

A couple of days ago I decided to reinstall my operating system since it was failing. I quickly realized that the only functional system that I had at the time was my MacBook Pro. After a bit of Googling, I came up with a pretty straightforward guide, but they really could have formated it to make it easier to follow.

I’m going to run you through the same steps and you should be able to use this guide to create a bootable USB stick for Windows, Ubuntu, Fedora, etc.

The Guide

  1. Download the disc image that you want to use. (I’ll use Ubuntu in my example, but you can use Windows or whatever you’ve downloaded.)
  2. Open the Terminal (in /Applications/Utilities/ or query Terminal in Spotlight).
  3. Convert the .iso file to .img using the convert option of hdiutil as shown below (replace the paths and image names to suite your needs):

    hdiutil convert -format UDRW -o ~/path/to/target.img ~/path/to/ubuntu.iso

    Note: OS X tends to put the .dmg ending on the output file automatically, creating the file target.img.dmg. I’ve always removed the .dmg extension.

  4. Run diskutil list to get the current list of devices.

    diskutil list

  5. Insert your flash media.
  6. Run diskutil list again and determine the device node assigned to your flash media (e.g. /dev/disk2).

    diskutil list

  7. Run diskutil unmountDisk /dev/diskN (replace N with the disk number from the last command; in the previous example, N would be 2).

    diskutil unmountDisk /dev/diskN

  8. Execute sudo dd if=/path/to/downloaded.img of=/dev/rdiskN bs=1m (replace /path/to/downloaded.img with the path where the image file is located; for example, ./ubuntu.imgor ./ubuntu.dmg).

    sudo dd if=/path/to/downloaded.img of=/dev/rdiskN bs=1m

    Using /dev/rdisk instead of /dev/disk may be faster
    If you see the error dd: Invalid number ‘1m’, you are using GNU dd. Use the same command but replace bs=1m with bs=1M
    If you see the error dd: /dev/diskN: Resource busy, make sure the disk is not in use. Start the ‘Disk’ and unmount (don’t eject) the drive.

  9. Run diskutil eject /dev/diskN and remove your flash media when the command completes (replace N with the disk number).

    diskutil eject /dev/diskN

  10. Restart your PC and enter the boot options to choose the USB stick. If you’re installing to your Mac, restart and press alt/option key while the Mac is restarting to choose the USB stick.

If you’ve made it this far, then you should be well on your way to installing a new operating system. Good luck!

Ubuntu Software Center vs. Mac App Store

As many of you may already know, Mac OS X now comes installed with a “Mac App Store”. Ubuntu also comes installed with an “Ubuntu Software Center”. Both of these applications serve the same general functionality in very similar formats, but I’m going to take a look at what needs to be improved in the Ubuntu Software Center.

First off, lets take a look at both of these applications from a first impressions point of view. Its pretty obvious at a glance that the user interface of these applications are eerily similar. It’s also pretty obvious that one app has received a little more attention to detail and aesthetics.

First Glance

The Mac App Store features a rolling banner at the top which highlights new or popular items. This is something that Ubuntu has not adopted. Not that its necessary, but it’s certainly a nice touch.

Both applications feature a “What’s New” and “Top” section, but in Ubuntu the presentation is… well, lacking to say the least. You can probably see a different in the thumbnails above with the polished Mac App Store that seems to just pop and the Ubuntu Software Center that just seems dull and with little focus.

I seem to recall mention of Ubuntu trying to improve the quality of application icons and screenshots. This could go far for improving application presentation! As Ubuntu is increasingly becoming more and more popular, the need for a matured and polished software center is greater than ever.

Now lets look at what kind of information and selling points the Mac App Store offers when you select an item that you may be interested in installing.

Mac App Store – Application Profile Page

The Mac App Store shines with its prevalent display of the item’s icon, a well written brief description and most importantly a screenshot gallery. While a short description of the application is an obvious requirement, the screenshot gallery may be the single best-selling point for an application. These screenshots have the power to showoff not only how nice your application is, but more importantly what it can do! It seems that authors tend to pick a handful of well-chosen screenshots to give a thorough glance at the features and functionality available.

Some other nice details that the Mac App Store offers include information about the author and their website, the application’s version and release date, and of course a customer review section. The review section is just like any other review section, though it does provide a nice break down of the ratings. It’s easy to see the overall rating of an application as well as how many users rated it a one star, two star, three star, etc.

Now lets take a look at what we get from the Ubuntu Software Center.

Ubuntu Software Center – Application Profile Page

The Ubuntu Software Center has actually evolved a great deal over the past couple of years. Just like the Mac App Store, Ubuntu offers a prevalent application icon, a brief description and, when available, a screenshot. However, the simple presentation of these three important details is somewhat lacking.

As mentioned before, it’s not uncommon to find an application with a very poorly created icon. You may also, at times, run into the issue of a poorly written description or find an application with no screenshot available. Even when you find an application which has all the above, you’re only presented with one screenshot which opens in a new window and not simply featuring the larger view from within the software center itself.

Some improvements that I’d personally like to see would be an implementation similar to the gallery in the Mac App Store. I’m not saying I’d like for Ubuntu to clone the Mac App Store, but its clear why improving this feature would be very beneficial for the Ubuntu Software Center.

It would also be nice if the Ubuntu Software Center would pull screenshots of these applications (possibly from their own servers) that are taken in the Radiance or Ambiance theme. I’m sure it can be a little confusing for some when they see a screenshot with a non-default theme applied to it. This is a change that Ubuntu should consider for user familiarity and consistency.

Other important details that the Ubuntu Software Center offers include the application version, a “People Also Installed” section and user reviews. While the availability of the application version is certainly great, the complex versioning system that is so often used in Linux may make it useless for some. I understand the Chromium Web Browser version 18.0.1025.168~r134367-0ubuntu2, however, many people may find this less than ideal.

As for the user reviews, Ubuntu has done a nice job of making it easy to review and contribute to the success or demise of any given application. I’d still like to see a break down of the rating for each level like the Mac App Store does.

Now lets talk a little about some very poor user interface designing…

Ubuntu Software Center – Interface Design

What happens when you view a category or perform a search in the Ubuntu Software Center? Simple, you get a list. What kind of list you may ask? A very space inefficient list that leaves the user endlessly scrolling through results while appearing to be a half-assed implementation.

Mac’s approach to situations such as displaying categories or search results is to throw the results into a table-like layout. While this is a nice implementation, it’s not necessarily the best. There’s one thing that I know for sure though, and that’s the fact that Ubuntu’s current implementation just doesn’t cut it.

Other weaknesses in the design of the Ubuntu Software Center can be attributed to lack of visual divisions between applications in a list or important application details, poor color contrasts, inconsistent styling and a general feeling of the overall application’s color being desaturated.

As far as the poor color contrast, there are many areas throughout the software center that could benefit from adjusting the colors to focus the important content, make it stand out and shine, and make the less important details fade into the background. This technique helps to remove the feeling of having such a cluttered interface while retaining all the same information.


While Mac has always had the edge on other operating systems as far as offering a polished user interface, Ubuntu has come a long way and will continue to improve. Unfortunately, for the last few releases, Ubuntu has been overly focused on their Unity environment and this has left a lot less time for them to spend on improving other very important aspects of the operating system… such as the software center.

That being said, the Ubuntu Software Center certainly is a very usable tool and is much better than it has been in the past. One great thing about open source is the ability to take a bit of code, improve it and then release it as potentially a better alternative. That’s just what happened when Linux Deepin released the Deepin Software Center.

Lets just hope that the Ubuntu developers have taken note of this and will continue to strive for the best possible Linux experience.

First Time to the West Coast

I went on a business trip recently to Reno, NV. While I was out that way I decided to make a quick trip to Los Angeles, CA and see the West Coast for the first time.

It was a fun trip and I took a lot of pictures. Unfortunately it rained most of the time I was in LA and the pictures I took didn’t turn out as well as I’d hoped. I do however have some pretty fantastic pictures from my trip that I wanted to share.

Me at North Lake Tahoe in Nevada.

Me at North Lake Tahoe in Nevada.

Room 1191 view from the Grand Sierra Hotel & Resort.

Room 1191 view from the Grand Sierra Hotel & Resort.

This was a pretty interesting view with the clouds and the mountains surrounding everything. There was basically a 360 degree view of these mountains.

The Casino in the Grand Sierra Hotel. It went on and on and...

The Casino in the Grand Sierra Hotel. It went on and on and...

I only gambled $20, but left with 39 extra bucks!

I only gambled $20, but left with 39 extra bucks!

I’m not really into gambling, but I had to give it a shot since I was there. I played Black Jack with $20 with $5 minimum bets and walked away with $59. Naturally I had to keep a few chips as souvenirs.

Oh how I love this view...

Oh how I love this view...

Coming in for a landing in Los Angeles, CA at LAX.

Coming in for a landing in Los Angeles, CA at LAX.

I thought this view was pretty amazing the way everything is so flat and all of a sudden these huge mountains just jet up, lol.

Hotel view in Los Angeles. It was cheap. That is all.

Hotel view in Los Angeles. It was cheap. That is all.

Hollywood Park Casino

Hollywood Park Casino

Hollywood Park...interesting place.

Hollywood Park...interesting place.

Why don't the cabs just do this in Raleigh instead of calling?

Why don't the cabs just do this in Raleigh instead of calling?

I had to take a picture of this. Don’t you dare laugh at my phone. 😛 I don’t understand why cabs back home try to call to let you know they are on their way rather than just automating a simple text like this.

View from 189 The Grove Drive, Los Angeles, CA 90036 (The Grove La)

View from 189 The Grove Drive, Los Angeles, CA 90036 (The Grove La)

While I was in LA, I managed to meetup with a friend of mine and went to see a band that he knew. The area where they played was very festive and neat, but you’d never know that you were in the city until you saw the view above.

Overall it was a really fun trip. I’ve been all up and down the East Coast, but this was a first for me. Previously I’d only ever been as far west as Kentucky. Eventually, though, I had to return home…

Leaving Los Angeles, another stunning view.

Leaving Los Angeles, another stunning view.

It’s funny when you’re leaving LAX to go back to the East Coast, because you flight in the wrong direction out over the Pacific for a solid 5-10 minutes before turning around back over land.

The ocean from this altitude was amazing. The waves that you see in the bottom right corner of the image above appeared to be as motionless then as they are in the picture. It was like the ocean had suddenly frozen solid. Crazy cool.

Not exactly sure where this was, but it looked cool.

Not exactly sure where this was, but it looked cool.

One thing that I couldn’t get used to was just how brown everything was. I’m used to the green mountains of Western North Carolina, but it’s always interesting to see how different each new place can be.

Finally a view that wasn't completely foreign to me.

Finally a view that wasn't completely foreign to me.

Create a Bootable Windows 7 x64 Install Flash Drive from 32-bit Windows

Creating a bootable Windows 7 x64 flash drive from within a 32-bit install of Windows is not as straight forward as it may seem. I recently had to go through this process myself, so I’ll document the steps below.

Things you’ll need

  1. Windows 7 x64 disc image
  2. Windows 7 USB/DVD Download Tool
  3. 32-bit bootsect.exe

Create the installer

  1. Install the Windows 7 USB/DVD Download Tool.
  2. Extract the 32-bit bootsect.exe file to the directory that the Windows 7 USB/DVD Download Tool was installed to. This is usually something like “C:\Users\username\AppData\Local\Apps\Windows 7 USB DVD Download Tool“.
  3. Run the Windows 7 USB/DVD Download Tool and select your Windows 7 disc image. Follow the remaining steps in this tool and your image should be created successfully!

If you’ve followed these steps and your flash installer was created successfully then your next step is to, of course, install Windows 7! Don’t forget to change your boot options to load from USB!

This information is scattered on the web and slightly detailed on the Windows 7 USB/DVD Download Tool page, but I was not able to find a guide laid out as simplified as the one I’ve provided above. In most tutorials they suggest that you download the entire 32-bit iso in order to get the 32-bit bootsect.exe application, but I’ve made that step a lot less troublesome. Hopefully this has helped you!

Nvidia patches a bug I’ve waited 9 months for…

I’ve been following an Nvidia bug that’s been affecting me for a while now and am happy to say that its apparently been fixed! I say apparently, because I’ve not been around my Linux box for several days (due to the holidays) and haven’t had a chance to confirm for myself.

If you have an Nvidia card, especially the 7300le model like I have, and have had difficulties using Unity 3D with the proprietary drivers, then you may have experienced this bug: [nvidia, 7300, 7400] display freeze when using unity desktop

Nvidia has just released an update which resolves this issue and it can easily be installed right away!

Release highlights since 275.36:

  • Fixed a bug that would cause Firefox to abort on pages with Flash when layers acceleration was force-enabled on Linux and Solaris.
  • Fixed a bug that could cause display devices on a secondary GPU to get swapped between X screens when restarting the X server.
  • Fixed a regression that caused blank/white windows when exhausting video memory on GeForce 6 and 7 series GPUs while using composited desktops.
  • Fixed a bug that caused a crash when glDrawArrays was used with a non-VBO vertex attribute array to draw on a Xinerama screen other than screen 0 using an indirect GLX context.

The 275.43 NVIDIA Accelerated Linux Graphics Driver Set for Linux/x86 is available for download via FTP.

The 275.43 NVIDIA Accelerated Linux Graphics Driver Set for Linux/x86_64 is available for download via FTP.


Please see the README (x86 / x86_64) for more information about this release.


Please note: This NVIDIA Linux graphics driver release supports GeForce 6xxx and newer NVIDIA GPUs, GeForce4 and older GPUs are supported through the 96.43.xx and 71.86.xx NVIDIA legacy graphics drivers. GeForce FX GPUs are supported through the 173.14.xx NVIDIA legacy graphics drivers.


Please also note: If you encounter any problems with the 275.43 NVIDIA Linux graphics driver release, please start a new thread and include a detailed description of the problem, reproduction steps and generate/attach an nvidia-bug-report.log.gz file (please see for details).

If you’re seeing the same problem and would like to test the update, there are a few specific instructions that you may (or may not) need to follow, posted here.

What do you install in your Ubuntu?

I’ve been keeping lists for a few years of the applications that I install every time I do a fresh install of Ubuntu. I recently made a new list for Ubuntu 11.10

  • Cheese
  • Chromium Web Browser
  • CompizConfig Settings Manager
  • Dropbox
  • EasyTAG
  • Enable Commercial DVD Playback
  • FileZilla
  • Geany
  • Opera Web Browser
  • RapidSVN
  • Spotify
  • The GIMP
  • Ubuntu Restricted Extras
  • VLC
  • Wakoopa

The applications that I install haven’t changed a whole lot over the years, but it leaves me wondering what applications make the cut for others!


Site Menu