Friday, September 17, 2010

Check Point's Zone Alarm Resorts to Scareware to Push Sales

::.A brief departure to the world of Windows and malware.::

There is one computer in my house that has Windows on it, and today I booted into it and was greeted by this lovely little pop-up telling me there's a new piece of malware out there that can steal banking information, and I should buy some firewall software to protect myself.



It looked like scareware, smelt like scareware, and acted like scareware, so I went into panic mode; locking down the internet connection, scanning active process, scanning files on the disk, checking the registry, et cetera. After a bit of googling on a secure Linux box (Backtrack anyone?), it looked as if this wasn't something pretending to be Zonealarm... it was Zonealarm, who has evidently decided that the 'scareware-approach' equates to higher sales, which of course is 'good-business'.

I'm going to go ahead and list all the problems I have with this:

A) People don't like scareware. Scareware pisses people off, and pissed-off people are less likely to buy a product from the company that pissed them off. This concept seems like common-sense to me, but has evidently escaped the geniuses over at Check Point's marketing department.

B) If it looks/acts like scareware, it is. According to Wikipedia:

Scareware comprises several classes of scam software with malicious payloads, or of limited or no benefit, that are sold to consumers via certain unethical marketing practices. The selling approach uses social engineering to cause shock, anxiety, or the perception of a threat, generally directed at an unsuspecting user.

This is pretty much to what Check Point is doing: intimidating people into buying their product under the guise that they are somehow less susceptible to a particular piece of malware because of it. What makes it ok for Check Point to resort to such schemes? It's unethical in every sense of the word. It's not 'just a friendly warning' when it links to a site claiming your product is evidently the only one in the world capable of dealing with such a threat, without providing any data on just how you arrived at that conclusion. Dropping the name of an independent organization isn't proof, it's 'pseudo-proof' and no more viable as proof than making up the data as you go along.

C) This newfangled form of marketing is identical to the classic scareware scam. This makes it difficult to explain to people "If you ever see any pop-ups claiming you have virus X, and you should purchase software from Company Y to remove it, don't do so. It's scareware, they're trying to scam you.", because now a supposedly legitimate company is doing the exact same thing. Suppose someone writes a virus in the future that pretends to be Zone Alarm warning you about a new virus, and that you should upgrade to be protected from it... How do you know what's really behind it? Is it Check Point's marketing team hard at work again, or an actual threat? We've previously relied on the idea that no respectable software company would resort to such tactics, but Check Point has blurred that line all the way from here to the bank.

D) Marketing fiascoes and licensing issues are the number one reason I tend to rely on free software (free as in freedom). I think you'd be hard-pressed to find a piece of software licensed under the GPL (or similar) whose developers would allow something like this... But I digress. When you click on the "See Threat Details" button, you are taken to this page (EDIT 10/04/2010: Page no longer contains information regarding ZeuS.Zbot.aoaq), where Check Point makes a very juvenile attempt to lead you to believe that "Only ZoneAlarm's suite protects against ZeuS.Zbot.aoaq virus." Just out of curiosity, how many firewall/AV solutions were tested by VirusTotal before concluding that Zone Alarm was the only Security program that detects ZeuS.Zbot.aoaq? Furthermore, on VirusTotal's website, under the list of companies that provide them with their respective anti-virus engines, Check Point and Zone Alarm are not even mentioned (I wonder what the significance of that is).

E) Check Point took a lengthy piss on their customers with this one. I've used Zonealarm on Windows boxes for years, and recommended it as a firewall every chance I got. Needless to say, I feel betrayed that they would ever resort to such shameful marketing techniques to push a product that could otherwise stand tall on its own merits. Check Point has soiled Zone Alarm's name, alienated their customers, and stooped to a low that can not be easily forgiven.

Check Point, You've lost a customer.

Thursday, August 5, 2010

Open-Source is a Wonderful Thing

In the relentless pursuit of perfection, I've decided to compile Chromium from source code and see how much of a performance increase, if any, would follow. The computer in question is my netbook, powered by i686 Arch Linux with an XFCE DE, but running on an Intel Atom N280 @ a measly 1.66GHz, so I'll take any performance boost I can get.

Using Arch's build system, and GCC 4.5's new 'atom' CFLAG, I began compiling the latest version and 5 hours later it was completed. I ran two benchmarks on both the pre-built i686 binary supplied by the chromium package in the Arch repositories, and my compiled version: Peacekeeper, and Sunspider. Results are as follows:

Peacekeeper Browser Benchmark (Units are 'points', more is better)
Sunspider Javascript Benchmark Results

Conclusion? From this point onwards I'm going to compile as much as I can manually, rather than using pre-built binaries, but I'm going to do it on the Phenom II x4 box. Compiling on an atom is somewhat reminiscent of the early '90s.

Thursday, July 29, 2010

Reviving the Desktop

Been busy lately. The ~10 year old drive in my Phenom II box finally kicked the bucket (random chance whether BIOS would recognize it at boot, bad sectors galore, et cetera), so I bought a new one: A 1TB WD Caviar Black (WD10000LSRTL). I was a bit apprehensive shipping it from Newegg with all the horror stories of drive damage as a result of UPS' shipping procedures, so I opted for the retail packaging ($10 extra, w/o free shipping). The drive arrived, and was immediately plugged in so I could double check it's SMART attributes, as well as run badblocks on it to check for bad sectors and everything came back a-ok.

First a fresh copy of Windows 7 was installed (In a fit of rage, I formatted the NTFS partition on the old drive and turned it into an Ext4 storage partition). That went fairly without incident, save for the hours I spent finding and installing all the programs I use, updating drivers, et cetera. At this point I'm obligated to mention that whenever I install Linux, it takes me about 5 minutes to open a terminal and tell the package manager to download everything I need, and then I can go about my day until it finishes. In Windows, it takes significantly longer, especially with having to use your web browser to navigate to each program's site individually, and painstakingly sit through dozens of "Next, Next, Next, I Accept, Finish" install 'wizards'... But I digress. After all the programs were installed, as well as my full Steam game library, I let the disk defrag for a few hours. Defrag finishes, and I can get on with more important things; Namely, saving my Arch setup. I put way too much work into it with the compiz effects, my custom scripts, and everything else to just let it go to waste by reinstalling from scratch.

I used a fairly standard partition setup on the Arch box with separate /, /boot, and /home partitions. This was by far the easiest part of the day. I put both drives in the tower, and booted into whatever livecd I had lying around (I think it was the server edition of ubuntu 8.10) and mounted the partitions in the appropriate places. Then just copied everything over using the 'a' argument, which preserves the files exactly.

I.e.:

# mkdir /mnt/old /mnt/old/boot /mnt/old/home \
> /mnt/new /mnt/new/boot /mnt/new/home
# mount /dev/sda3 /mnt/new/boot
# mount /dev/sda5 /mnt/new/home
# mount /dev/sda4 /mnt/new/
# mount /dev/sdb3 /mnt/old/boot
# mount /dev/sdb5 /mnt/old/home
# mount /dev/sdb4 /mnt/old/
# cp -av /mnt/old/* /mnt/new/


