Friday, November 20, 2009

CXGames 8.1 (Zombie Mallard) Overview

Left 4 Dead 2 was one of the most anticipated games of 2009 (even with the boycott). Even before its full release (the demo opened to players a few weeks prior) the good people over at Codeweavers where hard at work making sure their CXGames software would be ready to allow Linux/Mac gamers everywhere to fully enjoy this latest edition to Valve's source games. Less than twenty four hours after L4D2 hit shelves (digital and otherwise) CXGames 8.1 (codename Zombie Mallard) was released.

This newest update to the CXGames line is really just a small update (as the version number increase of .1 implies) rather than a full upgrade. In fact depending on what games you play - you might not even notice a difference between this and the previous 8.0 release. From the official 8.1 change log:
  • Add support for Left 4 Dead 2
  • Fix a problem with directory permissions in World of Warcraft in Ubuntu 9.10
  • Fix a number of problems with Guild Wars
  • Fix a number of Mac audio issues which should fix Steam voice chat
  • A few minor adjustments for Snow Leopard
  • Fix a bug registering CrossOver under Snow Leopard
What makes this release so special then? I feel it important because it displays Codeweaver's dedication to their product. They are obviously aware of what their users want and what is going on in the gaming community at large. This CXGames update, I feel, shows how they plan to react to big releases in the future. I say this because the main reason for this CXGames update is to add support for L4D2 (in addition to the various other small bug fixes listed). This gives me great hope that they will be quick to the draw in their supporting of other soon to be release big name titles such as Starcraft II and Diablo III. As a side bar I feel it is also worth mentioning that performance under CXGames 8.1 is about the same as it was under 8.0 (And Left 4 Dead 2 benchmarks about the same as L4D)

All in all I am very pleased with this latest release of CXGames and for any Linux gamer who wants to quickly and easily rock out on L4D2 there is no doubt about it - "Zombie Mallard" is a must have (as L4D2 fails to run at all under Cedega). Hopefully I will catch some of my fellow Linux Gamers online putting bullets into the brains of the walking-dead some time soon :) Happy Fraging All!

~Jeff Hoogland

Friday, November 13, 2009

Wine, Cedega, and CXGames Benchmark Comparision

In one of my earlier postings I did a compare and contrast of the various different features Cedega and Codeweavers offer. Today I am going to try leave my opinions aside and stick strictly to the numbers. Source Engine games are some of the most popular played today so I feel it is only fitting I use them to test the Wine software we have today.

The Test: I will be running an FPS test under both the original source engine (Counter Strike: Source) and the latest version of the source engine (Left 4 Dead). For each test I used the same detail settings and tested each game at three different resolutions, using each Wine, CXGames, and Cedega.

The Hardware: While my hardware is not fastest in the world it is (as of posting this) relatively new and decently quick. Processor - Intel p9700 2.8ghz Dual Core, RAM - 4gigs of DDR3, Video Card: nVidia 260m with 1gig DDR3 dedicated memory.

The Software: Ubuntu 9.04 (Jaunty), 64bit. Running the nVidia 190.42 driver

The Wine Programs Used: The following test results where obtained using CXGames 8.0.0, Cedega 7.3.3, and a vanilla install of Wine 1.1.32 (all latest versions as of today).

The Results:
Counter Strike - Source
  • Resolution: 1680x1050
  • - Wine: 72.29 fps
  • - CXGames: 153.03 fps
  • - Cedega: 113.83 fps
  • Resolution: 1024x768
  • - Wine: 49.33 fps
  • - CXGames: 163.03 fps
  • - Cedega: 119.22 fps
  • Resolution: 640x480
  • - Wine: 63.23 fps
  • - CXGames: 179.94 fps
  • - Cedega: n/a
Left 4 Dead
  • Resolution: 1680x1050
  • - Wine: 12.41 fps
  • - CXGames: 25.46 fps
  • - Cedega: 31.69 fps
  • Resolution: 1024x768
  • - Wine: 25.37 fps
  • - CXGames: 20.25 fps
  • - Cedega: 68.34 fps
  • Resolution: 640x480
  • - Wine: 20.7 fps
  • - CXGames: 22.05 fps
  • - Cedega: 67.83 fps
