Foray into Feisty Fawn helped me take back my MIPS

Foray into Feisty Fawn.

I am software developer, and I write software for the .NET Framework / Windows platform.
A short while ago I noticed that I was no longer doing development from home, so I didn’t really need Visual Studio 2005, SQL Server 2005, Internet Information Services, etc. etc. All I was doing was playing World of Warcraft (Ravenholdt-EU if you’re interested)

I backed up my documents etc., wiped my Windows XP Professional SP2 installation (which I was very happy with), and installed Windows Vista Ultimate.

I don’t quite know how to describe this, but I just wasn’t happy with Vista.

These are the salient specs;
Intel Pentium 4 3.0GHz
2GB DDR2 RAM
250GB SATA HDD, 200GB SATA HDD
ATI Radeon X1800 w/256MB

Under Windows 2000, Windows XP, Windows Server 2003, and even Windows XP under VMWare Workstation under Windows XP the machine was blindingly quick. Under Windows Vista it just wasn’t. Things weren’t as quick as they should have been.
You get to know your box. You know what things take a while, and you know when certain things don’t open in a certain amount of time that something’s going wrong. Something was going wrong.
Don’t get me wrong now – there are lots of things I like about Windows Vista. I like the elevated security requirement (similar I suppose to su/sudo under Linux etc.)
I like the touchy-feely aspect of the interface. I did not like the fact that there are no Vista drivers for my 802.11n network card – I had to use a workaround to get the XPP drivers working instead.

I had made the decision that nothing was going onto the main OS except World of Warcraft. All development tools were going onto Windows XP Professional SP2 running under VMWare Workstation. I chose VMWare Workstation over Microsoft Virtual PC on account of the snapshots features (among other nice features).

So I got to thinking. If I’m only going to be running World of Warcraft on the machine, which I had read can run under Linux through the use of WINE, then the only thing that matters is who or what is managing my MIPS.

Enter Linux.
The last time I had used linux was when doing stuff on IRC on the IRCNet Network. We used eggdrop bots, so I had to ftp them down from the eggdrop sites, edit the configuration remotely through telnet, compile it, setup a crontab, and run it.
I was using eggdrop 1.0 (back to the Robey Pointer days), so this is about 5 years ago. I have no idea what version of the linux kernel was out back then… in fact, some of the servers we used were full-blown UNIX boxes if I remember correctly. But I digress.

For so long, people have been ranting and raving about Ubuntu (and Linux in general). Sometimes I would read the articles and see the Linux fanboys wet themselves at everything *nix. Sometimes there would be an article about a supposed Microsoft developer who’s switched over or who bigs up Linux, and I would always take those articles with a liberal serving of salt.
Again I digress.

VMWare Workstation comes in two flavours – Windows and Linux. If I’m going to be doing my dev work under VMWare Workstation anyway, it couldn’t hurt to at least give Linux a go. But first – to test on my laptop.

I have an Acer Aspire 1522WLMi laptop – AMD Athlon 64 3000+, 512MB DDR, 80GB HDD. If Linux – but more importantly; World of Warcraft – ran on this machine, it’d definitely run on my desktop.
I burned the Feisty Fawn ISO to DVD, put it into my laptop and booted up……

First impression;
I have a desktop. I haven’t installed it yet, but I have a desktop. I have Firefox. I have internet access. I have games and applications and system tools. They all work. I haven’t installed any drivers, I haven’t been asked anything whatsoever, and it’s about a minute after I booted up my laptop. I cannot believe that I can browse the web already.

I didn’t really mind that Windows setup (NT, 2K, XP, 98, ME, Vista, 2003 etc. etc.) doesn’t actually allow you to do much.
It just fires away by itself installing stuff. Ubuntu on the other hand lets you do stuff while it’s installing.
So while the files were copying across I was playing Solitaire, checking my email and browsing digg.com
(this is while linux was installing. wow)
Setup was very easy. Nothing awkward or difficult. If you’re the type to read MVP blogs, then there’s defninitely nothing tricky on the menu!

When it rebooted onto my desktop – after asking for a username and password that I had previously furnished to the setup process – I had very decent functionality. Full 1024*768*32 graphics. Wired NIC was working, Wireless NIC had been identified correctly (though I needed to supply a driver for it)

Out of the box Ubuntu gave me an installation that surpasses Windows enormously.
A Windows XP installation on this laptop gives a useless machine. Neither the Wired or Wireless NICs work, the graphics etc. etc.
I was amazed at the functionality provided by Ubuntu straight off the bat (and even during setup…).

So, what didn’t work out of the box?
1) The wireless card. Resolution: very simple.
2) DVD playback. Resolution: interesting.
3) Touchpad. Resolution: not resolved yet unfortunately.
4) Fan/cooling/CPU throttling. Urgh.

