Time for an Update

Well, I haven’t been here for a while, so let’s give a quick recap of what’s going on in the world of Warren.

First, I’ve moved! I’m now in a much nicer housing unit living across the hall from my friend Dave and down the street from another one of my coworkers, Jake. I have to say that I was very impressed with the state that this particular appartment was left in, and our landlord has been nothing less than incredible.

Business is still going strong, and for anybody interested in having their computers fixed or purchasing home electronics, you can feel free to send me a message. I’ve got a few new clients here and there which may lead to me actually having a positive income this year from my business partnership, Edgelink Consulting.

Work-wise, I’m back at RIM for the summer, returning to my roll as a BIS Tools Developer. The work isn’t anything out of the ordinary, but I plan to put a few Warren-themed changes into the system. (No, Jake, I won’t break anything.) I’m planning on starting my Work Report early this term so that I have plenty of time to review it.

School-wise, the winter 2009 term went really well. I ended up with (what I think) are pretty decent marks in my CS and Human Resources class, and an okay mark in statistics. With any luck, this means that I might actually be in good standing with UW (which I’m told is not an easy feat). Over the summer, I’ll be taking another Professional Development course (Problem Solving), which should be, um, enlightening….

I haven’t yet decided what I’m going to do with my free time this summer, but I’m going to try to focus on learning some C++ or Perl, and I should probably brush up on my PHP skills (check back later for an article on getting PHP running on IIS).  I’d sort of like to update this site with some sort of software, but I don’t have any ideas as to what to actually make.

I think that pretty much does it for now, but I’ll try to update this thing once in a while.

- Warren

Doing Things the Hard Way: Debian GNU/Linux

So in the midst of panicking for exams and living in my crapshack, I totally forgot that I actually have a blog sitting here. Somebody even commented on it, but got blocked by my spam catcher.

Anyways, over the last few days I’ve been struggling through getting a working installation of Debian on my server box. For those of you who don’t know me, let me give you an overview of my knowledge of the wonderful world of Linux: little to none.

So, while I won’t bore you with the details of actually installing it (basically you put the CD in and press go), I will regale you with some of the adventures I have had setting up and configuring this system. I’ve been working exclusively from the command prompt.

First of all, what exactly am I working with? Well, the important parts are below:

  • Intel E2160 Dual Core CPU
  • 2GB RAM
  • 2x500GB storage drives (I haven’t finished formatting the rest) and a 250GB boot drive.
  • Antec 900 Case

Static IP in Debian

Alright, first things first: I hate networking. I don’t really know why some systems don’t want to communicate with others, but that’s the way it is. I like my servers to have static IPs because I find that the hostname is often unreliable. In Windows XP, which is what the system used to have on it, it’s a simple 4 or 5 clicks followed by an OK to get you set up. In Debian, this appears to be a much different story. It shouldn’t be a shock to anybody that you need to be root to perform these operations.

The file that you’re looking for here is: /etc/network/interfaces

In the file, you’ll probably see some auto-generated information about your current interfaces. Now, for me, my ethernet card is eth1. eth0 was mysteriously stolen by the firewire interface I didn’t even know I had. In order to set a  static IP for eth1, I had to enter the following (I really wish I had a code box):

iface eth1 inet static
address 192.168.1.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

This tells eth1 to use the address 192.168.1.20… somehow. I hear that broadcast and gateway are both optional!

Configuring Programs to Run at Boot in Debian

This is something that sounds a hell of a lot easier than it actually is (at least the first time you do it). First of all, you need to write  a shell script that goes in the /etc/init.d/ directory. I’ll post the one that I use to start SABnzbd+ at boot. Feel free to correct me if there’s something wrong with it, but it works and that’s really all I care about.

— sabnzbd.sh —

#!/bin/sh

case “$1″ in
start)
echo “Starting SABnzbd.”
/usr/bin/sudo -u warren -H /etc/sabnzbd/SABnzbd.py -d -f /home/warren/.sabnzbd/sabnzbd.ini
;;
stop)
echo “Shutting down SABnzbd.”
/usr/bin/wget -q –delete-after “http://192.168.1.20:1200/sabnzbd/shutdown”
;;
*)
echo “Usage: $0 {start|stop}”
exit 1
esac

exit 0

— end of file —

So essentially it launches python to start running SABnzbd+. You can start and stop it manually by typing:

% /etc/init.d/sabnzbd.sh start/stop

In addition to placing this script in the directory, you also have to make the necessary symlinks to have it run at boot. To do this, I simply type the command:

% update-rc.d sabnzbd.sh defaults

Hooray. Done.

I’m sure I’ll run into other adventures with my setup and I’ll be sure to post anything educational here. Either way, I’m pretty happy with the fact that it’s actually up and running now, and I hope it stays that way….

High Latency During BitTorrent Downloads

No, I’m not talking about slow torrenting, I’m talking about what effect BitTorrent has on other applications and services on your network. George Ou has a very interesting article on how the BitTorrent protocol and its packet blasting nature can disrupt VoIP and online gaming protocols.

Since I have recently moved into a new house and have at least one roommate who frequently torrents large amounts of data, I’ve noticed this latency first hand, I’ll watch as my ping climbs to 900ms or higher and my Skype calls deteriorate into nothingness.

Enabling QoS on the router has almost no effect:

Now it is possible to solve this problem on the network level by prioritizing VoIP and gaming packets in the home DSL modem upload queue. Unfortunately, I don’t have administrative access to the modem and implementing VoIP or gaming prioritization on my home router seemed to have no effect.  Packets in the home router get forwarded as soon as they arrive with 100 Mbps Ethernet on both ends so there is nothing to reorder in the queue.  More advanced business-class routers like those from Cisco will allow you to configure the speed of the FastEthernet connection to match your DSL throughput so that the queue will migrate from the DSL modem to the router but this isn’t very practical for most people.

Very interesting read. Until a permanent solution is found, it looks like I’ll just be yelling at my roommates to turn off uTorrent.