So the VRML rendering thing isn’t panning out so well. “Making the simple things simple by making the difficult things impossible”.

We’re talking, here, about a language which has a clock, but no way to display the time. You can display strings on billboards, and the billboards even point at the camera most of the time. But you can’t cast the float time to a displayable string, without calling out to Javascript anyway, and I never could get that to work the same way twice. So I made a little analogue clock where a sphere slides along a cylinder And that sort of works. Sort of. Of course, it doesn’t stay quite still either which makes it rather difficult to read.

You can interpolate the position of Things. But you can’t interpolate points in IndexedLineSets, so my poor nodes are floating there in space without the links showing. Maybe if I interpolated the center and the lengths of a cylinder for each link, perhaps? But really, surely, that’s too much work to go to for something that’s meant to be a visualization tool, not and end to itself.

Also, like it’s little friend HTML, it never renders the same way on two different platforms. And never tells you why. Argh.

Anyway, that’s my rant. There must be some way to do this. I’m sure it’d be a very simple Java applet. There’s lots of them out there. Surely someone else has DONE this.

Here’s the closest thing I can get to a VRML animation of 10 nodes converging

EDIT 2009-09-02: And a sightly nicer one with 12 nodes converging

So I’ve had this thing for a month or so now, and it is very very good. Some comments:
(more…)

So I’m playing around with Google AppEngine (still!) trying to put together some kind of sensible use for it. AppEngine is neat-O, but it is also quite limited in what it can and can’t do. One of the most glaring problems (for my toy app) is the datastore query API, which has various restrictions, including:

Inequality Filters Are Allowed On One Property Only

Now this is pretty obviously an efficiency measure: retrieving on inequalities involves iterating along one index, and the datastore isn’t in the business of picking which one to iterate along. But its also really annoying if you actually want to do something which needs multiple inequalities.
(more…)

In case anyone’s wondering, the syntax of the /etc/udev/rules.d/* files has changed considerably in recent versions:

  • “==” is now required for comparisons, where older versions require “=”
  • ATTRIB{} is the new version of SYSFS{} rules.

(more…)

I’m still messing around with template languages … I’ve added a couple of new ones and here’s the revised leader board.  I tried adding ClearSilver for Perl & Python but I couldn’t get either of those to work …  pity, its an interesting approach.  As with the previous posts this is time in seconds for  1000 tables of 100 rows by 10 columns each, not counting template compilation time.  The 200x difference in performance is what makes it interesting:
(more…)

[[ That headline used to read &loathe; but wordpress is a bit &weird; about it ]]

I’m not having a terribly pleasant evening — a distro upgrade to Ubuntu Jaunty involved a kernel upgrade to 2.6.28-13, which required a vmware upgrade to 1.0.9 which … didn’t work. There’s a lot of information out there explaining this particular problem, and all the solutions involve downloading patches with odd names from odd places and running them as root, which seems a little odd for a patch … but what the hell. If it’d actually worked I’d have come to terms with it.

But it didn’t, dear reader, and so while my right hand was desperately searching for yet more vmware-any-every-update-31337-1/2 files, my left hand installed VirtualBox from the Ubuntu package, used qemu-img and VBoxManage to convert my old .vmdk image to a .vdi image, and set up bridged networking. This proved much quicker than filling in the vmware 2.0 registration form

The only weirdness is that the first ethernet adaptor is, for some reason, eth1 instead of eth0. Otherwise, it just booted straight up and worked.  EDIT: I think this is just udev doing its thing, every time I change it it goes up by one :-)

I think I’m going to keep it.

(an honourable mention to kvm-qemu as well, which I’ve been playing with for emulating Windows boxen.)

Virtual Localization is a technique for Mesh Network routing. It tries to make it easy to route packets across the mesh by assigning each node a “Virtual Location”, which can then be used for Greedy Forwarding. It is a fully distributed algorithm … no one node holds the whole map of the network, the map is spread across all nodes with each node having a small map of its immediate surroundings.

It’s discussed in more detail in these papers, but this post is an attempt to summarize.

(more…)

wget 1.10.2 seems to silently fail to use an SSL client certificate unless you specify both –certificate and –private-key:

wget --certificate=$PEMFILE --private-key=$PEMFILE
 (more...)

There’s a lot of info out there on running KVM (Kernel Virtual Machine) on Linux, to support guest machines running Windows or whatever. However, it all assumes you are happy running KVM as root, and that you want to bridge your Windows guest straight to the outside world.  Neither of those are true in my case, so here’s how I did it.

(more…)

I just got a new toy. Thinkpad X301. Happy happy joy joy. I feel a bit sorry for the poor old Portege now.  Original post bitching about Vista has been replaced, as has Vista: some comments on installing Ubuntu 9.04 “Jaunty Jackalope” follow! (more…)

« Previous PageNext Page »