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.

New crucibles (by )

Just before the wedding, I got two crucibles. Proper A4 salamander crucibles, made from some refactory stuff, rather than stainless steel cups as I'd been using up to then.

However, the stainless steel cups are easy to lift - I punched holes in the sides near the top and put bolts through, so the thing could be lifted using barbeque tongs (the wire loops of the tongs slip over the bolts, securing the crucible). The salamander crucibles, being made of a clay-like stuff, cannot simply be drilled and fitted with lugs; the material wouldn't take the strain when at red heat.

So I had to make tongs. I picked up two 7mm square cross section iron rods from B&Q, a metre long each, and forged them into tongs by using the torch to take parts of them up to red heat, then banging them with a hammer on top of an old steel beer keg or bending by (heatproof gloved!) hand, until they had curved bits that cupped the bottom of the crucible, and met at the top with a hinge.

Well, getting the two bits the right shape for the crucible AND meeting up at the top was pretty tricky, and then we had trouble drilling through the things (using a high speed Dremel was a mistake that got the drill bits hot enough to destroy their hardening; had to use the Black & Decker to drill the holes slowly... although I only have a drill press for the Dremel. Luckily, the hole I'd made drestroying drill bits in the dremel acted as a started hole for the big hand drill). So the tongs are a bit... imperfect.

If I could weld, I could make proper ones or do what the other guys do, which is to make highly durable, large, stainless steel crucibles (as opposed to my little cups) out of thick-walled steel tubing. Not that I've ever found any thick-walled steel tubing lying around as they all seem to.

As it happens, it turns out I need a second person to use a hooked rod to make sure the crucible doesn't fall out of the tongs when I'm pouring... Ok, I don't want to do melts without another person in case I have an accident anyway, but it's wasteful to need two people to do the job of one.

Anyway, at least the things worked, enabling me to use my nice proper crucibles. It takes a long time to heat up the 1cm-thick walled clay crucible compared to my 2mm-thick steel cup, but once it's all glowing red hot, it sure melts stuff fast. What's more, it keeps the aluminium hot once I've lifted it from the furnace and while I'm pouring, enabling me to take it a bit easier in this delicate stage!

I’m a mad scientist (by )

Watching Spiderman 2 has reawakened my long-slumbering desire to build a giant Farnsworth-Hirsch Fusor and stand in front of it cackling, with the cold blue light of fusion casting my twisted shadow into the dark be-girdered heights of my workshop.

There's not many things you can build from off-the-shelf components worth a few hundred pounds that will create a glowing sphere of fusing plasma to hang in space before your very eyes.

Except, unlike the fusion device in Spiderman 2, it has at least a glass-walled chamber to keep the air out and fusion fuels and exhausts inside, and if you stood in the room with it running without shielding, you'd be bathed in unhealthy radiation.

But for all the blatant silliness of the fusion device in the film, I was delighted by the many ways in which it did resemble a fusion device you could build from mail-order parts in a disused warehouse 🙂

CHROME and IRON data typing (by )

IRON schemas and the CHROME type system are intertwined... more accurately, I'd say the latter was a superset of the former.

Let me give a few examples of my requirements for the system. Read more »

WordPress Themes

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