Killer Mermaids

Every once in a while, I quite like watching a crappy monster movie… not even something so-bad-it’s-funny… just something distinctly average.
Today’s offering is Killer Mermaids, which I found on Netflix while searching to see if Alien was on there (actually, I was searching for Alien vs Predator… don’t judge me). Anyway, I decided it was worth a go because who doesn’t want to see Ariel snap and kill a bunch of people? I mean, she’s already collecting trophies from drowned sailors… it’s only a few short steps to her drowning those sailors herself.
So, without any more preamble (pre-ramble?), let’s get started…

0:00 One of the studio logos is for a catering company… I wonder if they literally just catered the shoot.
0:01 Starts off with a Moby Dick quote… I haven’t read it, but I’m pretty sure Moby Dick was about a whale, not mermaids.
0:03 Over the credits there are some videos, shot by two of the characters on their phones. I guess this is supposed to make us like them… they’re shooting in landscape, so I kind of do.
0:04 Mermaid song sounds an awful lot like whale song. Is this a massive twist? Is it called Killer Mermaids, but it’s actually about a killer whale?
0:06 The two decoy protagonists are dead already. Man lured into the water by whale song and killed, presumably by whale; woman killed by unknown assailant with legs… probably not a mermaid.
0:09 I hope these two aren’t the main protagonists… they seem super annoying.
0:10 “I’m sorry, my English is not too good.” “Oh no, you speak American just fine.” Better than you apparently… she know the name of the language, for a start.
0:11 One of the women is afraid of water… she’s either going to die first or survive the film.
0:13 They’ve just noticed a creepy old guy, who I’m pretty sure is “legs” from the opening scene. One of the characters just referred to him as “Moby Dick”. Moby Dick was the whale, right? I really feel like I’m missing something about that book.
0:16 All this incredibly awkward dialogue is supposed to make us hate the characters, yes? So we don’t care if they get eaten?
0:19 This woman’s jacket has the most spiked studs I’ve ever seen in one place. She just needs to hug the mermaid and they can end the film early.
0:20 Scare chord and an aerial shot… killer seagulls?
0:21 Another guy killed by Legs… this film is distinctly mis-named so far.
0:23 Ok, so there’s an abandoned prison, but they can’t get there with the boat they’re in. No explanation… is the boat too big, too small? It’s a fairly standard speedboat, so I can’t imagine how it would be unable to access an island that received prisoners on a semi-regular basis.
0:25 A rugged looking man has appeared, but has ruined the effect by introducing himself as Bob. (Sorry, Bob!)
0:25 He has a harpoon gun that fires little tridents… is that even a thing?
0:25 On closer inspection, it has five prongs… a pentadent?
0:29 Ok, if a creepy old man warns me not to go to a dangerous island that doesn’t appear on Google maps (no, really), I’m probably going to stay away. Even if I’m 99% sure he’s talking nonsense, 1% chance of horrible death seems high to me.
0:32 Legitimate shock twist. Creepy Old Guy isn’t Legs – he’s looking for his daughter, who was the woman that got killed at the start. I bet Bob is Legs.
0:33 Ok, the only way to get to the prison is in a small boat with an extremely shallow draft… must have made building it a pain.
0:36 And then they admired an interesting historical site and all went home.
0:40 Having witnessed the disposal of several dismembered body parts, one person wants to leave immediately, while the others decide to play CSI: Alcatraz. In a just world, the sensible one would live, but I’m pretty sure she’ll be first for the chop instead.
0:42 Lots of running, chased by presumably-Legs, who now has a shotgun, but apparently has no idea how to use it. They’re running in a tight-ish cluster… he should have hit one of them by now, just by sheer luck.
0:46 And they’ve split the party… obviously no D&D players amongst them.
0:47 So far, this prison is a lot of corridors and no cells. 0/10. Would not incarcerate again.
0:50 Over halfway through the film and we finally have the killer mermaids… though technically it’s mermaid, singular… and she’s not actually killed anyone yet.
0:52 Ok, so the mermaid can appear as an attractive(ish) woman, in order to lure prey. Does this mean that the mermaid is a fairly recently evolved creature? Or could ancient mermaids appear as attractive chimps?
0:55 It’s been bugging me for a while and I’ve just figured it out… the mermaid’s leitmotif is the Mockingjay call from Hunger Games, missing the last note, presumably to avoid any lawsuits.
0:57 “It’s all my fault.” “It’s not your fault.” It’s definitely his fault.
1:02 What is it with buxom mermaids? I’d have thought the last thing that a water-based creature would want is two flotation devices attached to its chest.
1:04 I’m super confused. Legs is clearly killing people to feed the mermaid, but just as Bob is about to pretty much walk into the mermaid’s open arms, Legs intervenes and tries to kill steal. What, is he going to kill Bob then hand him back to the mermaid and say, “Here you go… nice and fresh for you.”?
1:05 They’ve killed Legs, the mermaid doesn’t exactly look nimble out of the water… how is there 25 minutes left of this film?
1:07 Still just one mermaid, incidentally… I’m already composing a strongly worded letter to the producers.
1:07 “No luck defeating them mermaids then?” “It’s just the one mermaid actually.”
1:09 Legs isn’t dead after all… he’s actually looking pretty good for a guy who took an axe to the back.
1:10 Of course, Bob is also looking pretty good for a guy who put a tourniquet on hours ago and whose leg, by all logic, should have dropped off by now.
1:11 Creepy Old Guy comes out of nowhere and saves Bob and Scared-of-Water. No explanation of why he was hanging around at the end of a secret underground tunnel in the middle of nowhere.
1:15 They’re sitting in a boat – a flimsy little rowing boat – listening to Creepy Old Guy giving backstory… at this point, if they die then it’s entirely on them.
1:17 Now they’re about 15 feet from shore, they know the mermaid is about and he’s stopped rowing again.
1:17 Now he can’t row, because he thought throwing the oar at her was a good plan.
1:18 Scared-of-Water is swimming to shore, pulling the boat behind her on a rope, like some sort of weird “World’s Strongest Woman” contest. Creepy Old Guy is in the boat, shouting, “Swim fast!” What a dick.
1:19 It turns out that the mermaid’s secret weakness is nets. Makes sense… I mean, it’s not like she has intelligence, sharp teeth and opposable thumbs to help her get free.
1:23 How on earth did Legs beat them back to the mainland? They left him locked in a tunnel, with an axe in his back and no boat.
1:24 Awwww… Legs was in love with her and is sad that she’s dead. Now I feel kind of bad.
1:25 Amazing! I take it all back. Mermaids, plural… and coming for vengeance!
1:26 “I’m not ready to die,” says Scared-of-Water. You’re on land and they have no legs… I think you’ll be ok.
1:26 Creepy Old Guy decides if he’s going down fighting, he’s at least going to kill Legs first. Brilliant.
1:26 Aaaaaaand… roll credits. Despite my mockery, it wasn’t a terrible film; it was pretty standard fare for a low budget creature feature. The mermaid looked like she was done largely with prosthetics, so there was no overly offensive CGI. The score was well done and there were some great exterior shots of the prison. Not worth watching, unless you’re a fan of the genre, but if you are then you could do worse.