To get the wireless card working I just had to give it access to the windows driver for the card. This was like falling off a log.
To get DVD playback working I grabbed the ubuntu-restricted-access tools/bits&pieces/stuff and that did the trick.
Touchpad. Unfortunately this is proving annoying, and nobody seems to have a fix for it. The touchpad seems to get desynched to the Operation System (or the other way around?). This means that randomly the mousepointer, touchpad and touchbuttons stop working. Leave it a few seconds and it fixes itself.
Fan. Urgh this one’s annoying. Ubuntu doesn’t seem to be able to throttle the cpu usage, so if you run lots of CPU intensive stuff at the same time the kernel seems to panic and shuts the machine down. Very annoying.

Onto World of Warcraft.
Long story short – World of Warcraft runs faster under Ubuntu/Wine than natively under Windows XP Professional.
A lot of the documentation on the web for World of Warcraft seems to be a little out of date – referring to older versions of WINE, or older versions of World of Warcraft.
I installed WINE on the machine, double clicked on the installer and started installing. While it was installing, I manually downloaded the updates, which I found on the www.wowwiki.com/Patch_Mirrors site.
Once WoW and The Burning Crusade were installed, I installed each of the patches and tried to log in.
WoW complained that it couldn’t start 3D Acceleration. This was because I hadn’t applied the nVIDIA drivers.
I downloaded the latest linux drivers, installed them, and fired up WoW.
It was terribly terribly slow. I dug around the web some more and found two things:
1) Ensure WoW is using OpenGL (you set this in the config.wtf file)
2) Apply the performance registry hack

Under Windows XP Professional SP2 on this laptop I got about 5-10fps standing at the IF AH.
Under Ubuntu on this laptop, I get about 30fps standing at the IF AH.
That says a lot in my opinion.

I like this Linux world. The people seem more eager to help eachother. There’s more documentation, more searchable assistance, more howtos etc. online than for Windows problems.
I also love being able to grab any piece of software off the web. Need to grab a piece of software? Then you usually just have to type a few simple commands into the terminal and it’ll download and install it all automatically.

Unfortunately I don’t think Linux is ready for home users yet. I had to do quite a lot of work in the terminal, and with stuff that home users will never in a million years understand. There are some things that don’t work, and some little annoyances.
But for a technical user, I’d definitely recommend checking it out.

Feisty Fawn helped me take back my MIPS.

* Random afterthoughts;
I still prefer the .NET Framework to Java.
I still prefer the strongly-typed natively-compiled ASP.NET to the loosely-typed runtime-interpreted PHP
I still prefer SQL Server 2000 & 2005 to MySQL
I love apt-get
I have always preferred Linux’s ifconfig command to Windows’ ipconfig
I love Linux’s iwconfig command
I’m loving WINE – in both berry and code form

Visual Studio Team Suite 2005 FQDN Woes

If you're having a problem with FQDNs (Fully Qualified Domain Names) in VSTS then read on…

We installed VSTFS to one of our rack servers in a hosting company. The server is given a NetBIOS name by the hosting company.
In DNS Server, we have configured that server with different hostnames etc. etc., so we've never had a problem…. until now.
Team Explorer insists on connecting to to the VSTFS using its netbios name, namely; http://SVR-A03-A3.

Now, obviously if that server is not on the LAN, then my computer cannot contact it. My machine will perform a DNS lookup on the host SVR-A03-03, our DNS Server will say that it's not on the LAN, and it'll fail. Yipee! A possible solution would be to change the name of our server to include a DNS suffix, such that I could add a host in our DNS Server, but our host will not allow us.

So what to do? I was pointed at the following document to configure VSTFS to use a FQDN:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=536224&SiteID=1

In testing however, this didn't really work for me. Under various circumstances, VSTS would believe it was connecting to correct FQDN, but different components – e.g. Sharepoint and SQL Reporting Services – would fail to connect to it because they're still connecting to the NetBIOS name of SVR-A03-A3.

So here's a little trick I have implemented on our machines and it works out a treat. Modify your HOSTS file with a static entry to resolve the NetBIOS name correctly: %systemroot%\system32\drivers\etc\HOSTS
Open up that file in Notepad and it should contain:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

127.0.0.1       localhost


So to the bottom of this file, simply enter the public IP Address of your VSTFS server followed by the NetBIOS hostname, e.g.;
xx.xx.xx.xx    SVR-A03-03

So now, when VSTS attempts to connect to http://SVR-A03-03 to communicate with VSTFS, instead of performing a futile DNS lookup on the NetBIOS name, it will pull it from the HOSTS file instead and connect to the correct IP Address.

An alternative to this would be to use VPN, whereby your developers connect via VPN directly to the VSTFS server or onto the same LAN on which the VSTFS server resides.

Happy Coding [:)]