gnome on low bandwidth

I would have to say ‘serves you right’, but even with a reasonably fast cable modem connection X blows goats on remote displays. vnc is an improvement, but the windows remote terminal system kicks ass on a 56k ordinary modem connection. Hmmm….

bugfixed ‘find lowest subprocess’

It turns out there’s a bug, due primarily to testing on zsh and putting the script into bash.

function find_lowest_subprocess() {
local -i parent=$1
local pids
typeset -a pids
pids=($(pgrep -P $parent))
while ((${#pids[@]} > 0)); do
if ((${#pids[@]} > 1)); then
parent=${pids[0]}
local i=0
while ((i < ${#pids[@]})); do
local sub=$(pgrep -P ${pids[$i]})
[[ -n $sub ]] && parent=$sub
((i=i + 1))
done
else
parent=$pids
fi
pids=($(pgrep -P $parent))
done
echo $parent
}

Someone, somewhere forgot about the parenthes around the array assignments. Shame on me!

vmware, vista and losing network traffic

I’m replaying network traffic at 1000 packets per second into a vmware client that’s hosted on a vista machine. It’s losing quite a few packets. the Vista OS does not appear to be losing the packets, they are simple missing on the guest operating system. This is a lot like crap, really.

This is a universal patch for linux 2.6- whatever

This is the official declaration of a patch for the linux kernel. It provides for the replacement of all GPL only exported symbols with generically exported symbols.
While the code is trivial, I hereby declare that it is copyright 2007 Pete Shanahan.
It is, itself subject to the GPL, so there.
Starting from the kernel source directory issue the following command:

for i in $(find . -type f); do
sed -i -e 's/EXPORT_SYMBOL_GPL/EXPORT_SYMBOL/' $i
done

If someone is putting multiple symbols on a line, then you have my permission to use:

for i in $(find . -type f); do
sed -i -e 's/EXPORT_SYMBOL_GPL/EXPORT_SYMBOL/g' $i
done

Gosh, now that wasn’t difficult, now was it?
This developer created this patch while under the influence of several personally made martinis, a couple of beers and a few shots of vodka (it was nice, though), so if the spelling of any of the code is incorrect then feel free to correct it, send me a patch and I’ll add you as a contributor to it. After all, we’re all pragmatists together.

Ooooooh, these licenses will kill me

The GPL is a difficult beast.
all those MODULE_EXPORT_GPL symbols.
F**k them.
I’m just going to release a patch that remaps them all to MODULE_EXPORT.
The patch is GPL.
F**k you I’m a pragmatist, not an idealist.
This was written at 3am, I am drunk and I’m bitter. You know who I am.
I don’t prefix my posts with ‘yes, I drink…’, you should know what I’m like, after all; you’re here

it’s a tomato

Well, having had enough of the dd-wrt firmware for the linksys router. It was annoying, slow and irritating and every time we enabled QOS it lost the connection to the WAN I upgraded to the tomato firmware. So far it works. It successfully QOSes the p2p stuff down to the lowest category. It has pretty graphs! Whoopee!

AMT is handy….

It’s just a shame that you can’t use it easily on Linux due to the lack of a driver to communicate directly with the hardware. It’s the replacement for IPMI. Complete remote management of your servers (and desktops and laptops) through an always-on network connection (that is as long as you have power going to the box). All it needs is to be configured (not for the faint hearted) and then you need a machine to talk to it. Unless you’re using a half decent windows server box (something that can at least pretend to be a provisioning server), you’re screwed as you’ll only be able to use it in small bunnies mode (business :). You can make a local ISO image on your computer act like it’s in the CD drivce of the remote machine, you can PXE boot it from the command line (easy installs; easy cleanup!). It cooks, it cleans and it even sends out SNMP traps when something goes wrong (except of course for when the power goes out). It supports a watchdog (but it’s not as easy to program for as the linux watchdog). Unfortunately you have to talk to the damned thing over SOAP. I mean really, wot are you like? It’s like using a butcher’s knife to perform and appendectomy.

updating the /usr/local install tool

We need to extend the linkit script to support (a) Solaris and (b) spaces/escape characters in the file name.

Sorry, my shell environment just isn’t cooperating with me – BASH_ARGV[0] == {}, yet I cannot dereference the variable correctly no matter what I try. No wonder people use perl. God this is so frelling irritating.

damn you paravirtualization; damn you to hell!

Playing with the latest 2.6.20 kernel, I tried to enable paravirtualization on the kernel and it broke vmware. It looks like the XEN changes that went in should be disabled for the time being until there is a more recent release of vmware – prefereably one that can play well with others.

Using snapshots would make ‘don’t install into /usr/local’ easier

Strangely enough, I had actually thought of this before I made the post. Snapshots are a wonderful feature in zfs which allow you to take point in time images of a filesystem that are mutable and which themselves can be snapshotted.
Unfortunately, this leads an explosion of snapshots if we want to be able to arbitrarily remove any one application from the system.
Consider the following operation:

pkg(1) + pkg(2) + pkg(3)

Now remove pkg(2) without using anything other than snapshots.
snapshot before adding anything sn(0). snapshot after adding package 1 sn(1)(sn(0)). snapshot after adding package2 sn(2)(sn(0)) + sn(2)(sn(1)). snapshot after adding package3 sn(3)(sn(0)) + sn(3)(sn(2)) + sn(3)(sn(1)).
Repeat for arbitrary pkg(n).

Unless you’re planning on creating a whole travelling salesmanOk, it’s not quite the travelling salesman problem, but it gives you a good idea as to how much work is involved of snapshots, I think my mechanism is easier.