Posted in Films, Reviews | Tagged | Leave a comment

How the Grinch Stole Summer

A classic tale that I’ve rewritten for those, like me, who actually like Christmas, but hate the heat.
All the Whos down in Whoville liked summer a lot.
The Grinch, who lived just north of Whoville did not.

The Grinch hated summer, the whole summer season.
Now please don’t ask why, no one quite knows the reason.
It could be his shoes made his feet get too hot.
Or his need to wear suncream when he’d rather he not.
But I think that the reason will probably prove,
To be that in summer it’s too hot to move.

Whatever the reason, the cream or his shoes,
He spent his bank holiday hating the Whos.
Staring down from his cave with a sour, Grinchy frown,
At the wide open windows below in their town.
For he knew every Who that lived round and about,
Was busy now, getting their barbecues out.

“And they’re setting out deck chairs!” he snarled with a sneer,
“Those stripey, cliche ones, I see them from here!”
Then he growled, with his Grinch fingers nervously drumming,
“I MUST find some way to stop summer from coming!”
For shortly, he knew, in each town and each street,
The Whos would emerge with their flip-flopping feet,
And then they would all start enjoying the heat.
That’s one thing he hated! The HEAT!

And the more the Grinch thought of this Who summer fun,
The more the Grinch thought, “I must stop everyone!”
“Why, for thirty-five years I’ve put up with it now!”
“I MUST stop this summer from coming! But HOW?”
Then he got an idea! An awful idea!
“I know just what to do!” The Grinch merrily brayed.
And he started to build an enormous sun shade.
And he chuckled, and clucked, “Now it’s my turn for fun!”
“With this massive obstruction, I’ll block out the sun!
(And because it will be on a hill to the east,
I can skip all the stuff down in Whoville, at least.)”