Things Worth Noting: As you can see all three are able to perform the first test at a relatively decent FPS - however both Cedega and CXGames far out perform a vanilla Wine install. Also worth noting is the fact that Wine actually took a performance decrease when running at lower resolutions (I was very surprised by this, in fact I ran the test three times at each resolution just to confirm it was accurate). I'd like to point out as well that Cedega failed to load CSS for me in the 640x480 resolution - thus the n/a score.

Left 4 Dead is where we really see a difference between the different pieces of software. Both Wine and CXGames where unable to break the 30fps marker while Cedega was able to snag 31fps on my high resolution and over twice that frame rate on lower resolutions.

Wrapping Up: Please remember to take my above listed scores with a grain of salt - as your own mileage may very well vary depending on your particular configuration. Also remember the Wine install I used was a vanilla install. Meaning that odds are it could stand to be tweaked a bit to get a slightly better frame rate. Lastly remember when trying to get the most out of your Linux Gaming experience be sure to optimize where ever you can.

~Jeff Hoogland
Please note while these benchmark scores presented are accurate to the best of my abilities, they only represent my personal hardware and software configurations. Your results on your own system(s) may vary (and if they do, please share them!).

Wednesday, November 11, 2009

HOWTO: Setup a Linux Storage Partition

Anyone who has use a computer for an extended length of time knows that reformatting now and again is inevitable. For a distro hopper such as myself reformats come much more frequently than they do for most others. At any given point it is not uncommon for me to have two or more Linux distros installed on each of my laptops at the same time. While I like testing new things I also enjoy my laptop being fully functional in the processes and for it to be so I need access to my files regardless of whether I am booted into the latest Ubuntu, Sabayon, Fedora, or what ever other new distro I might be trying that week. While it is possible to share a single home directory for these different distros it can get messy to say the least - different versions of different programs all trying to save settings to the same places (You can see where this can cause issue).

The solution I have come to for such a dilemma is partitioning off a section of my hard drive as a "storage" partition. Essentially this is a large section of the hard drive that is not set to a default mount point for any of the installed distros (on my system I have this partition set to the first part of my extended partition, so sda6, that is formatted as ext3). Once you have your distro installed you can setup your storage partition to be the default save location for many things with a few simple commands. The first thing we need to do is create a location to mount your storage partition to, I like to use the point /mnt/storage (but you can use what ever floats your boat) to create such a point run the following in your favorite terminal: sudo mkdir /mnt/storage Next we have to tell your distro what to put at that mount point - to do this we are going to add a line to our /etc/fstab to do so open the file as super user in your favorite text editor by running something like: sudo gedit /etc/fstab Once you have the file open we are going to add a new line that looks something like this: /dev/sda6 /mnt/storage defaults,exec ext3 0 0 Now assuming you used the first partition on your extended partition for your storage space and the mount point you created is located at /mnt/storage upon rebooting your system it will auto mount your partition for you. (If you need to use a different partition, mount point, or file system type scroll down to the second to last section to see the edits you need to make for the above listed fstab entry to work).

Now that we have your partition setup to mount properly lets configure it so it stores (or looks for) your data there! Things I like to keep on my data partition are my Documents, Pictures, Videos, Downloads, and large game installs (namely Steam). Take any folders you want to keep on the storage partition and cut and paste them there. The last step is to make these folders we have now moved to the storage partition point to their original location using a symbolic link or symlink for short. For example to link a your Documents folder from your storage partition back to your home folder run the following: ln -s /mnt/storage/Documents ~/Documents Lets take a look at this command for a moment ln is the link command and the -s argument tells it to make a symbolic link, then the next two arguments are the source of the actual folder and then the destination to place the link. The result of running the above command is the creation of a folder in your user's home directory called "Documents" that when clicked into shows the contents of the Documents folder on the storage partition. You should repeat the above listed symlinking command for each folder you want to keep on the storage partition.