Easy, peasy, and the box now runs fine (after making the appropriate changes to Grub's menu.lst and the fstab of course). Next in line is the netbook, which is going to get a fresh Arch install in time for LinuxCon (Currently running a rather useless Chromium OS since the wireless drivers are refusing to cooperate). Originally I was going to install Gentoo on it, but compiling on an Atom is a special kind of hell, and until I have the patience and the time to do it, Arch is a much better choice. Plus I can always use the Arch build system for the packages I'll be using the most.

Saturday, May 15, 2010

Switching from Azureus to Deluge

I've always been a fairly happy customer with Azureus, it did what I wanted, it's very fully featured, and highly extensible given the army of plugins available on their sourceforge. However lately I've been wanting some things that Azureus couldn't very easily provide me, so I undertook the task of switching from Azureus to Deluge, without a moment of downtime I might add.

First off, there was the task of actually handling the files, that was simple enough. Make copies of everything in another base folder... done. So I more-or-less copied the contents of my ~/Azureus Downloads folder to the newly created ~/Deluge (not to be confused with ~/.deluge) folder. Then I had to go around finding all the actual .torrents for those files, again fairly simple. A lot of back and forth but ultimately a simple task. Then came my favorite part, the actual configuration.

Configuring a newly installed program is particularly enjoyable to me, and as I got deeper and deeper into Deluge's options I realized that I had found exactly what I was looking for, exactly what I had been missing in Azureus.

For starters, the WebUI is nothing short of spectacular. Azureus's WebUI was only capable of fairly simple things: Starting/stopping torrents, setting speeds, a few options, et cetera. Deluge's WebUI offers damn-near the same amount of options and features that the GTK interface has; It even looks virtually identical. Pretty much anything you can do via the GTK interface can be accomplished using the WebUI. The greatest part about it though? It's live! The data updates every 2 seconds or so, versus waiting a predetermined amount of time (by default 30s) for Azureus' WebUI to refresh the entire interface.

Another great Deluge feature is that it sorts torrents by tracker: something I spent a good chunk of time and effort attempting to do in Azureus. In Azureus I wound up having to create groups for each tracker and having to manually add a torrent to a group every time. Deluge does it for you, which is great for keeping things clean and organized.

Azureus had groups, Deluge has 'labels', however Deluge's labels are capable of being configured to behave a certain way (at least to a higher extent than the settings available to groups in Azureus). That is to say, you can use labels to apply a pre-defined set of rules to any torrent that is a member of the label, things such as dl/ul speed, connection limits, upload slots, autostop, completion moving, and more.

Deluge is infinitely more organized than Azureus was, in all regards. You can sort torrents by tracker, label, or 'state'. There are several different states: all, downloading, seeding, active, et cetera. Downloading shows torrents that are downloading, seeding shows torrents that are seeding, and active only shows torrents that are transferring data in one direction or the other (i.e. no idle torrents). Now by Deluge standards, the only sorting option that Azureus offered was All, very unorganized, very convoluted. If you wanted organization you had to take matters into your own hands by creating groups or something else. Deluge comes with organizational skills by default, and I'm already quite fond of this.

But by far, my favorite thing about Deluge is that it doesn't share the same cache-size limitation that Azureus has as a result of the JVM. Bittorrent is hell on hard drives, so a large cache means less disk thrashing. With Azureus I was able to get my cache up to about 90MB while remaining (relatively) stable. With Deluge, I gave it 65,536 16KB blocks, or 1GB of RAM to play with. I know what you're thinking: 'bloat-city'. I don't see it that way. I run Linux, not Windows so I don't have an operating system that's already sucking down half of my system resources to begin with. I can afford to dedicate a GB of RAM to Deluge alone, because the rest of the system rarely exceeds 512MB of RAM usage, even while operating at higher stress levels than normal. Why let the resources sit there unused?

Deluge is also written in python, my favorite programing language, so I'm looking forward to having a new platform to experiment with.

I do feel obligated to state for the record that I never was unhappy with Azureus, I just wanted certain features and options that were not available to it. Azureus was great to me, and I learned a lot because of it. So I present the final stats from my Azureus installation, who has faithfully served me since day one.

Friday, May 7, 2010

Ubuntu 10.04

I firmly believe that one can never have too many computers. I have my Arch/Win7 dual-boot Desktop for general use, my Mint server which does too many things to name here, my Arch netbook for school (portability is key when you have to lug something around all day), and my laptop, which has become a sandbox of sorts. I've designated it the 'laboratory-box', basically meaning I use it to toy around with things that I don't want to risk doing on one of my main boxes, or may simply not have the room for on those computers.

Now I use GRUB's legacy version on my desktop, but was curious about GRUB 2. The laptop was OS-less at the time (an fsck gone horribly, horribly, wrong) so I figured I'd install the new Ubuntu; I get to take it for a test-drive, and play around with GRUB 2... the whole two birds, one stone bit.

It's everything you would expect from a new Ubuntu release: Some minor changes here and there, as well as a few more noticeable improvements. First off, the exit/maximize/minimize buttons being on the left side of a window's title bar instead of the right drove me nuts... for about 5 minutes. You get used to it surprisingly fast, don't be put off by it, embrace it. The default theme and background is also better looking than the brown trend previous releases had. Aesthetics aren't huge to me, but in the interest of total honesty it was one of the first things I noticed. Now on to the good stuff...

Rhythmbox now features the Ubuntu One Music store, which has a surprisingly large selection, and the greatest part? It's all DRM-free. A commonly asked GNU/Linux-noob question is 'can I get iTunes running on Linux?'. Sure there's music players galore, take your pick, but up until this point there was no real viable Linux equivalent of iTunes and the iTunes store. Now you can pick up your computer, boot into your FOSS OS, load up (the also FOSS) Rhythmbox, and buy some DRM-free music. Only drawback is you need mp3 support, which is proprietary. However, if you're so inclined you can always convert it to FLAC, I wouldn't recommend using Vorbis only because converting one lossy format to another lossy format is like listening to a record that's been played a thousand times but in other situations I'm a pretty big fan of Vorbis.

As previously mentioned this Ubuntu install was also the first chance I've had to toy around with GRUB 2. I have GRUB 2 on my Mint-Server (which runs Helena, based off of Karmic) but since Mint's the only OS on it, and it's on 24/7 I haven't had much call to play with it. At first I was completely overwhelmed by how much more complex the configuration files structure was compared to GRUB legacy's relatively straightforward menu.lst, but after digging through some documentation, and toying around with it for a while I began to see its potential. I have a feeling that I'll be discovering just how versatile it is this weekend, when I plan on dual booting this Ubuntu install with FreeBSD.

Thursday, May 6, 2010

Changing GRUB's Boot Order

When you install GNU/Linux, chances are you installed GRUB (the GRand Unified Bootloader) as well, especially if you have multiple operating systems installed on the computer. GRUB is that menu that appears shortly after you boot up your computer that allows you to select which operating system you want to boot into.



By default, GRUB's first choice is the GNU/Linux distribution used to install it. For example, say you have a computer with Windows 7 on it, and decide you want to give Linux a spin. After the installation is complete booting your computer will take you to a rather simple menu that asks you which operating system you want to boot into, the Linux distribution you've installed, or Windows.


It's here a problem arises. After a certain number of seconds without user interaction, GRUB will automatically choose the first option listed, which is generally the OS used to install it. This means that if you have a dual-boot Windows/Ubuntu setup, and you want to boot into Windows, you'll have to monitor your computer while starting to prevent it from automatically launching into Ubuntu. This guide will cover how to re-arrange the order of the items that appear on the GRUB boot-menu, as well as other minor customizations.


First things first: There are two versions of GRUB out there, grub, and grub2. Newer distributions such as Ubuntu 10.04 have switched to GRUB 2, but GRUB (now referred to as the 'Legacy Edition') is still fairly common. This guide will cover the procedure for both GRUB versions. Of course you still have to tell which version of GRUB you are using. Run "grub-install -v" in the terminal and it will give you a version number. .97 is the Legacy edition, anything above that is GRUB2. Ubuntu 10.04 ships with version 1.98 which is GRUB 2.


GRUB Legacy


Modifying GRUB is fairly straight-forward, you can make changes by editing the GRUB Menu's configuration file: '/boot/grub/menu.lst'. After altering the file, you will need to save it, and in order to save it, you need superuser privileges. If you try to open it in gedit or kate you won't be able to save it. You'll need to launch your preferred text editor as a superuser in order to save the file after revision. Try using these in terminal to accomplish that.



GNOME:
gksu gedit /boot/grub/menu.lst
KDE:
kdesu kate /boot/grub/menu.lst

Now for the actual configuration file itself, here's mine:





# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst


# DEVICE NAME CONVERSIONS
#
# Linux Grub
# -------------------------
# /dev/fd0 (fd0)

# /dev/sda (hd0)
# /dev/sdb2 (hd1,1)
# /dev/sda3 (hd0,2)
#

# FRAMEBUFFER RESOLUTION SETTINGS

# +-------------------------------------------------+
# | 640x480 800x600 1024x768 1280x1024
# ----+--------------------------------------------
# 256 | 0x301=769 0x303=771 0x305=773 0x307=775
# 32K | 0x310=784 0x313=787 0x316=790 0x319=793
# 64K | 0x311=785 0x314=788 0x317=791 0x31A=794

# 16M | 0x312=786 0x315=789 0x318=792 0x31B=795
# +-------------------------------------------------+
# for more details and different resolutions see
# http://wiki.archlinux.org/index.php/GRUB#Framebuffer_Resolution

# general configuration:

timeout 30
default 0
color light-blue/black light-cyan/blue

# boot sections follow
# each is implicitly numbered from 0 in the order of appearance below

#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux

title Arch Linux
root (hd0,2)
kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro
initrd /kernel26.img

# (1) Arch Linux

title Arch Linux Fallback
root (hd0,2)
kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro
initrd /kernel26-fallback.img

# (2) Windows

title Windows 7 x64
rootnoverify (hd0,0)
makeactive
chainloader +1



Now at the bottom you see the actual menu items. Arch Linux, Arch Linux Fallback, and Windows 7 x64. Each of the items has a few lines of information, and separate menu items are separated from each other by a blank line. Let's take a look at the first menu entry.




# (0) Arch Linux

title Arch Linux

root (hd0,2)

kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro

initrd /kernel26.img



The first line, the one that starts with '#' is for your information. It is not read by GRUB, but serves as more of a comment for the user reading the configuration file to make it a little more organized.


The line under it, the 'title' line, holds the text that will be in the GRUB Menu's entry for that selection. I.e. My GRUB Menu will give me the choices Arch Linux, Arch Linux Fallback, and Windows 7 x64. If I changed the line that reads 'title Arch Linux' to 'title Foobar', my Grub Menu would present me with the choices Foobar, Arch Linux Fallback, and Windows 7 x64. This is useful if the default title GRUB chooses is not to your liking. For example, GRUB frequently identifies Windows Vista as 'Windows Vista/Longhorn'.


You can also change the boot sequence fairly easily. For example, changing:



# (0) Arch Linux
title Arch Linux

root (hd0,2)
kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro
initrd /kernel26.img

# (1) Arch Linux
title Arch Linux Fallback

root (hd0,2)
kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro
initrd /kernel26-fallback.img

# (2) Windows
title Windows 7 x64

rootnoverify (hd0,0)
makeactive
chainloader +1

to



# (0) Windows

title Windows 7 x64
rootnoverify (hd0,0)
makeactive
chainloader +1

# (1) Arch Linux

title Arch Linux
root (hd0,2)
kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro
initrd /kernel26.img

# (2) Arch Linux

title Arch Linux Fallback
root (hd0,2)
kernel /vmlinuz26 root=/dev/disk/by-uuid/a8a2e826-2f66-47df-b522-9f842964897f ro
initrd /kernel26-fallback.img

will change the order of the menu entries in GRUB's Menu. Since Windows 7 is first on the list, after 30 seconds without user intervention, GRUB will default to booting into Windows. You can change the amount of time before this happens if you desire by altering the 'timeout 30' line to read the amount of seconds you wish (i.e. 'timeout 15').



GRUB 2


GRUB 2's configuration files are a bit more complex, and offer much more versatility. Start by taking a look at your /boot/grub/grub.cfg file. Note: Do not edit this file. You'll notice right away that this is not a pretty document. Look for the lines that start with 'menuentry', Ctrl-F is your friend here. You should find something that resembles this:



menuentry 'Ubuntu, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail

    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set e6948097-4d7c-4bc5-a4fe-8e760a11f5c5
    linux /boot/vmlinuz-2.6.32-21-generic root=UUID=e6948097-4d7c-4bc5-a4fe-8e760a11f5c5 ro quiet splash
    initrd /boot/initrd.img-2.6.32-21-generic
}

menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set e6948097-4d7c-4bc5-a4fe-8e760a11f5c5
    echo 'Loading Linux 2.6.32-21-generic ...'

    linux /boot/vmlinuz-2.6.32-21-generic root=UUID=e6948097-4d7c-4bc5-a4fe-8e760a11f5c5 ro single
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-2.6.32-21-generic
}

Each line that begins with 'menuentry' is precisely that. Above we see two of them, Ubuntu, and it's recovery mode. Now, the first one we'll refer to as menu entry 0, and the second one will be menu entry 1. This may seem counter-intuitive as most human beings start counting with 1, but with computers starting with 0 isn't as uncommon as one might think. Now say you wanted to configure the GRUB 2 Menu so that the recovery mode is the default option. For this we'll need to edit the /etc/default/grub file.



Like with GRUB legacy, you'll also need superuser privileges to save the configuration file after editing it, so you'll need to launch your text editor with elevated privileges. Run the following in the terminal depending on your DE of choice:



GNOME:
gksu gedit /etc/default/grub

KDE:
kdesu gedit /etc/default/grub

This configuration file is more human-readable. Look for "GRUB_DEFAULT=0", which should be relatively close to the top. By changing this to "GRUB_DEFAULT=1", The second, or menu entry #1 will be selected by default in the GRUB menu, becoming the default choice. Say Windows was installed as well, and occupied a third (or #2) menu entry. By setting "GRUB_DEFAULT=2" Windows will be automatically highlighted on GRUB's Menu, and will be launched after the timer runs out. After editing this file to your liking, save it, and run 'sudo update-grub'.


That's it, you're done! Restart your computer and see the changes for yourself.

Recommended Reading:
GRUB 2 Documentation
GRUB 2 Guide
GRUB 2 Title Tweaks


Wednesday, April 7, 2010

GNU/Linux on HP Devices

I've been a fan of HP for a while now, for a consortium of reasons. They've been active in the GNU/Linux community for quite some time (and are sponsoring LinuxCon 2010, which I will be attending), and recently I've been reminded of why I gravitated towards them in the first place. When I first switched to GNU/Linux, one of the biggest issues I ran into was my old Lexmark printer being completely non-functional. In the interest of fairness I should mention that it's recently come to my attention through multiple sources that Lexmark has begun to step up to the plate on this issue, and for that I praise them.

However at the time, there was no such good-fortune, so I wound up going out and purchasing an HP Deskjet F4200. In a wonderful piece of irony, the installation procedure took about 30min on Vista (believe me, I know) and required multiple reboots. When I plugged it into my then Linux Mint 7 box, it worked out of the box... immediately. Setting it up to be shared took up a whole 30 seconds, and I was truly astonished at how it 'just worked'.

As a student, I need to print a lot, and I can not put enough emphasis on the phrase 'a lot', so a working printer is a necessity. For various reasons, the hp eventually got disconnected due to various OS reinstalls, computer rebuilds, and similar issues, and sat in my closet for a while. Today I wired it up to my Arch x86_64 box, and was again pleasantly surprised at how painless it was.

Now, nothing on Arch ever 'just works', that's almost the point, but the setup was as painless as can be expected. After installing hplip and cups (along with all dependencies of course) via pacman I plugged in the printer via usb, and ran dmesg to make sure it was recognized. It was, so I set about the actual printer configuration. After adding cups to the daemons array in my rc.conf, I stumbled across CUPS' Web-UI, which basically grabbed my hand and walked me through the entire printer setup. The phrase 'ease-of-use' instantly came to mind. You can manage printers, jobs, and pretty much anything else you can think of. I'm going to forward some ports later so I can administer it remotely over the web from wherever I am.

It's becoming more and more apparent that GNU/Linux directly equates to increased functionality.

Tuesday, March 23, 2010

Linux as a Gaming Platform

This past week, I've gotten more and more Windows-native games (as well as *nix ports) to run on my Arch x86_64 box. I originally built the computer with gaming in mind, but with Windows 7 getting worse and worse by the minute, booting into Windows just to play a game was becoming a more and more laborious task, not to mention that dirty feeling you get when you boot a computer and the Windows logo pops up.

I had originally used the latest stable version of Wine (1.0.1) obtained from Arch's User Repository, but found it was just as buggy as my previous Wine experiences. I managed to get Halo to run as mentioned in a previous post, however there were still relatively minor issues that persisted, such as the odd screen flicker, graphical problems on screen panning, and an odd box of discoloration that appeared in the top-right corner of the screen.

On a whim I decided to upgrade to the latest developmental version of wine (1.4.1), which was also in the AUR, though the PKGBUILD required some minor editing as wget was met with a 404 error trying to download the necessary files from the link given in the PKGBUILD. Luckily a fellow Archer posted a revised PKGBUILD in the comments, and it worked like a charm. Once the new Wine was up and running, I double-checked Halo to make sure the upgrade didn't brick it... Far from, it increased performance ten-fold, which is hard for me to say because it really wasn't bad at all to begin with. Suffice to say an immediate performance increase was more than noticeable.

After perusing the Wine AppDB for games I owned that were known to work well with Wine, I decided I'd give Half-Life 2 and Counter-Strike: Source a go. I encountered, and eventually fixed the same problem in both games. They would both load, but neither rendered any sound. After a quick trip through 'winecfg' I set the sound to OSS instead of ALSA, and it now works wonderfully. Not quite sure why, since ALSA is recommended explicitly over OSS for Wine, but with ALSA I can only play Halo, and with OSS all three games work. I suspect it has something to do with Steam, but I'll leave well-enough alone for now.

Now for the less-troublesome ports. There are countless remakes of the original DOS doom, most adding additional functionalities such as the ability to jump/crouch or have crosshairs, et cetera. Chocolate-Doom (AUR, detecting a trend here?) is a play on 'Vanilla Doom', as in the untouched original DOS version. It is as close to the original as possible, and preserves only original functionalities, as well as the original bugs. Using chocolate-doom I was able to play Doom 1, Doom 2, TNT, and Plutonia, just by setting the -iwad option on the command line and the path to the wad. Now I bought the id Super Pack on Steam some time ago, so I have access to the WADS on my Windows partition. Of course starting the game via a rather long terminal command isn't exactly efficient, so I wound up toying around with my ~/.bashrc file and got a rather satisfactory result.

~/.bashrc is used to create 'Aliases' for commands entered into the shell, using a very simple configuration file. Here's the portion of my ~/.bashrc pertaining to chocolate-doom:

alias chocolate-doom1="chocolate-doom -iwad ~/Data/DOOM.WAD"
alias chocolate-doom2="chocolate-doom -iwad ~/Data/DOOM2.WAD"
alias chocolate-doom-plutonia="chocolate-doom -iwad ~/Data/PLUTONIA.WAD"
alias chocolate-doom-tnt="chocolate-doom -iwad ~/Data/TNT.WAD"


Now instead of using the -iwad argument and specifying the full file path, I can just append a bit to the end of the command, so 'chocolate-doom1' will launch chocolate-doom using the DOOM.WAD. Much more efficient.

Getting away from the first person shooter category for a bit, Astromenace(AUR) is an extremely addictive space-scrolling 3D spaceship shooter, that is open-source. It also features RPG elements, as you buy a spaceship (from a rather large selection), and set about custom-configuring it with various hardware components such as shields, power-sources, engines, and of course weaponry. You earn money at the end of each level, which you can spend on these things as well as hull-upgrades. The difficulty level is also very customizable, you aren't presented with a simple easy/medium/hard menu, you actually get to specify various game mechanics such as damage bonuses, armor bonuses, and the like. You can also speed up/slow down the game in play using the F5-F7 keys. It is extremely addictive, and took up a few days of my life, but it is by far the best native Linux game of its kind I have ever seen.

My only hesitation about Linux originally was having to sacrifice quality gaming time to gain all of Linux's other benefits, but thanks to an increase in the availability of native/ported games for Linux, and the truly fantastic work Wine's developers are doing, I may eventually be able to rid my HDD of that ugly NTFS partition for good.

Saturday, March 20, 2010

1 TB Uploaded

At long last, after 260 Days and 15 hours of uptime, My torrent-dedi has seeded over 1 TB worth of data, compared to 393.76GB downloaded, leaving me with a share-ratio of 2.6:1.

The torrent-dedi runs on my Mint-Server box, which performs a consortium of other tasks as well such acting as a network share, webserver, print server, et cetera. Originally the old P4 box ran Mint 7, with a copy of Azureus obtained from Vuze's website, as the version in the repositories was several versions behind. Since then I've migrated that box to Mint 8, but copied over the Azureus install and the ~/.azureus folder as it kept track of statistics and other goodies.

So on this most auspicious of days, I present to you my top 5 most excessively seeded torrents:







TorrentSizeTotal UploadedShare Ratio
Backtrack 4 - Final1.46GB152.38GB104.168:1
Ubuntu 9.10 Server i386 640.57MB 22.04GB35.256:1
Arch Linux 2009.08-netinstall-x86_64176.37MB5.61GB32.492:1
Debian 503 i386 CD 1645.45MB12.15GB19.279:1
Backtrack 4 Pre-Final1.29GB10.25GB7.897:1


Bittorrent is an incredibly inexpensive, and voraciously efficient means to transfer and share content and enables people to spread ideas on a 'peer-to-peer' level. It also enables people to help others. Yes, I'll say it again. Despite what the corporate giants want you to think, Bittorrent's primary use is not piracy, it is to share. Just like a steak knife itself is not inherently dangerous, unless you use it to stab someone instead of just using it to enjoy your meal like a normal person.