It was quarter past dawn… All the Whos, still a-bed,
All the Whos, still asnooze, when he quitted his shed,
Packed the shade on a truck, with its struts and its beams.
Bags of bolts, nuts and rivets, bursting all at the seams.
Three thousand feet up! Up the side of Mount Cildit!
He rode with his load and he started to build it.

“PoohPooh to the Whos!” he was grinchishly humming.
“They’re about to find out that no summer is coming!”
“They’re just waking up! I know just what they’ll do!”
“Their mouths will hang open a minute or two,
Then the Whos down in Whoville will all cry BooHoo!”
“That’s a noise,” grinned the Grinch, “That I simply MUST hear!”
So he paused. And the Grinch put his hand to his ear.

And he did hear a sound in the dim morning light,
With the shade in its place, the sun no longer bright.
But the sound wasn’t sad! Why, this sound sounded merry!
It couldn’t be so! But it WAS merry! VERY!
He stared down at Whoville! The Grinch popped his eyes!
Then he shook! What he saw was a shocking surprise!
Every Who down in Whoville, the tall and the small.
Was still having fun with no sunscreen at all.
He HADN’T stopped summer from coming! IT CAME!
Somehow or other, it came just the same!

And the Grinch, with his grinch-feet surprisingly cool,
Stood puzzling and puzzling: “Was he such a fool?”
And he puzzled three hours, till his puzzler was sore.
Then the Grinch thought of something he hadn’t before!
He made a connection, not previously made…
“If I don’t like the sun, I can sit in the shade.”
And what happened then? Well, he tore down his build,
And the valley below was with bright sunlight filled!
For the Grinch had at last found his own summer groove.
He sits square in the shade and he tries not to move.

Posted in Fiction, writing | Tagged , , , | Leave a comment

Machine rolling – Using machine learning to roll D&D ability scores

I’ve been looking into machine learning recently, partly for my own interest and partly because I suspect it will see a lot of use in my industry in the coming years. There are a couple of decent resources that I’ve been using to get started. There are free Alison courses on data science and machine learning that I am working my way through – I’ve found these good as an introduction to the general theory of machine learning, though the couple I’ve gone through haven’t had much in the way of practical examples. However, on the practical side, this page – Your First Machine Learning Project in Python Step-By-Step – is a great tutorial on running your first machine learning algorithm in Python. It’s very quick (it took me longer to track down the module versions I needed than it did to work through the code) and gives a nice introduction to some basic tools. Having worked through the tutorial just mentioned, I wanted to try it with some different data in order to play around with it. However, real world data, in an appropriate format for machine learning, is not something you just find sitting around, so I invented a problem that didn’t really exist – rolling an acceptable set of D&D ability scores.

A quick primer for non-D&D players:
When creating a character in D&D you roll six ability scores between 3 and 18. In early editions, this was done by rolling three six-sided dice and adding them together, then repeating that five more times – generally in early editions, the results did not have a huge effect on the game, so it didn’t matter if you didn’t roll particularly well. In later editions, having a couple of high scores became a lot more important and most groups switched to rolling four dice and dropping the lowest, to generate slightly better scores. There is also a general understanding that a legitimately bad set of scores can be re-rolled, though where people draw the line on a “bad set” will vary a lot.

So… could I use a machine learning algorithm to teach my computer what a bad/good set of D&D attributes looks like, so that it can then roll random sets of scores, until it gets one that is acceptable? Short answer, yes; long answer… keep reading.

First, I needed a training set, so I generated 1000 random sets of ability scores (using Python, but you could probably do it in Excel easily enough), ordering each one from highest to lowest (both to help the machine learning and to help me evaluate them). I then went through all of them and classified them as either acceptable or not acceptable. I weeded out the obviously useless sets with a bit of filtering (sets with nothing higher than a 13 or with multiple very low sores), but then I just went through and assigned each one a classification. This did take a little time, but not as long as you’d assume – I was very much going on an instant gut feeling for each one, proven by the fact that there were a handful of cases where I classified the same set of ability scores as both acceptable and unacceptable at different points in the list.

(1 for acceptable, -1 for no good)