If you used a different hard drive/mount point/file system than the ones I initially suggested, it is easy enough to change you fstab entry so it works for your particular configuration. The syntax for an fstab line is: [file system] [mount point] [type] [options] [dump] [pass] The important ones are the first three [file system] is the location on your hard drive of your storage partition, for example if it is the first primary partition it would be /dev/sda1. The second part [mount point] is where you want to mount your partition to, just replace this with what ever path you created. The last one we care about is [type] this is simply the file system type you have your partition formatted to (ext3, ext4, ect.). What the remaining three arguments do is a bit beyond the scope of this article take a look here for further reading on them.

Personally I find having a storage partition extremely useful in the case of both multiple distros installed and when reformatting (I do not like to reuse a home folder). All in all it cannot hurt to set one up so - give it a try and let me know what you think!

~Jeff Hoogland

Monday, November 9, 2009

(wx)Maxima - An Open Source CAS

The original use for computers when they where first created was to have them compute numbers. When they first came about computers where contained in large rooms and where only able to make the most basic of calculations, as time has progressed how ever our systems have steadily gotten smaller and more powerful. At this point in time there is very little (given enough time) our computers cannot calculate.

How exactly do we make our computers run such calculations? Our systems are useless without software to run on them - enter the world of CASes or Computer Algebra Systems. A CAS is a type of software that allows the computer to perform calculations such as algebra, calculus, generation of two and three dimensional graphs, as well as more simple computations such as basic addition, subtraction, multiplication, and division.

Maxima is an open source, cross-platform, computer algebra system. On its own Maxima is simply a command line interface (CLI) that gives you access to a whole slew of different commands that allow you to perform just about every type of useful math function you can think of. From Maxima's homepage:
"[Maxima] is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors."
From personal experience as a math student I can say that having a CAS at my disposal both in class and for take home work has been invaluable. Such software allows the user to better focus on the new lesson at hand rather than get caught up in sticky, time consuming applications from long past lessons such as algebra.

The syntax for Maxima commands is extremely easy to pick up, especially if you have any kind of programming experience (in fact for the most the the function syntax largely resembles the python scripting language). Maxima also does a great job of defining functions and variables, so if you have a certain complicated number or complex function you are going to be making multiple calls of you do not have to fully type it out more than once. One of my favorite features of Maxima is how it labels inputs (%i1) and outputs (%o1). For each additional input/output the number value is increased by one. By labeling them all as such it makes it very easy to recall a certain value you obtained earlier on, thusly reducing the amount of typing needed and greatly lowering the chance of human error (such as transposing or leaving out numbers/decimal places).

Now a CLI is fine and dandy if you are intimately familiar with the software, however for the beginning user this is not so useful. One solution to such an issue would be to dive in reading documentation detailing the different functions and their syntaxes, however this can be a cumbersome task and for the average user - especially if you just want to do a few calculations and get on with the rest of your work. A more viable solution is something along the lines of wxMaxima, an open source, cross-platform, GUI (graphic user interface) front end for Maxima.

wxMaxima does a good job of organizing the different functions Maxima provides into different categories such as: Equations, Algebra, Calculus, and Plots. Such organization allows for someone who has never used the software before to quickly find the function they are looking for and provides easy dialog boxes for entering the inputs the function requires to be used properly. wxMaxima also helps teach a user the CLI as they use the program, as each function is called it displays how the syntax should look when the command is run. The last feature I want to mention that wxMaxima provides is saving your work, if you have a set of functions you plan to use on a regular basis you can save the file to be reloaded at a later date. Also present is the option to export your work to either an HTML file or a LaTeX file if you wanted to send it to someone else to view.

All in all I think Maxima is a fantastic piece of software and it is easily on par with commercial CASes such as Maple. If you are a math or science student or someone who works with complex functions and numbers in the field Maxima is definitely worth taking the time to check out.

~Jeff Hoogland

Thursday, November 5, 2009

My Linux Gaming Experience

Arguably gaming is the one place in which Linux is sorely lacking. Very few titles release with a native installer for this platform and as such many say gaming is impossible on Linux. This is just not true. For a long time I was a "hardcore" gamer, spending easily over forty hours a week in front of my computer playing various online games. In the last couple years I have slowly moved into the "casual" gamer category. On average I spend between ten and twenty hours a week currently playing various PC games. As they are PC games very obviously I run them on my computer and my computer only contains an Ubuntu as an operating system - as such this also means all the games I play run on Ubuntu. Ubuntu is fully ready for desktop systems and for a casual (or in some cases even hardcore) gamer it is more than capable of running most of the important titles. The following are games I enjoy on a regular basis on Ubuntu (and how I run them):

Starcraft - Wine with Windows version set to 98
Warcraft III Frozen Throne - Wine with default settings
Diablo 2 - Wine with default settings
Counter Strike: Source - Wine with default settings. I set the game to run with dxlevel 81 to obtain a better FPS
Team Fortress 2 - Wine with default settings. I set the game to run with dxlevel 81 to obtain a better FPS
Left 4 Dead - Cedega using the Left 4 Dead profile.
Left 4 Dead 2 - CXGames with default settings
Borderlands - Cedega using the UT3 profile
Unreal Tournament 3 - Cedega using the UT3 profile
Killing Floor - Cedega using the UT3 profile
Unreal Tournament 2004 - Native Linux Installer
Savage 2 - Native Linux Installer
Morrowind - Wine with default settings
Oblivion - Wine with default settings
Crysis - Cedega using the UT3 profile and a few native dll over rides
Half-Life 2 - Wine with default settings
Pirates, Vikings, and Knights - Wine with default settings
Guild Wars - Wine with default settings
Day of Defeat: Source - Wine with default settings. I set the game to run with dxlevel 81 to obtain a better FPS
Dark Messiah Might & Magic - Wine with default settings.

As you can see its a fair size list of games. These are just the ones I play personally there are many more than run just fine under Linux. Check out the Wine Applications Database to see how well others fare with various applications.

~Jeff Hoogland

Riding the Google Wave

Google is pretty much a house hold name at this point in the 21st century. Starting with a search engine they have slowly been expanding themselves into almost every technological market you can think of. Email, blogs, web browsers, mobile phones, and of course web searches are all things Google has a foot in these days. Today I am going to take a moment to talk about one of Google's up coming projects: Google Wave.

Wave is Google's latest attempt to revolutionize the web. At a glance Wave looks very much like any of our common email clients. It allows you to organize contacts and messages (referred to from here on out as "waves") in one central place. The thing that makes Wave revolutionary in today's world full of different web applications is the way in which the waves function. A wave is essentially a real time thread that you can add and subtract information from at your leisure. You can have both public and private waves, share a message with just your friend(s) or the entire world.

Another feature that sets Wave apart from standard Email is the ability to "embed" different objects into a wave. What can be embedded in a wave? Just about everything you can think of, maps, pictures, videos, flash content, or documents just to name a few. Waves are also created dynamically in real time, ever wish you could get a message quicker? Why wait for the person on the other end to press send? With Wave as soon as someone adds you to a wave you can see in real time what they are typing, embedding, or adding to the wave. From this stems the most powerful use for Wave - the ability for multiple people to be editing a Wave at the same time. Creating a presentation with friends? You no longer have to wait for everyone to do their share and then send it to you so you can add your part. With wave you can all be working in a document at the same time and see who is adding what to the wave and when. Now with all of this collaborative editing occurring it is only a matter of time before someone removes or edits something you might have wanted to keep - don't worry your information isn't gone. Each wave contains a replay button that allows you to watch the time-line of a given wave, basically it lets you replay from start to finish what has been added and subtracted to a wave and in what order.

Still not impressed? Wave has one more trick up it's sleeve to impress you with - waves can be embedded into web pages. The truly phenomenal thing about this is if you post in say tens (or hundreds or even thousands) of different waves around the net all of these different waves will also be collected within your Google Wave inbox. This means in order to check on conversations you have going on all over the internet you can just check one place instead of jumping all over the web. As with private waves you can also embedded different files to your heart's content within wave on a webpage.

