Skip to main content

Posts

Showing posts from October, 2008

The myth of the sudoku's

Sudoku's have been quite a hype in recent years, attracting puzzle lovers all over the world. I have solved quite a number of them myself, or at least, that's what I thought until earlier this year. Seeing the daily "difficult"/"superieur"-level sudoku in a Swiss free newspaper, a coin dropped. They've been publishing the same sudoku for over a year now. Yes, that's right, the same sudoku, every day. Or more precisely, an equivalent sudoku. By using four simple transformations, yesterday's sudoku can be transformed into today's, and so can the solution !
rearranging rows withing the same 3-row block (idem with columns)rearranging the order of the 3-row blocks (idem with 3-column blocks)permutating 123456789 into a different ordertransposing the grid (making rows into columns and vice versa)How long can they keep this up, you wonder ? There's a total of about 1.2x10E12 combinations to every sudoku puzzle. It will take them 4.6 billion year…

identifying the ESX version in a VM: peeking through the blinds

An interesting issue popped up: how can a program or script in a VM determine the type and version of the hypervisor it is running on ? This is important if you want to install version-specific software, like the VMware Tools ("enlightened hardware drivers", as MS would say).
Knowing that you're running in a virtual machine is pretty easy: you can look at the hardware, on VMware you'll see "00:0f.0 VGA compatible controller: VMware Inc Abstract SVGA II Adapter" which makes it pretty clear, and lspci -v says "Subsystem: VMware Inc" for every PCI device. Easy as 1 2 3.

But which version of VMware ESX is it ? Not that easy, it seems. But we (hi Dag !) found a unique signature for each ESX version: looking at dmidecode, the output in the "BIOS Information" section lists a Release Date and an Address field. These seem to be unique for each ESX version. The mapping we could build was:
ESX 2.5 - BIOS Release Date: 04/21/2004 - Address 0xE8480 - Si…