The ideologies of GNU, Linux, and Bittorrent all walk hand-in-hand, and with the way the world is today, I'd be less hesitant to trust actual people than I would a nameless, faceless corporation who supposedly has your best interests at heart, but won't let you violate the terms of your End User License Agreement to alter their defective product, and try to make it work (Here's your shoutout Microsoft).

Nearly all of the Linux distributions I use are licensed under the GNU GPL or similar and as such I am free to copy and distribute them as much as I please, in fact I am encouraged to do so. Therefore I prefer to download my distros via Bittorrent rather than http, because after they're done downloading, I can seed them and help other people get a copy of it and use Linux themselves. Bittorrent is in the truest sense of the word, a community of sharing. Sharing is not a bad thing, it is a good thing.

The climate in this field has turned so sour as of late that I've heard people use the word "download" as if it had a negative connotation associated with it. "Oh you shouldn't download things, it's wrong and you'll go to jail." Every time you visit a website, you are downloading the html/php/css files, as far as I know it's still legal to visit websites... for now. The focus has been taken off the content in question, and the gun of blame pointed at the community as a whole. You can't blame the protocol, that's like blaming arson on the gasoline rather than the arsonist. It's illogical, it's a gross and offensive misconception, and above all else, it is a staggering new level of asinine.

For your viewing pleasure:

Monday, March 8, 2010

Yet Another Reason to Avoid Windows

In my CS class today, the computer station at which I sit was infected with all sorts of nasty malware. When I attempted to load Firefox, the virus loaded a dummy version of the program, probably designed to steal user-inputted data such as login information for various sites. Same with Internet Explorer. I found and installed a portable version of clam4win, since I didn't have the necessary admin privileges to install the normal version, and let that scan the disk for a while until class was over and I had to leave.

It found several threats, but none of them were the malicious program in question. This is most likely the culprit, as the symptoms match those exhibited by that computer exactly. I found that link via google using my netbook (running Arch i686 w/ XFCE) since I tend to avoid using Windows computers for security reasons, and using a Windows box you know to be infected is just asking for problems.

It's a typical virus that plagues you with pop-ups informing you your computer has been infected and you should buy their product to rectify this situation. This is EXACTLY the type of situation that can be avoided by switching to an open-source operating system like Linux, that allows administrators to legally alter source-code to prevent these types of threats, not to mention that Linux isn't affected by Windows viruses which inherently makes it more secure since the vast majority of viruses target the Windows platform. It is inexcusable that while using a computer on my college's campus, you run the risk of being phished. This could all be avoided by using open-source software.

Notepad was also infected, so I found another text editor on the computer, and wrote a note to the IT dept. including all relevant info and the above link and left it up on the screen. Hopefully they will realize that running large numbers of Windows boxen using Symantec's woefully inefficient AV software on a network of college students is not the best idea. I also changed the desktop background to this to further emphasize my point. Here's hoping it doesn't fall on deaf ears.

Sunday, March 7, 2010

Azureus/Pidgin Integration

That write-up I promised in the "A whole 'nother level of Geekdom' post regarding the implementation of Pidgin as a remote-content-addition-mechanism for Azureus is now done... If you've ever wanted to be able to tell your home torrent box to start downloading something by doing something as simple as sending an Instant Message, give it a glance.

Using Pidgin To Add To Your Azureus Queue Remotely


First things first, there are countless ways to control a torrent-box remotely that will offer you a higher level of control than this procedure, but if your looking for a quick and easy way to add content on-the-fly, without much setup, then this guide is for you.



Requirements:


  • Azureus Vuze (latest version recommended)
  • Pidgin (latest version recommended)

The goal of this little project is to be able to add torrents to Azureus' queue from any computer with an AIM client. The basic setup is this: Azureus has a feature where it will autoscan a directory for new content at a predetermined time interval (i.e. 60 seconds). Pidgin has a plug-in where it will autoaccept file transfers from pre-defined 'AIM buddies', and save them to a pre-defined directory. By daisy-chaining these two features, we can IM .torrent files to an AIM account running on Pidgin on the torrent box, at which point Pidgin will automatically accept the file transfer, and Azureus will subsequently add the torrent to its queue.


Setting up Pidgin


Create a NEW AIM account that will be used on the torrent-box, say something like Steves-torrent-dedi. Next you are going to want to download and install Pidgin onto the torrent computer. Now, I use Linux almost exclusively, so I downloaded pidgin through my distribution's repositories. However if you are using Windows you can get the installer from Pidgin's Site. Now to actually set up the account settings. When you launch pidgin it will prompt you to enter account information.



0

Click the Add button and fill out the fields accordingly with the information of the AIM account you just created. Pidgin can use many protocols besides AIM, such as Yahoo, ICQ, Jabber, Google Talk, et cetera, so you may be able to use accounts operating on those networks as well, though I haven't tested it myself. It's also probably a good idea to have it remember the account password so it can login automatically.


1

If after entering all the information, and verifying that you input it correctly, the account still won't log in, you may have to fine-tune some of the advanced settings. The two biggest problems are 'Use SSL' and 'Use Client Login'. Toy around with these, SSL usually needs to be turned off for Pidgin to login to an AIM account successfully.


3

By this point, you should have the AIM account running on Pidgin, now you need to add your own personal AIM account to the newly created account's buddy list. To add your personal account as a buddy, simply click Buddies>Add Buddy and fill out the form. Once you have done this go Tools>Plugins, and check off autoaccept.


5

Next click the configure plugin to fine-tune its settings. Blocking transfers from users not on your buddy list is probably a good idea, since ideally you would want you to be the only person capable of doing this. The pop-up is a personal choice. Creating a new directory for each user will save all the transfers from Buddy-A in /folder/Buddy-A/file, this is useful for other applications, but not this one since Azureus will only scan one directory for .torrent files, and it won't do it recursivley. Configure the folder where you want the uploaded torrent files saved, the simpler the better. Despite what the screenshot says I used "/home/mint/Uploads".


6

Now just right-click the Buddy you want to autoaccept files from, and click autoaccept. Then check autoaccept once again.


7

Setting up Azureus


Congratulations, your done configuring Pidgin, now onto Azureus. I use version 4.3.1.4 with the classic interface, so you may have to adjust this based on your individual settings. Find your way into the options menu (Ctrl key and , key) and select mode, then change it to advanced.


8

Now while still in the options menu, expand the "Files" submenu, then highlight "Torrents"(don't expand click the actual menu name). Now check off "Import new .torrents automatically", and enter the directory that pidgin will autosave to. You can also modify the scan interval if you so choose.


9

And Voila! The setup is done. Try sending some .torrent files to the account set up on the torrent box, from the account you enabled auto accepts from. This isn't the most powerful solution when it comes to remote management, but it is one of the easiest to set up, and so long as you're not doing anything too intensive, it should suit you fine.



Thursday, March 4, 2010

Halo & Doom 3 on Linux

First things first, I'm officially converted; Arch is my new OS. It truly is infinitely customizable as you build it from the ground up, and I'm loving every minute of it. Anyway...

Gaming has long-been the one thing tying me to Windows. Yes there are Linux games, but let's face it: there's no Linux equivalent for some of the great Windows games out there, such as Half-Life, Halo, Call of Duty, et cetera. WINE is a possible solution, but to be honest I've never had much luck with it. I managed to get Dreamweaver running in it a few years back, but haven't touched it since then. Several days ago I figure I'd give it another go and try to get Halo CE (the first one) running.

Initially I tried it on my laptop, with an ATI Radeon 3200HD chipset, however the open-source Radeon drivers weren't getting along too well with it. The opening videos worked (I didn't need to pass the --novideo argument), but when the game loaded as far as the initial menu screen... Well I'm not sure how to describe it. Suffice it to say it was pretty recognizably a graphics issue rather than a WINE issue.

At this point I decided that rather than fiddle around with building Catalyst from AUR on a 64-bit machine, I'd try it out on my desktop, which has a more powerful Nvidia card (9600GT) anyway. That worked like a charm. The proprietary Nvidia drivers are fantastic, almost to the point where I forgive Nvidia for making them proprietary, but not quite. The game will load in a window or fullscreen (depending on your wine settings or command line arguments) and play damn-near flawlessly, which is way more than I would expect from attempting to run a DirectX game on Linux.

There is also no need for a no-cd-crack, you can use the official executable. When you run the update program it will patch the game to the latest version (1.09 I believe), which eliminates the need to actually have the cd in your drive every time you want to play the game.

While on the subject of Linux Gaming, I feel obligated to mention there is a Doom III port that will run natively on Linux available from IDsoftware's FTP Server. There's also tons of other goodies on there so make sure to give those a glance as well. I personally installed the doom3 package available in the Arch User Repository, but I have used the version available on the FTP server before on Mint, Ubuntu, and Debian successfully.

Note that you will need to copy files pack000.pk4 through pack004.pk4 from the retail version to your Doom 3's base directory (there is a directory named 'base', I am not referring to Doom 3's root directory) on the Linux box in order for the game to work (What, did you think they were giving it out for free?). If you bought Doom 3 through Valve's Steam, the needed files will be in your ...\steamapps\common\doom 3\base folder, otherwise just search for files with a .pk4 extension via your favorite method. Now as for cd keys...

I bought (yes really, no warez here) Doom 3 via steam. When you launch it the first time it displays a cd key, which I'll call key-A. It also creates two files in your Program Files (x86)\Steam\steamapps\common\doom 3\base folder called doomkey and xpkey, both of which contained different keys, which I'll call key-B and key-C. All 3 keys are 16 characters, and when the Doom 3 port launches, it prompts you for a 16+2 digit key. So now I have three separate, and equally useless keys. I sent an e-mail to Steam's customer support asking for a new key, but I doubt they'll be scrambling to help out a Linux user, so I had to rely on a little MacGyver-ing to get Doom 3 running.

For some reason, id Software chose not to disable console access while the key prompt was up. Maybe this was intentional, maybe not, but either way it allows you to circumnavigate the key-verification process which is legal provided you have actually purchased the game and corresponding cd key. So when I launch Doom 3 on Arch, I am greeted with the rather annoying prompt. Then I just ~ into the console and 'map game/delta4' (or any other map for that matter), and it will set about loading that map, thus circumnavigating the buggy cdkey authorization prompt. It's a hack, but at least I can play Doom 3 on Linux now.

NOTE: This will not help you play the game without purchasing it. You will still need to supply the .pk4 files mentioned above from the purchased version in order to play, the method I have provided is merely a means of circumnavigating a process that can prevent legitimate Doom 3 owners who have legally purchased their copy of the game from playing it on Linux, which they are entitled to do as it does not violate the terms of the EULA.

