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.

Updated UI Design guidelines

Some of the locations have changed, some have been removed (XP)

Song quotations

I listen to Velvet Acid Christ a bit. It gets me in the mood for programming. I recently had the latest album gifted to me. What can I say, I really like it.
Then there was a quote towards the end of the love track.

Kill one man, you’re a murderer. Kill a million, a king. Kill them all, a god.

— Drake (Dominic Purcell; Blade Trinity)

Of course, I got sucked into another of those internet memes, and ended up filling in the ‘What tarot card are you’ and got….

You are The Lovers

Motive, power, and action, arising from Inspiration and Impulse.

The Lovers represents intuition and inspiration. Very often a choice needs to be made.

Originally, this card was called just LOVE. And that’s actually more apt than "Lovers." Love follows in this sequence of growth and maturity. And, coming after the Emperor, who is about control, it is a radical change in perspective. LOVE is a force that makes you choose and decide for reasons you often can’t understand; it makes you surrender control to a higher power. And that is what this card is all about. Finding something or someone who is so much a part of yourself, so perfectly attuned to you and you to them, that you cannot, dare not resist. This card indicates that the you have or will come across a person, career, challenge or thing that you will fall in love with. You will know instinctively that you must have this, even if it means diverging from your chosen path. No matter the difficulties, without it you will never be complete.

What Tarot Card are You?
Take the Test to Find Out.

Wonderful quote from the Guardian

Sir Ken Macdonald — the UK’s DPP (director of public prosecutions – basically makes the call as to whether a case goes to trial or not) has spoken out against the “war on terror”:

He said: “London is not a battlefield. Those innocents who were murdered on July 7 2005 were not victims of war. And the men who killed them were not, as in their vanity they claimed on their ludicrous videos, ‘soldiers’. They were deluded, narcissistic inadequates. They were criminals. They were fantasists. We need to be very clear about this. On the streets of London, there is no such thing as a ‘war on terror’, just as there can be no such thing as a ‘war on drugs’.

“The fight against terrorism on the streets of Britain is not a war. It is the prevention of crime, the enforcement of our laws and the winning of justice for those damaged by their infringement.”

Sir Ken, head of the Crown Prosecution Service, told members of the Criminal Bar Association it should be an article of faith that crimes of terrorism are dealt with by criminal justice and that a “culture of legislative restraint in the area of terrorist crime is central to the existence of an efficient and human rights compatible process”.

He said: “We wouldn’t get far in promoting a civilising culture of respect for rights amongst and between citizens if we set about undermining fair trials in the simple pursuit of greater numbers of inevitably less safe convictions. On the contrary, it is obvious that the process of winning convictions ought to be in keeping with a consensual rule of law and not detached from it. Otherwise we sacrifice fundamental values critical to the maintenance of the rule of law – upon which everything else depends.”

It’s great to see a civil servant complaining about the state of play of the government.
Makes a huge difference on my last entry 🙂
Peace out!

Baggy sweatshirt problem

<ramble>
It’s a problem when programming. You don’t have to make a one size fits all solution to a problem. It just isn’t worth the effort. I’m being reminded of the Simpson’s episode parodying Mary Poppins… ‘If you cut every corner you’ll have more time to play’. i.e. if you can get away with it then fake it.
Polishing crap still leaves you with crap. Spend a half an hour experimenting with something to decide if it will work.
Learn to shoot your baby in the crib or It’s too easy to get locked into a commitment that is really too much work…. i.e. even when you’re half way through the experiment and you realize it’s going to drive you mad trying to get it to work then issue a big old ‘rm -rf’.
</ramble>

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.

A little poem that was written onto my phone

hello peter
I am a little scamp from moore street
that likes to suck on wet socks
that have been left to stew on my grannys corns
but fear not. Although this may seem like drunken gibberish I have only had one wee beer
you are a good lad and I promise not to melt your face

Continuing the drama of little snippets of shell

This little piece of shell script attempts to find the ‘lowest subprocess’ of a passed in process. It works well with a straight tree of processes, and if there are the occasional pipes in the command tree then it will miss them most of the time.
Maybe tomorrow I’ll talk about how to fix it.

function find_lowest_subprocess() {
local -i parent=$1
local pids
typeset -a pids
pids=$(pgrep -P $parent)
while [[ -n "$pids" ]]; do
if (( ${#pids[@]} > 1 )); then
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
}