03/08/2002 @22:14:43 ^01:50:02

Site unavailability warning

Rutherford moving house next week will cause some interruptions in the availability of this site and the rest on the server over that time and beyond. Not to mention last night, when a badly configured DHCP daemon took the whole lot out for a few hours...

PRBoom vs DIY

PRBoom is one of the most popular Doom source ports available, mainly because of its huge compatibility with the original code, but with its support of all the useful features of any Doom source port worth its disk space. It is pretty much what I wish DIY was, but while that supports many of the typical enhancements it doesn't support all of them.

Despite its dreadfully punned name I have used DIY for some three years now, because it is the only freely available Doom port to, and optimised for, RISC OS. Since you have to build it yourself (hence the name) I was unable to resist making a number of changes to it, changes to which I have become very accustomed (e.g. my enhanced map, support for moving backwards on a mouse key, some tiny changes for consistency, I should post the changelog but I can't be arsed...)

DIY has served me well over the years but let's face it my Debian box is that much faster than my Risc PC and other ports of Doom to Linux are that much better. DIY compiles on Linux but I tried it and quite frankly it was slower than on the Risc PC, all its optimisations are worked into RISC OS and I think it only compiles on "various Unices" because the guy who ported it is obsessed with cross-platform sources.

So we have the decision I don't want to make. Do I copy all my Doom stuff off my Risc PC onto my Debian box? First of all I have to make a bunch of changes to PRBoom's sources, and to maintain consistency I'd have to add them as options to its configuration menus and so on as well (but not all my changes would be necessary as some of them I pinched from PRBoom's direct predecessors in the first place:-) )

But assuming I do that, what then? The problem is, I don't really do that much else these days with the Risc PC other than keep it for Doom; none of the programs I've developed on it have been touched for years, the RISC OS market has moved on and I can't afford RISC OS 4 as an upgrade, it needs money spent on it that I don't have. So moving all my Doom stuff off it would basically kill it. This is profoundly depressing.

PS It's worth pointing out that if I found a music sequencer for Linux then my even older A3010 would be essentially killed off as well

Type-in madness!

Before the internet became popular you used to get computer magazines with software on the cover. (While I am aware that you still do, they're all crap and the web, although in many ways worse, is much better in my opinion, because you can laugh at all the people who post dumb stuff in online forums. While I am also aware that there was an internet before 1997, hardly anyone outside of universities and geeky research labs was on it and I'm damn sure there was no chance that I'd ever have been able to get on it even if I knew more about it than simply its existence.)

Even before that, you used to get computer magazines in which were type-in listings. These would often run to several hundred lines and be a nightmare to enter, in fact there was this one thing I started typing in once, it was like 900 lines long and... well, anyway, the type-in listing is a lost art. Recently I have been reading some ancient computer magazines from like 1992 and in a fit of nostalgia I'd like to revive that long-dead magazine form, the type-in program.

With that in mind here is a little bit of Perl I knocked up this afternoon. It makes factors of numbers and is very slow and simple but I'm going to post it anyway, so all of you nostalgic for some type-in action, get tappin' on those keys!


use strict; $^W=1;

my $number = $ARGV[0];
die "Usage: $0 <number>" unless $number;

my %exp;

my $factor = 2;
my $power = 0;

while ($number > 1) {
	print "$factor : ";
	while ($number % $factor == 0) {
		$number /= $factor;
		print "$power ";
	if ($power != 0) {
		$exp{$factor} = $power;
		print "\n";
	} else {
		print "\r";
	$power = 0;

print "\n$ARGV[0] = 1";
for $factor (sort {$a <=> $b} keys %exp) {
	print " x $factor^$exp{$factor}";
print "\n";

Type it in, save it as "factorise" or something and either do perl factorise <number> or if you're on a Unix system alter the bang path at the start as appropriate, make it executable, and then you can just run it.

Of course no type-in listing is complete without some sample output!

$ factorise 180
2 : 1 2 
3 : 1 2 
5 : 1 

180 = 1 x 2^2 x 3^2 x 5^1

Don't just cut and paste it into an text editor and save it. That's cheating! Why do you think I didn't put any comments in? Everyone who's done type-in listings knows that comments are really pointless to enter, because they don't do anything! Instead, make the output look better, you can remove the first bit completely if you like, and find a way to make it not have to start off with "1 x" because that looks moronic but I'm too lazy to fix it.