id Software is the only game company I know of that actually ports their games to Linux, and makes the ports freely available for users who have already purchased the Windows version. As such, you should actually buy id Software's games and show your support for their actions. There is currently an ID Super Pack available on steam for $70, which is an unfathomable deal considering you get over 20 games including the DOOMs, Quakes, Hexens, Heretics, Wolfensteins, and more. And no I do not benefit in any way from you doing that. I just like to support companies that support me, and by porting their fantastic games to Linux, id Software has done just that.

UPDATE: April 10th 2010
Here's how to fix the cd-key issue. Copy the doomkey and xpkey files to your ~/.doom3/base directory. Special thanks to Filip Oščádal of www.mxd.cz for the solution.

Thursday, February 11, 2010

Roll Your Own

I've become quite the avid distro hopper over the past few months, not necessarily because I was looking for something a particular distro couldn't offer, but more out of an idle curiosity. I originally started my Linux journey with Mint 6, and since then have toyed around with various *buntu's, DSL, Puppy Linux, Knoppix, Backtrack, Debian, et cetera; They all had their own strengths and weaknesses. I've gotten to a point where I wanted to build my own distro, from the ground up, without having to actually make a distro... That is to say, I wanted a minimalist install with a light footprint like Puppy, with the stability of Debian, vast customization potential, and the availability of packages and a coherent package management system on par with aptitude and the Ubuntu repositories. It seems like a tall order until you consider Arch Linux.

Arch is a VERY minimalist install, to give you an idea of how minimalist I'm talking, it doesn't even come with sudo, openssh, python, or a GUI. It is absolutely perfect for older machines and package management is a breeze, but I'll get to that in a minute. The installer is very simple and straightforward, certainly one of the most simple CLI installs I've ever done. The installer pretty much configures the network for you, then asks which packages you'd like to install, then it further fine-tunes those categories allowing you to select individual packages for installation as opposed to hundreds of them that you will probably never use in a default Ubuntu install. After the install is done you do the obligatory restart and begin to configure the system to your liking using pacman, Arch's package manager.

Now I am very, very fond of my beloved apt, but pacman won me over. In keeping with Arch's philosophy of designed simplicity, it is just that: A very powerful, yet very simple and easy to use system. My second concern when initially trying Arch was that there may not be a large number of packages available. With Mint/*buntu I was never at loss for packages, the repositories had everything. Debian's repos were good as well, though due to their snail's-pace release cycle everything is hopelessly outdated. So far I have found everything I needed through pacman, and it is all bleeding-edge in terms of software-version. Arch is a rolling distro, meaning there are no main releases just one update after another. This rolling-release model, combined with the speed at which the packages are updated provides the most cutting-edge OS I have ever seen. When I installed Firefox from the repositories, it gave me version 3.6, some distros are still working off of the 3.0 series (I'm looking at you here Debian). Even the more obscure packages are unbelievably up-to-date such as d4l, et cetera.

Pacman also made installing gnome a breeze, and I quickly got media/networking set up as well. It's a little more command-line-kung-fu than I'm used to, but for the most part it was a really good learning experience. Some might consider this a detriment, but getting hands-on with configuration files, setting up xinit manually, and specifying which modules to load when, and what daemons to start on start-up gave me a whole new insight into the undercarriage of Linux, something I could never have seen with Mint/Ubuntu which makes everything very easily usable.

In short, after less than 12 hours of using Arch, I believe this will now become my distro of choice. I've been looking for this distro for years, I just never knew the name of it.

Thursday, February 4, 2010

Windows 7 & Debian Dual Boot

Quite a long day today. My school is enrolled in MSDNAA, which is basically free software from Microsoft, which as a CS student I am entitled to. So I woke up this morning, checked my student e-mail and read the account activation letter I'd received from them, and followed the link to their site where I discovered a venerable treasure trove of Microsoft software. Granted I wouldn't use most of it to save my life (the Office '07 suite is just indescribably horrendous) but also available for download was Windows 7. Now my Desktop is running Win7 so I've used it and despite my obligatory scorn for all things Microsoft, I have to admit it's the best OS they've ever put out. It's certainly better than Vista (from which there is nowhere to go but up). It's more stable than XP, and (obviously) more updated. Let's face it, XP's felt antiquated for quite some time.

What bothered me though was that you were not able to just download the .iso. You had to download an 'installer' (windows format .exe of course) which would download the file for you. I can't think of any reason for this other than to restrict the downloads to people already running a Windows operating system. At this point it doesn't get them any more customers, it certainly doesn't make them lose any, so why limit the availability of the software all students enrolled in the MSDNAA are entitled to based upon their current operating system? That would be like an electrician refusing to work on your house after you've already payed him because the wiring was put in by another company. It is an absurd ideology and quite frankly I don't see how consumers can tolerate it to the point where Microsoft's stock is selling at almost $30 a share.

I did wind up getting their pseudo-installer to run in wine, and then burned the iso all without ever having to leave backtrack, but it was still an unnecessary annoyance... But I digress. With the new Windows 7 (x64) disk in hand, I set about wiping my laptop clean and installing Windows. It went of without a hitch and everything's working fine. A rather rare occurrence. That being said, I only spent about 20 minutes in the OS until I had accepted one license agreement too many which, in turn, drove me to download and burn a Debian disk (Lenny main x64). I have never had a Linux install give me this many problems.

Apparently the kernel that Debian 5 ships with doesn't play nice on this particular build. For a distribution so well-known for stability, I was rather surprised. After an install that seemed to go off without a hitch, when I would boot into Debian it would hang on several different items. After 20 minutes I gave up, boot wasn't happening. At first I thought the install disk was faulty so I MD5'd it and compared it to the MD5 on Debian's site: they were identical. After two more installs with the same result I logged onto the IRC channel to see if anyone else had ever experienced this. After spending some time in #debian, the nice folks there pointed me to backports.org, where I was able to obtain a newer version of the kernel that worked with my box. Aside from a few minor hiccups that were later ironed out, I was now able to boot properly. After booting into the OS, it took me a while to figure out that the reason apt wasn't working properly was because I didn't have the right repositories in my /etc/apt/sources.list. After adding them, I went about configuring the OS. The wireless card works out of the box, but the network manager did not, so after creating a shell script that would launch netapplet, and throwing it in /etc/init.d/ that problem too is rectified.

The result of the day? Laptop wiped, dual boot with Windows 7 x64 and Debian 5 Lenny x64. I originally wanted to do a multi-boot with those OS's and BSD as well, but it's 10:00 and after spending about 8 hours doing this I simply don't have the energy. Maybe tomorrow If I get around to finishing all the other tech-stuff I need to do.

Thursday, January 28, 2010

Taking Back Control

With the purchase of my new router a week or so ago, I realized that now that I was able to actually forward my ports instead of just opening them, I could now run my site off of a home webserver thus giving me an infinite amount of control over the site, its server, and even access to the operating system itself. This was a tantalizing incentive, and more than enough motivation to devote the time and effort to get it working.

First off, the bandits over at Optimum Online block port 80, the default port for http traffic. In order to unlock it, you have to sign up for their upgrade package at an extra $10 a month. I realize this is a minuscule amount of money, but it's the principle of the matter. They are trying to extort money from their customers by purposely blocking ports that are used in conjunction with certain functionalities, a side effect of which is indirect control on the capabilities of a user's home set-up. I for one would like my overall functionality to be limited by the extent of my knowledge on computer technologies. I shouldn't start working with a new piece of software or a new protocol only to later discover it was fruitless as my ISP for some reason seems to disagree with the assumption that after already paying for an internet connection and all the hardware associated with it, I should have full and unmitigated access to the internet, over any and all of my ports as I see fit. You'd think that when a plumber connects a water line to your house, and you pay for the pipes and water, you'd be allowed to flow it out of whatever sink you wish... But I digress.

Bypassing Optimum's extortion scheme took a bit of resourceful thinking. I wound up daisy-chaining free domain names to manipulate a smooth redirection process. I had registered a second DNS name, and bound that to the webserver so that browsing to domain.com will redirect you to domain2.com:8080 which the server runs on.

While I was designing the site, I made the extra effort to make it conform to the XHTML 1.0 transitional web standards set out by the W3C (World Wide Web Consortium). However due to the rather unconventional redirection procedure, The W3C validation tool can not access my server, so I validated the site by copying and pasting the code into there validator's direct submission thing. I figure I'd let it be because the average visitor to the site won't care, and those who do could easily copy and paste the source code themselves, but rest assured it is web standard XHTML.

In other news, this web server is not currently hardwired into the router, it's wireless. For some reason my wireless PCI card is supported by Linux out of the box, while the integrated ethernet controller on the motherboard is not. Odd yes, but a cheap fix. Tomorrow I'll rummage through a garage full of old computers looking for a card, and if for some odd reason I don't find one, they run for around $10 at my local Microcenter. I figure the hard line has become a requirement at this point as there is so many things going on on this computer. It's a Bittorrent Dedi, a print-server, a web server, a samba server, and soon to be more. This is a lot of bandwidth to travel of a wireless G connection, so the card is imperative.

edit: W3C validation now fixed. The buttons successfully forward to page to the validation tool, which will tell you the code is web standard.

Thursday, January 21, 2010

New Router, New OS(s)

My Phenom II x4 (965 Black Edition=Unclocked Multiplier Goodness) has been giving me wireless problems since I built it. I tried a consortium of pci cards, and a menagerie of usb wireless devices but Windows 7 x64 couldn't do zip with them. All the devices worked fine under Linux, Windows must have been set to boot into useless-mode. There was something in my device list (in control panel) called "Teredo Tunnel Adapter Pseudo Interface" that was giving me a code 10 (device unable to start). After a quick bit of googling I learned that it had something to do with IPv6... undoubtedly Microsoft has found a way to screw that up too. I took it to the knowledge bar at my local Microcenter and after about an hour of troubleshooting we just did a clean install using a different OEM disk (theirs) than I had been using. Now it works just fine with my new D-Link DWA-552 PCI card.

So with a clean install of Win7 I went about configuring the system and downloading all the software I need. Firefox, Songbird, Pidgin, PuTTY, TightVNC, Zonealarm, AVG, about 25GB of games on Steam, et cetera. Having done all this fairly rapidly my NTFS partition was now fragmented pretty severely. After finally configuring all the programs, all my drivers, and everything else I set the machine up to defrag while I ate dinner. There's productivity for you.

So with the new computer fully functional, I set about throwing the obligatory Linux distro on it. I usually go with the latest version of Linux Mint, although I have been known to use Debian. This time I went with the newest incarnation of Backtrack and am liking it so far. It takes a bit of getting used to working in KDE as I've only used it briefly before but I do like the feel of it. After a rather lengthy installation (not ubiquity's fault, I botched up the math while partitioning) I booted into it from a rather flavorless grub compared to Mint's, but who cares? It's a bootloader.