With my training set in place, I ran through much of the same code as in the tutorial mentioned above, obviously tweaking for the fact that I have six variables, rather than four. Unlike the tutorial, the SVC algorithm showed the best potential accuracy (I don’t know what SVC is… that’s something I hope to discover at some point) and when I ran it against the testing set, it got a 93% overall accuracy score.

From the point of view of my ultimate goal, the precision on the acceptable results is the most interesting item here. If the algorithm misses some acceptable sets (the recall score), I’ll never see them anyway – the important number is the probability that the set of results it does spit out is an acceptable one. 86% is not as good as 93%, but is certainly better than a straight up random set, which has at least a 20% chance of being no good, just based on having a max score of 13 or at least one score of 5 or less. It’s also likely that the sets being miscategorised are the borderline cases that aren’t too terrible, just not inspiring.
Having taught it to recognise acceptable sets of ability scores, the final step is simple enough; a little bit of Python to generate random sets of ability scores, test them using the machine learning algorithm and then print out the first that passes.

(A rather good set of scores there)

I’m not going to bog this post down with syntax… post a comment if you have questions on my specific code implementation.

A couple of final points…
As a test, I produced a stripped down training set, with only the highest two scores and the lowest. I then classified them with a simple rule that a set was acceptable if both the highest two were at least 16 and the lowest was no less than 8. Interestingly, despite the fact that I could write a simple if/then clause that could categorise the sets perfectly, only one of the various machine learning algorithms mapped the training set with 100% accuracy, while a couple of others got very high 90s. The LR algorithm (whatever that is) only hit 88% accuracy, which seems very poor under the circumstances. Clearly some of these algorithms are not designed to identify something so clean cut, but presumably do very well on dirtier data.

Lastly, despite the theory that the program will generate a set of ability scores that should be acceptable to me, there is nothing stopping me from rejecting the result and just running it again. With this in mind, I did consider adding a random seed, based on the date, that would mean if I ran it multiple times on the same day, I’d always get the same result. However, at this point I really am creating issues that don’t exist, so I think we’ll finish here.

Posted in Roleplaying games, Technology | Tagged , , | Leave a comment

Famous poems as haiku

Today is haiku poetry day (not sure who actually decides these things). For reasons unrelated to this blog, I rewrote a few famous poems into haiku and, not one to let such things go to waste, I figured I might as well pop them on here too. Enjoy. (Or don’t… it’s entirely up to you… art!)

irritating bird
disturbs man’s contemplation
and then it won’t leave

companions on beach
they make a bunch of new friends
and then they eat them

Mongol emperor
builds a fabulous palace
I forget the rest

a bird and feline
embark upon sea voyage
and then they marry

six hundred go in
cannons to the left and right
and then there were none

I shot a large bird
now damned for eternity
who you calling old?

man from Nantucket
not suitable for posting
(don’t include this one)

Posted in Fiction, writing | Tagged , | Leave a comment

Lost in Transit – A short story

[Transcript of laboratory 15 voice recorder during first human teleportation trial]

[Doctor James Hanover] Ok, Mister Johnson, please have a seat here, while the technicians get things finalised.
[Harry Johnson] No problem.
[Hanover] While they’re getting ready, let me just run through the procedure again. I know you signed the consent documents, but just to cover the main points…
[Johnson] Sure thing.
[Hanover] Great. So, when we pull the switch, a 3D scan will be taken of your full atomic structure. Your body will then be atomised and a perfect copy created in the chair that you can see on the other side of the laboratory.
[Johnson] You won’t forget that second part, will you?
[Hanover] *laughs* I assure you, we won’t. We have had hundreds of successful trials with rats, dogs… even a gorilla. All came through perfectly fine.
[Sally Jenkins] Everything is prepped Doctor Hanover.
[Hanover] Thanks, Sally. Now, just to be clear, Mister Johnson, the copy that appears at the other end won’t technically be you. It will be identical to you… not even your mother would be able to tell the difference…
[Johnson] What about my wife?
[Hanover] Or her. I just want to be sure you fully understand the implications.
[Johnson] Look, Doc, I was never one for weird metaphysical debates… you’re paying me well, I’m going to be the first man to ever teleport… as long as I can go back to my family afterwards, we’re good.
[Hanover] Super. In that case, just sit back, relax and we’ll see you again in a few moments. Sally, start the process.
[Jenkins] Process started. 3D scan compiling now.
[Barry Smith] Power levels nominal, no spikes.
[Jenkins] Scan compiled. Proceeding.
* Audible popping noise, caused by disintegration of Harry Johnson. *
[Smith] All levels still optimal.
[Hanover] *inaudible muttering*
[Jenkins] Production of subject copy beginning. He’s looking good… and… process complete.
* Cheers and general shouting from laboratory staff.*
[Hanover] Congratulations, Mister Johnson, you’ve just made history. How are you feeling?
[Hanover] Mister Johnson?
* Sounds of rapid movement and equipment being shifted *
[Jenkins] Breathing and pulse normal… blood pressure one ten over seventy.
[Smith] Starting atomic scan for comparison.
[Hanover] There must be something we’ve missed.
* More sounds of equiment use *
[Jenkins] EEG shows normal brain activity. Nervous system and reflex responses are as expected.
[Smith] Atomic scan shows a match, pre and post transfer. Differences are easily within expected limits for the time passed.
[Jenkins] There’s nothing wrong with him, Doctor Hanover… he’s just not doing anything.
[Hanover] Well, shit.

