Random knowledge III.

Coding with a teddy bear in your lap helps immensely.

IPtables for the v2.4 Linux kernel series doesn't understand virtual interfaces (a.k.a. IP Aliasing). If you've never seen this before you can take one interface, say eth0, and bind an IP address to it, for example Under the v2.4 kernel series you can bind more than one IP address to an interface, which creates a virtual network interface. If I bound a second address ( to our network interface above you'd see in the output of /sbin/ifconfig eth0:1 with an IP address of However, IPtables doesn't work with virtual network interfaces, it only works with actual or physical ones. But there's a way to specify one interface to IPtables with a specific IP address using the -d option. For example, say you have two IP addresses ( and bound to the interface of your firewall and you want IPtables to permit traffic to either IP address to go through. Tell IPtables that traffic going to interface eth0 and either IP address is all right:

iptables -A INPUT -i eth0 -s -d -j ACCEPT
iptables -A INPUT -i eth0 -s -d -j ACCEPT

There you go. You can also forward ports in this manner using the PREROUTING table.

If your Canon bubblejet printer ever stops working and the ink cartridge/print head just sits in the middle of the track doing nothing, then the circuitry in the print head (the black cartridge holding the ink tanks, usually with a model number like BJ-21e) is in all probability fried. Go to someplace like Staples or Office Max and buy a new one. Be prepared to drop $40-$50us for a new print head and set of ink tanks, they're expensive. Keep in mind, though, that even though you just bought a new print head you can still buy new ink tanks separately and install them when they run dry. In the best of all possible worlds you'll have to do this at most once per year (or more often if you buy ink cartridge recharging kits - the ink in those kits wrecks the heads like nobody's business).

Never try to configure arrays with initial values at 0100. Always wait until tommorow after you wake up to do so. If you don't do it after a good night's sleep you'll spend three times as long rewriting them because you confused rows and columns in your loops.

If it isn't due to a security fix, a driver for a device that you absolutely can't get by without right this moment, or to fix a crash, put off upgrading until the last moment. If it's a major feature addition then upgrade after thinking long and hard about it, and even then only after your deadline's passed/homework's handed in/you've made a full system backup/you've got the original install media or source tarball standing by. No, I mean it. If it doesn't go well then you're dead in the water and you'll be pissed at yourself for screwing up. Think about what you're going to do at least twice, three times preferably, before you go ahead and do it.

You won't be sorry.

If you're compiling Mozilla on your own (the v1.2b source tree is fairly stable) don't forget to run the strip utility on the mozilla-bin-* files to remove the debugging information. That way, when you run Mozilla it'll run a bit faster and take up less RAM.

If you search the PGP keyserver network for "Art Bell", you'll find someone using his name and address. Mr. Bell does NOT use PGP, however, so don't use the key, it doesn't belong to him.

Mozilla v1.2 looks in its $MOZILLA_HOME/lib/plugins/ directory for plugins first and foremost, and only rarely looks in ~/.mozilla/$USER/c1b83xiz.slt/ second on a Linux system. Make sure that you install everything under Mozilla's private libraries if you want anything to work.

Oh, and if you're the sort who only installs the JDK (Java Developer's Kit) because it includes the JRE (Java Runtime Environment), the plugin you want to symlink or copy over is $JSDK_HOME/jre/lib/javaplugin.jar.

Dr. Sam Beckett cannot safely be translated into GURPS stats.