While at Microcenter I also got a new router. My Trendnet router's been giving me nothing but problems ever since I bought it. It's a Netgear WNR3500 and I can conclusively say it's the best thing since sliced bread. Then again my opinion may be slightly biased on account of me being able to successfully forward ports seeming like a miracle. The Trendnet didn't forward ports, it just opened them. Ok for bittorrent, useless for ssh or VNC. So I set up the new router (breeze to configure), and promptly forwarded ports for VNC, SSH, and bittorrent to my torrent-slave/htpc/media-server after already assigning it a static IP address.

What wasn't so easy was installing the router. Previously my modem, router, and answering machine had been in the living room of my house. We have optimum online so the phone service comes out of the modem. The router and the phone were not playing nicely with each other and caused sever static on the cordless phones that made them unusable, and caused the router to randomly drop connections and have really poor signal strength, despite being wireless N. So the modem and router are now in my bedroom. I wanted to keep the answering machine in the living room so I had to run a 100ft phone cable up into my ceiling, through the attic, and into a newly drilled whole in the corner of the living room ceiling behind some furniture (so it's out of view. Kinda tacky to just have wires coming out of the ceiling in random spots).

Now everything is as it should be: Wireless networking on the computer on multiple OSes, New router up and running alongside the modem in the bedroom, and the phone in the living room. With any luck tomorrow I'll add "print-server" to the list of things my P4 box can do.

Tuesday, January 12, 2010

Fragmentation Hell

I've become so acclimated to the ext4 filesystem under Linux that I have all but forgotten disk fragmentation, a haunting memory of a more... unsophisticated past. So when I reinstalled Windows 7 on my desktop, I thought nothing of installing 20+ programs simultaneously, the thought just never crossed my mind. Congratulations Ballmer, you win again. Killing Floor, a game I play frequently was lagging and crashing uncontrollably and I couldn't figure out why. Later on when I went to reinstall Linux Mint 8 on the same disk, It wouldn't let me make any changes to the NTFS partition. After looking at the more detailed data, it was immediately apparent why. The NTFS file system on that partition was in a state of disarray of cosmic proportions. After finally convincing Windows that I do need to analyze that disk for fragmentation, It tells me that a whopping 17% of my data is afflicted. So I set chkdsk to run at Windows start-up, and I'm defragging the disk as I'm typing this. With any luck, I'll soon be able to install Mint and put this whole nightmare behind me.

In other news, my wireless card works beautifully under Linux, and acts like a recovering alcoholic who fell of the wagon under windows. It will not deal with any type of network protection (WPA2-TKIP, WPA2-AES, WPA-TKIP, all variations of WEP, et cetera). I'd never thought I'd see the day. My Linux-based operating system Mint is maintained by a handful of unpayed volunteer developers, and they managed to do what a multi-national billion dollar corporation could not. But then again this is not the first time. The only reason I continue to use Windows is for gaming, PC is still the best gaming platform out there. However multiplayer games begin to seem a little lackluster when you can't connect to the internet to play them. The second there's a viable Windows emulator for Linux, that is capable of allowing me to run steam and all of it's games I'm never going back. And no wine is not what I'm looking for. Spending 13 hours configuring all sorts of parameters so I can run an unplayably buggy Civilization 4 is not my idea of 'viable'.

I'm hoping that I will eventually be able to put the modem/router in my room so I can have direct access to it, thus cutting the number of network-related technical nightmares I face on a daily basis in half, If not more. I'd also then be able to distro-hop like a madman without having to spend hours finding the proper wireless drivers, though to be fair in light of this whole Winblows situation, the *nix Operating Systems are not a problem.

Disk Defrag is still taking place, I'll update when it's done.

Update: 1:30pm 1/13/2009

Defrag finished, performance is much much better. I was able to install Linux Mint 8 x64, however the wireless card is still all but useless under windows. I'm looking into getting the Xtreme N Desktop Adapter (DWA-552) as soon as I verify that it works out of the box on all of the distro's I use.

Sunday, January 10, 2010

A whole 'nother level of geekdom.

Two days ago, me and two friends spent about 8 hours in my 15 degree garage "linuxing". Box A was a server running the new dual core atom 330, and Box B was an old Pentium IV box. We'll start with Box A:

Debian 5 Lenny (i386) was actually a breeze to install, except when we went to install grub it defaulted to hd(0) which was a compact flash card on the motherboard, removed that, reinstalled (just goes quicker) and it was up and running. Since it had no wireless card, I had previously saved several debian packages to a flash drive for installation (such as openssh-server) and installed them after I spent an hour trying to figure out how to mount the drive. I feel a bit foolish actually, I tried pretty much every argument and every configuration of 'mount', but the reason it was not working was simply because I didn't specify a partition. I typed 'mount /dev/sdb /media/Lexar' when I should have typed '/dev/sdb1'. Got that mounted, installed the openssh-server and openssh-blacklist packages, and powered down the box. Then I took it upstairs and plugged it into the router, configured /etc/networking/interfaces to auto connect to an ethernet connection and removed all the peripherals leaving the server on.

We went back to the garage to work on Box B, which was to become a dedicated bittorrent box, and simultaneously worked on the Debian Box off of my laptop via ssh. The Debian box was to become a CSS (Counter Strike Source) server, so we configured that using the following sequence of commands (obtained from this guide:):