Posted in Fiction, writing | Tagged , , | Leave a comment

How to make a magnetic hourglass

I was in Waterstones over Christmas and in their gifty section, they had a magnetic hourglass that looked pretty cool; essentially, a regular hourglass with some sort of ferrous “sand” and a magnetic in the base. However, it was £20, which seemed kind of expensive for something that would just sit on my desk, so I decided to make my own for far less cost.

I went through a few iterations before I found something that worked reasonably well. I initially tried using plastic champagne flutes from poundland (the ones with the detachable bases). I figured I could drill a hole through the stems of two flutes, attached them together and just cap the ends. However, the stems were too thin to get a firm (or straight) join, so I abandoned that plan pretty quickly.

Next (and this is where I started taking pictures), I tried a couple of small jars, separated by a disc with a hole in it. (The disc was just laminated card – nothing special.)
I didn’t really expect this to be a great solution, but I wanted proof that the iron filings I got off eBay and the magnet I got off the fridge would produce the intended effect.

It actually wasn’t a terrible result. The biggest issue was that the join was too wide and flat – I had to overload the hourglass to ensure that enough filings would fall through and there was a lot left in the top bulb. Still, the principle was sound.

My next thought was to use small cones in the join, instead of a flat disc. However, joining them presented similar issues to joining the champagne flutes (not straight, not stable) and I also wasn’t sure that they would bear the weight of the upper bulb.

I then went back to my previous version, but using vessels with much narrower necks. I settled on some plastic bottles for holding bath products (80p each in the supermarket), joined with a much smaller disc. (I just glued the bottles onto the disc one at a time – it’s fairly sturdy.)
This works pretty well – almost all the filings fall through and a quick shake before turning sends the rest down.

To create a base, I simply melted a couple of tea lights into a tealight holder and pressed a fridge magnet into it.

The final result is a neat little craft project, which cost about £4, plus a couple of things that were lying around the house.
Take that Waterstones!

Posted in Experiments | Tagged , | 3 Comments

Bacon? Bac-off!

Just a short post this week, as I have a lot of other stuff on my plate.
A while back, I planned to do a Great British Bacon, where I would try different bacon recipes over a ten week period. Then I got busy and became a vegetarian, so it didn’t happen.
However, I don’t want to entirely waste the planning I put into it, so here are a couple of the things I was intending to make… in case anyone wants to try them and let me know what I’m missing out on.

Bacon and cheese scones:
This was essentially going to be adding crispy bacon pieces into a standard cheese scone recipe. I’m pretty sure that the flavour combination would have worked, plus it would have added pleasing crunchy bits to the scone texture.

Bacon pancakes:
Americans eat bacon with their pancakes, so why not bacon *in* pancakes? I figured that I would make up some thick pancake batter (American pancakes, not English), fry up some bacon bits, collect them into little piles in the frying pan, then add the pancake batter directly to the piles, letting it cook in the bacon fat. Serve with maple syrup… in theory, delicious.

Unnamed halloumi and bacon combination:
Unnamed because I couldn’t come up with a decent pun on “pigs in blankets”. Chunks of halloumi, wrapped in streaky bacon and then cooked in the oven – if I ever find a decent vegetarian bacon that crisps up properly (recommendations welcome), this is the one that I will probably still try at some point.

Posted in Experiments, Food | Tagged , | Leave a comment