Last but not least I feel I should mention that Google Wave runs fully within your web browser. No extra application installation necessary. Wave is currently in an "alpha preview" state and I received my invitation to begin using it some weeks back now. It is a project worth keeping your eye on and once it comes into maturity I have no doubt it will become a major tool in the web-based world in which we live today.

~Jeff Hoogland

Wednesday, November 4, 2009

Jolicloud - Distro Review

With the recent popularity netbooks have experienced in the last two years we have seen a slew of Linux distros released gear specifically for these tiny screens. For the last couple of weeks I have had my Asus EEE PC booting an upcoming netbook orientated distro called Jolicloud. Jolicloud is built on top of Ubuntu Jaunty Netbook Remix, as such it is fully compatable will all Jaunty repositories as well as the (seemingly limitless) Ubuntu software. Jolicloud is being built as a "social networking" distro, currently it is in private alpha release how ever if you apply at their website they are decently quick about getting back to you with an invite key.

Jolicloud comes as a 650 meg download in the form of an iso file. Their website provides easy instructions for loading the iso file into a spare 1gig flash drive using their own program (essentially it is a simplified version of unetbootin). Installation goes smoothly, it has not been changed from the normal Ubuntu installer (other than rebranding) and as such I had a fully functional Jolicloud system in just under a half hour.

Jolicloud uses the same netbook interface as UNR with a few slight modifications. Firstly, anyone who is coming to Jolicloud from Ubuntu will notice a refreshing light blue theme has replaced the rather ugly orange and brown Ubuntu has sported for so long. The Ubuntu logo that you click to use get back to your home screen has been replaced with a blue house icon.

My Jolicloud:
The big thing that separates Jolicloud from standard UNR is "My Jolicloud". Your cloud is an application that wraps up several core functions of the operating system in one location. Each user of Jolicloud has their own login that allows them to access their "My Jolicloud". The current release of Jolicloud has three working sections in the Cloud - Dashboard, Application Directory, and Settings.

The Dashboard contains your system's update manager, other system notifications, and history of your system. The application directory is one large improvement Jolicloud presents over normal Ubuntu. The layout is a bit easier to manage and the "most popular" section allows you to quickly find applications you will most likely want to add to your system. Also present is a "recently added" tab so you can easily see if anything new has been added to the repositories lately. In addition to containing the vast amounts of Ubuntu software Jolicloud also adds a few other useful applications such as Google's Chrome Browser and Boxee Media Center. Your settings section allows you to manage the "social" part of your Jolicloud account. Similiar to twitter you can follow other Jolicloud users to see what they are doing on their tiny computers. You can also see what systems you have registered on Jolicloud and who the latest people to join Jolicloud are.

The default applications installed on Jolicloud are relatively standard to any Linux distro. Gedit, terminal, FireFox, ect. How ever lacking by default is office software, this is easily fixed by adding it via your Jolicloud. Installed by default also is a piece of software that allows you to automatically (or manually) control the speed your netbook's atom processor runs at (thus controlling power consumption).

Also present in your applications repositories are "Prism Web Applications". Essentially a prism web application is a stand alone application that allows you to load up a single popular webpage (Facebook, Pandora, GMail, ect). The advantage of viewing a page in this form is that it removes the URL address bar, search bar, and other buttons typically taking up space on your tiny netbook screen that you do not need most times. If you do how ever find yourself wanting to view a page that does not have a prism application the default version of FireFox contains many optimizations for the netbook screen. The loading bar at the bottom is similar to that of Chrome's, its only visible when something is actually loading. The file/edit/history buttons at the top have been neatly placed as a drop down arrow next to the search bar and the buttons have been slightly shrunk down.

Final Thoughts:
All in all Jolicloud is a very solid netbook distro. It has replaced Ubuntu Karmic as the default operating system on my Asus EEE PC. If you own a tiny computer it is definitely one worth checking out. Rock solid distro thus far and I feel the Joli team will only deliver more spectacular features before they come into a full 1.0 release.

~Jeff Hoogland