The association between flourescent green materials and radioactivity isn’t just the domain of comics and movies (by )

Uranium can be added to give glass a fluorescent yellow or green color

http://en.wikipedia.org/wiki/Glass#Overview

...it's official! Glass containing uranium is actually coloured flourescent green/yellow!

After all my irritation at radioactive wastes always being portrayed as a glowing yellow/green liquid, that little point has made my day. Thankyou.

Log structured file systems revisited (by )

I've been thinking about log structured transactional filesystems again, and I think I've come up with something potentially useful for making POSIX-style file systems as well as for the TUNGSTEN object store. Read more »

Driving theory test – passed! (by )

Woo hoo! I've passed my driving theory test.

I scored 35 out of 35 on the easy multiple choice questions ("A burning child staggers into the road in front of you. Do you (a) accelerate and run into the child so the flames are put out as it flies through the air, (b) pretend not to notice and drive past, (c) stop and help, (d) sit and watch"), and 46 out of 75 on the dreaded Hazard Perception - when the pass mark is 44!

Phew. Close. TOO close.

But anyway, onto the next step: the practical test. If I am lucky, I will get one booked before Christmas. The waiting lists around here are a bit mad.

Havering show (by )

We've spent today and yesterday running a stall in the craft tent of the annual Havering Show.

We had for sale some of my cast aluminium paperweights, and lots of things Sarah makes - Wigglypets, Fimo jewellery, bead bracelets, bookmarks, and so on.

Sadly, we made a loss! The crowd was conspicuously lacking our main target customer group - teenagers. This may have something to do with the fact that there was a fairground OUTSIDE the show, and the show itself cost four pounds to get in; unlike previous years, when the fairground had opened after the show had closed... it seemed like the fairground was in competition to the show.

We had lots of middle aged people and above, and young families with tiny children. The children loved the Wigglypets, and a few of them were dragged away crying by their parents - because few of the parents seemed willing to buy them for their children; perhaps due to the craft tent being quite deep into the show ground, so most of the children already had candy floss, painted faces, and balloons... and my theory is that the fact that most of the children ran up to the stall and picked up a wigglypet, only to have the parent yell "Don't TOUCH! PUT THAT DOWN!" at them, meant the parents couldn't possible "reward" the child for showing such enthusiasm by actually buying them something! We may have had more sales if we'd put them behind glass or something so the children aren't so tempted to disobey parental dictates :-/

Oh well. You live and learn. We picked up some details of other shows from neighbouring stallholders, so we'll try them and see if we get any better luck elsewhere. Ideally somewhere where all the teenagers aren't lured away.

Literate programming (by )

I wish I'd been there for this conversation:

http://www.gyford.com/phil/notes/talks/e/euro_foo_camp_jo_walsh_literate_programming.php

However, I'm far too boring to be able to make it to exciting geek events like that 🙁 Maybe one day, when I've been freelancing for more so have spare money for travel and can take more time away from work...

I've studied literate programming, so I'd probably have been able to help explain it there. My own interesting idea, however, is that a programming language could have inbuilt support for being in development.

Here's what I mean. How many times have you seen:

/**
 * Returns true iff the specified user should be able to perform the action
 * by checking the access control database.
 */
boolean checkAccess (String username, Action desiredAction) {
  return true; // FIXME: implement access control database
}

Or FIXME comments saying that a bit of code ought to be rewritten to be faster, or refactored on general principles, or something.

What I envisage is that you could instead write:

/**
 * Returns true iff the specified user should be able to perform the action
 * by checking the access control database.
 */
boolean checkAccess (String username, Action desiredAction) {
  return test_harness (true, "Access control check for " + username + " doing " + desiredAction);
}

test_harness is pretty much just a function that returns its first argument, or (depending on a compile flag or something) maybe gives the developer (at run time) the option of specifying what it should return, so he can test the behaviour of code when an access control rule is refused (the second parameter being a prompt).

But when you compile the application in "release" mode, the presence of test_harness becomes a fatal error. Thus protecting you from forgetting, and releasing test harness code into the wild.

Another construct would do nothing to the semantics of the program, just prevent it from compiling (with a custom error) when not in debugging mode. This could be done with something like this in C:

#ifdef RELEASE
#error Whoa! Replace this quick hack of a cache with something that actually frees unused memory, will you?
#endif

...but it would be nicer to just write:

#fixme Whoa! Replace this quick hack of a cache with something that actually frees unused memory, will you?

Anyway. Not quite literate programming per se, but something related to it; by giving semantics to certain kinds of comments that have special meaning, we're still blurring the divide between code and comment in a useful way.

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales