hole found in wall of nudist colony
police are looking into it
You have no idea how much I missed seeing this thing
I managed to get the Overdetailed Map Cheat to work in PRBoom. This is a thing I did with the RISC OS engine DIY a long time ago. Instead of everything being boring green triangles, things show up as little shapes like triangles and hexagons and pentagrams and all sorts of stupid crap in many garish colours. It takes a bit of getting used to, at first you don't know what the hell is going on but after a while you just go "blonde, brunette, redhead..."
This is still a work in progress and probably always will be. But it's just nice to actually do something to the Doom source again after all this time, even if I've done it before and all I really did was paste the relevant parts of DIY's am_map.c into PRBoom's. And it's even better to have my map back!
I am caught in a stupid fad
Like seemingly everyone else in the world I made a program that solves sudoku puzzles, after I got stuck on one that I can't reduce any further without having to resort to trial and error. That's not to say the computer version - cringingly named "pseudoku" - doesn't resort to trial and error, because it does. It just does it fast enough so you don't really notice.
The algorithm is roughly this. I think it's called a depth-first search for a solution but I don't know.
- Try to "solve" the board as much as possible. If you solve it completely with no more unknown squares, exit.
- Find a square that isn't already known (that is, only has one possibility)
- For each possibility, make a copy of the board with the possibility at the position, and recurse
- If that guess worked, substitute it in, and go back to the start. If it didn't try the next possibility.
- If you run out of possibilities return to say the board in this state is impossible.
"Solve" means, well, you start off with an empty board where every square is marked that it could contain any of {1,...,9}. Then you put the numbers in. "Solve" means cross out all the possiblities for each square that are in fact impossible. During this it also checks stuff like if there are two of the same numbers in the same row/column/subgrid or if there's a number which can't be placed anywhere in it. The actual "solve" function tries to do this reduction as much as it can until it detects that it can't cross out any more impossibilities. If you give it a really easy board it can solve the thing without having to resort to the recursion at all.
It is a perl script so I could conceivably turn it into an mod_perl module, but it's probable that you could construct a pathological case that would end up being a denial of service attack, not to mention my usual dislike of form processing, etc. Also credits to Graeme and Stik, the algorithm came from my vague memory of their conversation following their both developing similar programs. Also there is a module to do this in CPAN but I didn't look there until after I'd done it.
http://www.troa.ath.cx/todolist
This is a small script that generates a blank to-do list. The idea is that you generate one and fill it in with a text editor. Then you just delete the date off the top line as time passes. Apparently this works better than any fancy appointments software. I don't know, I don't have any deadlines or appointments so I don't use it. The design is due to Spark so ask him.
Unnecessary background: I wrote this thing in perl about three months ago. It was 10 lines long. I more than doubled its size by making it into a CGI script (the extra bits were for spitting out an HTML form and interpret the submissions to it. Did I mention I hate writing form input validation code?) It was still less than a quarter of the size of the same program in C which just goes to show you're meant to choose the language to fit the task not the other way round. Anyway I didn't just want to leave this half-arsed cgi script up when I have a whole server with a perl interpreter in it. But since I don't know the mod_perl API as well as I might I never got round to converting the script into a proper handler. Yes I know I could just use ModPerl::Registry or whatever it's called but that's cheating! But anyway I heard he was complaining about the fact that I deleted the original off my webspace so I've done it properly now.
HOW DO YOU SPELL "HOUSE"?
My neighbour's new chav girlfriend is so amazingly dumb it's not even funny
333333333333
Following on from 1111111111: Tomorrow morning at 5:55am and 33.33 seconds, it will have been 333333333333 centiseconds since the start of the RISC OS epoch.
RISC OS doesn't work like UNIX:
| OS | epoch start | units | stored as a |
| UNIX | 1970 | seconds | signed 32-bit integer |
| RISC OS | 1900 | centiseconds | unsigned 40-bit integer |
RISC OS's millennium bug will occur in 2248 (4th June, at 6:57am, 57.75 centiseconds to be exact)
Quite why it is a 5 byte number is something of a mystery, other than being inherited from the BBC micro. This didn't have a real-time clock but did have a timer that started from zero on power-up. If it were only 4 bytes, it would only be about 6 weeks before it wrapped and I suppose they thought it was conceivable that a computer might be left on that long. And of course it wouldn't make the code to increment the counter any more complicated; since the BBC micro only had 8 bit registers, you'd have to go
- add 1 to byte 0
- add carry to byte 1 if there is a carry
- add carry to byte 2 if there is a carry
- ...
So the only change in the code would be the comparison to work out when to stop this loop, after byte 3 or byte 4.
DISCLAIMER: I have no experience of RISC OS 4 or anything about developments in RISC OS in the past half decade, and in particular I don't know if they still measure the time in this way, or if they switched to UNIX epochs or whatever. I would be quite surprised if it had been changed though.
WAS YOUR DENTIST NAMED DR.TL
BECAUSE HOLY SHIT THAT WAS A WHOLE LOT OF WORDS!!
puzzles
For some reason I cannot fathom, last week my mother brought home a thick book of Sudoku puzzles. I like them because they're easy, well, easier than crosswords, anyway. You don't need to know the entire dictionary nor how to decode crossword clues. I can just about manage logic puzzles.
Then the Now Show made fun of them for being a fad and now I don't know what to do. They're right, and I hate being caught up in fads or anything popular. Oh well. I preferred nonograms or whatever those damn things Sarah used to do were called, anyway. That's a logic puzzle too but you end up with a pretty picture at the end so it's artistic as well!
Oh that reminds me, why does GD(3pm) say there is a GD::Image->newFromXbm when it doesn't actually seem to exist? I have the Xpm version of libgd installed. The function is there in the C library and in the Perl documentation but not actually in the GD.pm glue code. It is most vexing. This is one of a number of things that over the years I would have posted in the Debian BTS, but I hate that they don't make any attempt to disguise your email address. You'd think they hadn't heard of spam and address harvesters!
flowers
The rose plant in the garden sprouted a rose last week that was quite simply the most gargantuan flower I have seen. Seriously this thing was the size of a cabbage. A very pink cabbage, but nevertheless. It smelled like a type of sweet you can get from Woolworths Pick'n'mix. (I can't remember the name of the sweet and it's been annoying me all week)
Also my father's cactus sprouted a large white flower which is apparently a very rare thing. He brought it over to show us. Sitting in its black bucket with this large spiky stalk thing emanating from one of the small nubs on top of the plant, the whole thing looked frankly alien. I half expected it to jump out of the bucket and grab my face.
maps
Kaiser_5 Another in the Kaiser series, this one is a base, with outdoor areas. There's lots of detail, as you would expect, and a number of somewhat unexpected special effects due to it being a Boom map, like doors that swing open when you press on them. Innovation is all very well but it always unsettles me when things happen that are impossible in vanilla maps, but then I am stupid like that. There is also a rather entertaining huge monsterfight towards the end. It's quite a surprise! Just after that you get the yellow key, but I think it would have been better if it had ended there instead - the actual yellow-locked area felt tacked on. It's vaguely reminiscent of Kaiser_9 although maybe all techbase in valley maps look alike, I don't know. Anyway, it's really good and I recommend it.
Mall This is a deathmatch map with some tacky extra graphics. I am mentioning it for two reasons: 1) I think the mirror in the men's toilets is really clever (though I think ZDoom can do this on the fly now) and 2) I think the fact that you can't get into the women's is very humorous. No girls play Doom, see? Anyway, have a look if you like silly attempts at "realistic" levels.
BOOBS
Made you look!
demos
Here are some Doom demos from "the vaults"
Remember to play demos you do
prboom -file whatever.wad -playdemo whatever.lmp
(or -timedemo or -fastdemo) And if you think it's funny that I was playing on HNTR, you try running eaxt on UV...
rss
Oh I tried to make snafu read and write rss files. This didn't go too well. Why does it have to store datestamps in human-readable form? You're meant to feed these stupid files into an rss reader aren't you? Also, I found there are supposedly over half a dozen different versions of rss and they're all mutually incompatible, due to stupid companies playing politics. Netscape involved in a browser extension war again! Well I never! Bunch of idiots
The Mulldoon Legacy
I hate this game, it's far too hard. I even screw it up when following the walkthrough. Is it possible to repeat the boat ride or something? I forgot to grab the pipe to get into the hermit's cell, and now I can't find another way in.