$ mkdir srcds
$ cd srcds
$ wget http://www.cstrike-planet.com/dls/hldsupdatetool.bin (usb)
$ chmod +x hldsupdatetool.bin
$ ./hldsupdatetool.bin
$ chmod +x steam
$ ./steam -command update -game "Counter-Strike Source" -dir .
$ ./srcds_run -game cstrike -autoupdate +maxplayers 20 +map de_aztec > srcds.log 2>&1 &

We then ran the server and checked the logs. Everything seemingly went fine except three textures were missing from the map. It was at this point we gave up for the night so I am unsure as to whether it was that particular map, or if there is a deeper problem at hand. We'll figure it out eventually.

While configuring the Debian CSS dedi over ssh, we also worked on the bittorrent box, which contains a rather ingenious little integration of mine that uses an aim client to add .torrents to Vuze's queue. We installed Mint 8 on the box which took about a year and a half running off the live CD, then installed the latest version of Vuze from their website (version in repos is really outdated. Using Pidgin's autoaccept plugin, we configured an aim account running on Pidgin that would autoaccept file transfers from my friend's screen name and save them in ~/Uploads. Firstly the plugin must be enabled, then on the buddy list you must right click the screename you want to authorize then go to autoaccept and always allow. Next, we configured Vuze to automatically scan that directory (~/Uploads) every 60 seconds for new .torrents, copy them to ~/Torrents, and add them to it's queue. Finally we set both Pidgin and Vuze to launch at login (During Mint 8 install we opted to not require login, ergo when the power button is pressed you are taken to the desktop, not the login window) and voila!

I eventually want to get vnc working on the bittorrent box, as well as actually play a game of CSS on the server but yesterday I was just too tired and wound up laying in bed all day watching a Law and Order: SVU marathon. I'll eventually write up a more complete (with pictures) guide on how to get the Pidgin/Vuze integration too.

Sunday, January 3, 2010

Adventures in Linux-land

I've really outdone myself this time. So many modifications have been made to my home's technological components in the past week I barely know where to begin, so bear with me if this post seems to be an incongruous wasteland of disorganized thought, I'll try to organize it the best I can.

First off, new computer:
AMD Phenom II x4 965 @ 3.4ghz
8GB (4 2GB modules) of OCZ DDR3 RAM 2 (1600)
Integrated Radeon HD 3300 Graphics (for now)
500 Watt PSU
Optical Drive/HDD/Card Reader/other unexciting peripherals

Now I also modified the computer I had prior to this one to be a home media server of sorts. Specs here:
Pentium IV @ 2.8ghz
2GB DDR2 RAM (800)
80GB IDE Drive (yeah I know, but it's only for the OS)
1.5TB Sata drive in a hot swap in one of the 5.25" bays.
256MB DDR2 8400 GS Nvidia GPU
other uninteresting peripherals.

The Phenom II box I built by hand with a few of my friends. I literally put my own blood and sweat into this machine (pin on the motherboard stabbed me under my thumbnail). After the build, it wouldn't POST. It didn't keep resetting either it just wouldn't post. It just stood there, powered on, mocking me. I tried swapping out the PCI-E graphics card and running it off of integrated, still wouldn't POST. Tried reducing RAM to one measly stick, still nothing. We took it apart and put it back together again with the same results. Then when I got home I completely disassembled it and put it back together again (in various configurations) TWICE, and still nothing. It sucked, $700 for parts on a machine that won't boot, yet has nothing apparently wrong with it.

Next day, I took it to Microcenter, where we basically tried the same thing. Of course now that I'm there it works. The knowledge bar attendant told me the PCI-E graphics card was shot, and managed to get into BIOS while using the integrated graphics. While in BIOS we noticed that my RAM was set to 1066, "Not on my watch" he said and promptly adjusted it to 1600. For some reason the board defaulted to that. I haven't had any problems with this machine since then but am still troubled by one thing: That graphics card works fine. I plugged it into the P4 box and it runs fine. I'm watching it work right now! At this point I'm hoping it was just a compatibility issue between the card and the new motherboard rather than the motherboard's PCI-E just being shot. We tried both sockets on the board too...

A brief segue: For a while, my router's been giving me issues on dual-boot machines. All the computers with only Linux on them ran fine, but my laptop which had Linux Mint 8 and Vista would act... for lack of a better term, 'iffy'. I would have to reset my router every time I booted into Windows because I would get a local only connection with a "limited connectivity" error. I thought the problem was limited to the laptop until I got the new computer (the Phenom II box) which exhibited the same problem. Long story short, after fighting with my router for the better part of an hour I got it to take to a firmware upgrade which rectified the problem, as well as added many new features. The router went from being a rather persistent pain in my ass to one of the most efficient and streamlined routing systems I've ever used. Good work Trendnet, I forgive you now.

Now here's what I did after the router's hiccup was cured: Installed Linux Mint 8 Helena on the P4 box, copying over my /home/steve/.azureus directory from a previous installation so I could keep my statistics/settings/et cetera. I then installed a new copy of Vuze from their website, as the version in synaptic's repositories is hopelessly outdated. I also got apache2 and php5 (from synaptic). Now... here's where things get fun. I set Apache's document root to be /media, several directories above my 1.5TB's mount point. In the /media directory there are several php scripts and an html form that will prompt a user for a username and password before forwarding you to the 1.5TB's directory. This was designed to keep out anyone who had already broke through my router's WPA2 level security.

Although this seems like a task much better left to MySQL, I'm way more familiar with php and was feeling adventurous. So now the P4 is serving everything on the 1.5 TB drive via httpd. This is fantastic for the computer illiterate. Mint 8 ships with Firefox configured with various media plugins, so by clicking a link to a media file, it will seamlessly start playing in the browser. Neat parlor trick for the grandparents, huh? Because quite frankly, my recounting of how I jerry-rigged a php script ignoring all conventions of proper syntax etiquette would be lost on them.

Now that the server is up and accessible, I need a way of remotely adding new content. My first thought is 'remote-desktop', but somehow that seemed a bit too bulky (in terms of bandwidth) for my needs. All I needed was to point Vuze to new content. So believe it or not, I wound up using pidgin, an open-source and cross-platform instant messenger client. Pidgin comes with a plugin to auto-accept transfers from pre-determined screennames, so I set it up to auto-accept transfers from mine and add the files to /home/mint/Uploads. I also set Vuze to auto add new content from that directory which it scans every 60 seconds. So Voila! By sending a .torrent via an instant message file transfer, I can remotely add content to Vuze's queue. And yes, I do have remote-desktop enabled as well in case I need to do anything more intensive from afar.

Now it doesn't end there. Suppose I want to watch the media on my 1.5TB on a television? I can do that too. The 8400 GS that is in the P4 media server has s-video out... Yeah, we don't have HD... Anyway, So I can use the TV as a monitor and watch movies that way. I also have a 3.5mm headphone jack (standard audio out on a computer) to RCA audio converter (the red and white plugs for sound on older televisions), so sound is a go as well.

I'm working with VLC as the player at the moment though I would prefer Boxee. VLC is by no means a shoddy player. In fact it's fantastic, just not ideal for a home media box outputting video to CRT television. Boxee's UI is fantastic for this purpose, but sadly they have not released the beta yet, and the alpha relies on packages in Jaunty's repositories which are outdated/incompatible with Mint 8 which is based of of Karmic. Boxee paired with an ATI Remote Wonder provides a UI simple enough even the biggest tech-tards can navigate their way through it. Once Boxee's beta is released, I'm going to start building boxes that will run it on start up and browse to the 1.5TB, and connect them to every television in the house.

I've also stumbled upon a nifty little media player called Songbird. I'm quite impressed. It can play the .mp3's on my server as if they were a playlist. For example, If I point it to "domain.com/songs/artist/album/" it will play everything in that directory as if it were local content. It's also open-source and cross-platform which is always a plus in my book (as per my love affair with Azureus, Pidgin, Firefox, et cetera).

I think that about sums up the past week. Again, sorry for the mess.