Blog

Ruth & JTA’s Stag/Hen Party Weekend, Part II

With their wedding just around the corner, Ruth and JTA had a combined stag/hen party weekend, a couple of weeks back. I wrote a little about it already – here’s the second of the three parts. As usual, click on pictures to embiggen.

Saturday

A Mighty Fry Up

Matt, Paul and I kick-started everybody’s morning with an enormous fry-up. We’d be needing every calorie for what was to come next.

Paintball

We spent most of the day at a nearby paintball centre. We got quite horribly lost on the way there, and it took a few attempts for our convoy of cars to finally find the place. I’ve never seen a paintball centre so large, before – everywhere I’d been has catered for up to about 80 people at once, maximum, but this place was enormous. Packed in with hundreds – maybe thousands – of other players, we were herded like cattle through our boot camp and equipment handout.

Party people planning paintball play preparations.
Party people planning paintball play preparations.

My team – Team Black – kicked arse, and not just because there were more of us than our rivals, Team Gold (which was especially true after a handful of Team Gold members were thrown out after one was messing about with his mask). I particularly enjoyed working alongside Ruth’s brothers as a three-man assault team during some of the more team-oriented scenarios.

Paul doesn't approve.
Paul doesn’t approve.

It wasn’t for everyone, though. Perhaps because of the atmosphere, or the stretched-to-breaking-point old equipment, or the half-arsed attitudes of the staff, it was only to be as much fun as you made it. And, of course – as with any war – there were injuries.

A bruised bottom.
That’s gonna sting in the morning.

The moral: in future, stick to the small, friendly paintball centres and not the behemoths.

Leaving the paintball centre.
Leaving the paintball centre.

Troma Night On Location

We raced back to Jordans to fight for the limited supplies of hot water for showering, and then got started at setting up for a wedding-themed Troma Night On Location. Ruth & JTA had chosen four films – an old one, a new one, a borrowed one, and a blue one – to use as our theme, but after a day of running around and being shot at, not one of us was particularly optimistic that we’d be able to sit through all of them!

Troma Night On Location kicks off.
Troma Night On Location kicks off.

Our first film was the topical How To Murder Your Wife, an underrated and fabulously funny adventure in lost bachelorhood. We ordered pizza from the nearest Dominos’ (still a couple of towns away), and had a large stack of pizzas dropped off with us only about 40  minutes; not bad considering the distance and how well-hidden the hostel is.

The film is paused for a surprise interim activity.
The film is paused for a surprise interim activity.

And then we stopped showing films for a little while…

Nurse Kitty

You see: as a Best Man, I have certain responsibilities, and there are certain traditions that ought to be upheld. One of these traditions is that it’s not really a stag night unless there’s a stripper. So I hired a stripper.

Given our mixed-gender/sexuality/outlook group, I made sure to warn everybody that this was going to happen… well, everybody except JTA, anyway, who seemed quite genuinely surprised when I announced that there was a special guest here to see him, and opened the door to “nurse Kitty”.

Nurse Kitty checks JTA's temperature and remarks on how hot he is.
Nurse Kitty checks JTA’s temperature and remarks on how hot he is.

“Did somebody call for a nurse?” she said, “Is… JTA here?” JTA’s hand went up, slightly sheepishly, as Kitty slid around in front of him and checked his temperature (I’m sure that when NHS professionals do this it involves less breast-on-face action) and pulse (I’m not sure that conventional medical practice requires that this is done with a thigh, but who am I to argue with a nurse who’s suddenly wearing a lot less than when she came in.

Peeping at the contents of her nurse’s bag as she put away the thermometer, I caught a glimpse of what was yet to come: baby oil… whipped cream… and – Lucky Stars? That’s a new one on me. But all became clear by the time the CD player had started the second song and the slender young lady in front of us was wearing tine cones of whipped atop her nipples, each topped with a small milk chocolate star. “I didn’t think I liked Lucky Stars,” JTA said, later, “But those were pretty good.”

Ruth had been worried that this diversion from the night would be incredibly socially awkward, but it wasn’t. Thanks to a little injection of humour and a little bit of warning (at least for everybody except JTA), everything was fun and friendly (as well as pretty hot). And Kitty hung around with us afterwards for a while to drink and chat, and turns out to be a really interesting person with a fascinating “day job” (I won’t mention what it was here because the last thing we want is to “out” her as a stripper to her mother, who doesn’t know about her other job).

(there’s a video somewhere which I’ll share with you if the person responsible for it ever gets me a copy)

There’s actually a whole blog post worth of writing about hiring a stripper to come to an inaccessible village in the middle of nowhere, how to handle cancellations, and more – but I’ll save that for another time, if anybody’s interested.

Back to Troma Night

And so we got back to Troma Night and our second film – one of my favourites – The Mating Habits Of The Earthbound Human. I really love this film, and it was great to be with folks who’d never seen it before; to see their happy little faces at the conception analogy used in the film, for example – a wonderful little joke in a brilliant movie.

Hanging out at the end of the evening.
Hanging out at the end of the evening.

And then, we gradually drifted off to bed, one by one. Nobody had the energy for even a third film, never mind a fourth, and we’d need a surprising amount of energy for tomorrow’s activity… [to be continued]

Party people planning paintball play preparations.× Paul doesn't approve.× A bruised bottom.× Leaving the paintball centre.× Troma Night On Location kicks off.× The film is paused for a surprise interim activity.× Nurse Kitty checks JTA's temperature and remarks on how hot he is.× Hanging out at the end of the evening.×

On This Day In 2009

Looking Back

On this day in 2009 I’d just announced that Claire and I had broken up after our seven year relationship. I attacked Virgil‘s omnia vincit amor (love conquers all), countering that our love for one another was not sufficient to prevent the difficulties we’d been having. That the breakup was among the most structured, carefully-negotiated, and amicable of I’ve ever heard detracted only a little from the pain of the ending of the romantic part of our relationship.

You’ll note that I’ve always been careful not to say that our relationship ended, because it didn’t. It changed: we transitioned (bumpily, and with difficulty) from a romantic relationship to a friendly relationship. You’ll also notice that I don’t use the term “just” friends unless that clarification is absolutely necessary (after all, why are friends “just” friends: what’s wrong with friends? – I’ve another blog post on this very topic under construction).

Looking Forward

It’s gotten easier, over this last year, to deal with the breakup: but it’s still hard. We had a huge place in one another’s lives, and that doesn’t simply evaporate. From my perspective, at least, I still feel at least a little bit “derailed”: like, if you asked me 18 months ago about where I’d be living now, or what I’d be doing, then I wouldn’t be able to say with any certainty that it would be this life I now have. That’s not to say I’m not happy: I’m enjoying what I’m doing now (although a little more free time wouldn’t go amiss!). It’s merely that I haven’t yet fully got used to the fact that I’m not quite living in accordance with the same plans that I used to have.

There are folks who’ve criticised our breakup, saying that we’d both have recovered from it better had we tried harder not to keep in contact, not to remain friendly, etc. I don’t know whether I agree or not – but I dispute that it would have necessarily been better. One thing that’s actually been really helpful over the last year (for me, at least, and I’d guess for Claire too) is that we’ve been able to get support from one another. That’s a remarkable and unusual thing: but then, we were a remarkable and unusual couple.

And isn’t supporting one another what friends do?

Getting better all the time. Sorry to mope.

This blog post is part of the On This Day series, in which Dan periodically looks back on years gone by.

Ruth & JTA’s Stag/Hen Party Weekend, Part I

With their wedding just around the corner, Ruth and JTA had a combined stag/hen party weekend, a couple of weeks back (yes, I know it’s taken me a while to blog about it. Here’s some of the highlights. As usual, click pictures for bigger versions.

Friday

Jordans

Most of the party was to take place at the youth hostel in a Buckinghamshire village called Jordans. With a little sweet-talking to the lady who runs the hostel – which we’d rented outright for the weekend – we were able to check-in a little early, to at least be able to leave our bags and cars there.

Jordans Youth Hostel
Jordans Youth Hostel

Matt, who was to join us for the next part of the adventure, was running late, so we explored the nearby Quaker meeting house – one of the oldest, right on our doorstep, and the burial place of William Penn – while we waited for him to show up.

Ruth, JTA, and Paul, standing around wondering where Matt could have gotten himself to.
Ruth, JTA, and Paul, standing around wondering where Matt could have gotten himself to.

Eventually we had to set off to London without him, on the train. We hid his train ticket inside the least-likely-looking leaflet we could find at the train station, texted him instructions to find it, and got underway.

In which leaflet do you think we've hidden Matt's train ticket?
In which leaflet do you think we’ve hidden Matt’s train ticket?

Paul split from us shortly after Marylebone Station to pursue a quest of his own: to find a stack of foreign candy and purchase it. Meanwhile, we went on to…

Volupté

The festivities started with lunch in Volupté for Ruth and JTA, accompanied by maid-of-honour Matt (when he caught up with us) and I. You might recall that Ruth, JTA and I had been before for their “afternoon tease” a few months ago, and loved it. Volupté is a fantastic little burlesque club buried in the middle of London, and we enjoyed their ostentatious and eccentric cocktails as we ate our dinner, listened to some live music, and watched JTA help a young lady undress by tugging on the end of one of the series of wrap-around dresses she wore.

JTA and Ruth at what we've now decided is our 'usual table' in the cocktail lounge, waiting for Matt to arrive.
JTA and Ruth at what we’ve now decided is our ‘usual table’ in the cocktail lounge, waiting for Matt to arrive.

Given our dormitory-style accommodation, he probably thought that this would be the only time he’d be helping a young lady to undress all weekend, but this assumption would turn out to be false later in the weekend…

Ruth & Dan’s Stag/Hen Party Game Which They Couldn’t Agree On A Name For

Back at Jordans, our other guests were beginning to arrive. Ruth’s brothers, Owen and Robin, were among the first, followed by Alec and Suz, Siân, Adrian and Abby. That’s when we got the phone call from Liz.. giggling as she went (perhaps from the painkillers?) she wanted to apologise that she and Simon wouldn’t be able to make it, because she’d suffered a rather unpleasant injury. And so began the first of our evening’s entertainments: coming up with awful and tasteless puns about poor Liz’s accident.

The drinking begins. Here's to you, Liz, for being so unflappable.
The drinking begins. Here’s to you, Liz, for being so unflappable.

As our chefs in the kitchen prepared everybody’s dinner, Ruth and I began to explain the rules of Ruth & Dan’s Stag/Hen Party Game Which They Couldn’t Agree On A Name For.

Paul, Robin, and Ruth prepare dinner.
Paul, Robin, and Ruth prepare dinner.

Two teams were formed. The aim for each team was to help their team-mates traverse a Twister mat by competing in a series of challenges to win a number of “spins” of the Twister spinner. When a team-mate got across the mat, they were awarded a hat; and the first team to be entirely “hatted” is the winner. Easy, right?

Sian stands with one foot on the mat as her team-mates struggle to complete their first challenge.
Sian stands with one foot on the mat as her team-mates struggle to complete their first challenge.

The challenges were about as varied as Ruth and I could manage to come up with. The first, for example, had blindfolded players trying to solve a jigsaw under the (verbal-only) guidance of the rest of their team. Another required the team to transport water from a stack of jugs to a distant bucket using only a leaky length of guttering. A third had each team playing charades.

Alec and JTA, blindfolded, attempt to solve jigsaws.
Alec and JTA, blindfolded, attempt to solve jigsaws.

Remarkably, few people were hurt. Sure, the water-pistol-fight-while-carrying-lit-candles game was pretty safe, but the “human jousting”, which saw piggybacking riders attempt to dismount their competitors by beating them with foam swords, stopped barely short of bruising poor Suz as she was repeatedly whipped by Matt.

Human Jousting.
Human Jousting.

Quite-remarkably, Alec lost to Paul in a doughnut-eating competition. Meanwhile, the most spectacular bobbing-for-apples competition ever seen – between JTA and Owen – ended with a spectacularly close and exciting finish… and water pretty much everywhere.

Alec having lost a doughnut-eating competition; still wearing the blindfold, tiara, and earrings from two previous challenges.
Alec having lost a doughnut-eating competition; still wearing the blindfold, tiara, and earrings from two previous challenges.

Drunk, tired, and – in some cases – wet and covered in doughnut crumbs, we went to bed. Tomorrow was to be a long day… [to be continued]

Jordans Youth Hostel× Ruth, JTA, and Paul, standing around wondering where Matt could have gotten himself to.× In which leaflet do you think we've hidden Matt's train ticket?× JTA and Ruth at what we've now decided is our 'usual table' in the cocktail lounge, waiting for Matt to arrive.× The drinking begins. Here's to you, Liz, for being so unflappable.× Paul, Robin, and Ruth prepare dinner.× Sian stands with one foot on the mat as her team-mates struggle to complete their first challenge.× Alec and JTA, blindfolded, attempt to solve jigsaws.× Human Jousting.× Alec having lost a doughnut-eating competition; still wearing the blindfold, tiara, and earrings from two previous challenges.×

It is Windy in Aberystwyth

We don’t get wind in Oxford: not wind like this, anyway. The air is passionate and angry, full of bitter sea salt and wild energy. It smells like Aberystwyth… and still a little like “home”.

But this time I’m here as a visitor, of course. Just another tourist: and that’s a very strange and alien feeling, to me.

Traveling In Time(zones)

Just when you think you’ve got them figured out (and the application you’re working on is coping correctly with daylight saving time), something comes along and blows your little mind. Like this, for example:

Suppose you’re chilling out in Hawaii on some lazy Sunday. Cocktail in hand, you check your watch – it’s midday. Midday on Sunday – that means you’ve got a ‘plane to catch: you’re about to fly due South to the research station on Palmyra Atoll, part of the Line Islands. Palmyra Atoll, like Hawaii, is part of the United States, so you don’t even need your passport, but you pause for a moment to try to work out whether you need to adjust your watch…

A timezone map of the mid-Pacific Ocean, showing the islands in question.

When it’s midday on Sunday in Hawaii, what time is it in Palmyra Atoll (which is at essentially the same longitude)?

It’s midday… on Monday! The Line Islands are uniquely considered to be in the timezone UTC+14:00 (and Hawaii is in UTC-10:00), so despite the fact that the Line Islands are, on the whole, East of the Hawaiian islands, the whole cluster of them are an entire day ahead of Hawaii. Even those which are managed by the U.S. are closer to New Zealand (chronologically) than they are to any other U.S. terrirory (even though they’re more distant geographically). It’s no wonder people get confused by things like the International Date LineMagellan was apparently so confused by the fact that his ship’s log was a day out upon his return from a round-the-world trip that he wrote a letter to the Pope about the oddity.

Similarly, when the sun rises on the Line Islands, it marks the beginning of the day after the date that it rises on Hawaii, ten minutes later.

I find this particular quirk even more interesting than the similar one on the Diomede Islands (a pair of islands in the Bering Strait), sometimes called “Tomorrow Island” and “Yesterday Island”. The Diomedes are clearly separated in an East-West configuration, whereas the Line Islands are clearly to the South (and North) of islands which are still stuck in “yesterday”.

The Diomede Islands

In practice, apparently, the 4 – 20 scientists living at any given time on Palmyra Atoll work at UTC-11:00: only an hour from Hawaii – presumably so that they maximise the period that their work week lines up with that in the rest of the United States: but this only serves to exaggerate the phenomena: this means that you can hop from, say, Palmyra Atoll to nearby Teraina (population 1,155, about 150 miles away) and have to wind your watch forward by a massive 25 hours (or just one hour, I suppose).

By the time you’re living on a South Pacific island paradise, I suppose these things don’t matter so much.

http://en.wikipedia.org/wiki/Palmyra_AtollPalmyra Atoll
× ×

Parsing XML as JSON

This morning, I got an instant message from a programmer who’s getting deeply into their Ajax recently. The conversation went something like this (I paraphrase and dramatise at least a little):

Morning! I need to manipulate a JSON feed so that [this JSON parser] will recognise it.

Here’s what I get out of the JSON feed right now:

<?xml version="1.0" encoding="UTF-8"?>
<module-slots type="array">
  <module-slot>
    <title>Module3</title>
    ...

“Umm…” I began, not quite sure how to break this news, “That’s XML, not JSON.”

“Is that a problem?” comes the reply.

On This Day In 1999

Looking Back

On this day in 1999 I sent out the fourth of my Cool Thing Of The Day To Do In Aberystwyth e-mails. I wasn’t blogging at the time (although I did have a blog previously), but I felt that it would be nice to do something to help keep in touch with my friends and family “back home”, so I came up with Cool Thing Of The Day To Do In Aberystwyth. Every day I’d send back a bulk e-mail about something that I’d gotten up to during my first months at the University. Some of them were pretty tame, but some were more spectacular, like the time some of my hallmates and I tried to steal a golf course, piece by piece. Many of them just appear dated, like the one where I balk at having over 3.25GB of digital music. I was having a great time, and I wanted to share it with my friends, even when my college-mate Richard wrote to say that he didn’t believe me.

When I finally got around to re-integrating my old blog entries (well, the ones I could recover) from the last millennium into my new blog, I also decided to include the Cool Thing Of The Day, with a few minor amendments.

The dates on many of them aren’t actually accurate, because when I re-imported them I made the assumption that I sent one every day, which wasn’t the case (it was actually one every two or three days, and they went on into 2000, which isn’t correctly reflected any longer). However, the date for this particular one is pretty close. On this day in 1999, I bought tickets to see Craig Charles during his Live On Earth tour, at the Aberystwyth Arts Centre.

Looking Forward

When we actually went to see Craig Charles, it was after a couple of heavy nights partying all around the UK, to celebrate the birthdays of my friends Andy and Reb (Reb would later go on to become my girlfriend, although we had a friends-with-benefits arrangement going on for a long while before then). We started the party in a few London pubs and a club, and then Andy and my friend Gary sobered up as fast as they could to drive back to Aberystwyth, arriving just before the sunrise, while Reb and I took the train behind them.

Cool Thing Of The Day died in January, after I became bored of it and was finding it harder and harder to do new and cool things that would justify keeping it on. Many of my friendships with the people who received the newsletter waned, but I still keep in touch with most of the recipients of it, albeit only occasionally.

Craig Charles was pretty good. I bumped into him afterwards in the Glengower Hotel bar where he apparently later got into a fight with a local.

This blog post is part of the On This Day series, in which Dan periodically looks back on years gone by.

Roman Typesetters

When ancient Roman typesetters or web designers were showcasing a design, and didn’t want the content of the (dummy) text on their mock-ups to distract the client… what did they use for their lorem ipsum text?

These are the kinds of things that bother me most when I’m doing typographic layout. That, and Internet Explorer’s consistently fucked-up interpretation of CSS.

Civilization V Release Day

For those of you in the USA, at least, today is the release day for the much-anticipated Sid Meier’s Civilization V. With the promise that this will be the most groundbreaking Civ game since Civilization II, I’ve managed to acquire a leaked screenshot of the very first thing that players will see when they launch Civilization V for the first time:


With apologies to those of you who haven’t had the experiences to find this funny.

×

The Modern Programmer’s Dictionary

In the field of  software development, there’s always something new to learn. Whether it’s a new language, framework, API or methodology, your need to study is never through – even if you’re a FORTRAN developer. But one of the more esoteric areas of your education will come in the form of the language programmers use, and I don’t mean programming languages.

And so I present to you a dictionary of modern programmer language (much of it shamelessly lifted from a discussion on Stack Overflow):

Ajah

Ajax, but returning HTML rather than XML (e.g. using jQuery‘s $.load method). Similarly, Ajaj, when you expect script to be returned (e.g. $.getScript).

Bicrement

Adding 2 to a number.

Boolean Zen

A principle of programming lacked by those who perform expressions to compare variables to boolean constants. For example, if (userHasLoggedIn == true) lacks Boolean Zen, because the == true at best does nothing at all, and at worst results in an unnecessary evaluation.

Classtrophobia

When someone chooses not to use the obvious object-oriented approach when it is available.

Common Law Feature

A bug in some software which has existed so long that it has begun to be depended upon by the users, who will complain loudly when it is “fixed”.

Doctype Decoration

In web development, the practice of putting a Doctype Declaration (e.g. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">) into the document despite not actually writing standards-compliant code. Often accompanied by putting a “Valid HTML & CSS” link on the site, but never actually checking that the site passes the validator’s test.

Egyptian Brackets

That style of coding which puts the opening brace { of a block on the same line as the expression (wrapped in parentheses) before it, e.g.:

if (expression){

So called because the ){ sort-of looks like a stereotypical ancient Egyptian pose, depending on your preferred coding font:

Floater

A bug that sits at the top of the bug tracking system, but nobody claims responsibility for it. Everybody just works around it.

Flock of Geese Code

A block of deeply-nested and heavily-indented code forming a tight V-shaped wedge. Often occurs when adding functionality to a complex block of evaluations, by a developer who hasn’t noticed that perhaps a return statement, exception-handling, the && operator or even a goto statement might be more appropriate! Especially poignant when using a bracketed-block language, where you’ll see a string of closing braces flying away at the end of the code.

Hi-Driven Development

A variety of printf-debugging where you pepper your code with alert('hi'); in order to find out where it’s going wrong, rather than breaking out a proper debugger. Other acceptable string literals include “hello”, “here”, “xyzzy”, etc.

Higgs-Bugson

A bug that you believe to exist based on sparse log data and theoretical examination, but you have no evidence to support the idea that it has ever actually been observed, except perhaps vague anecdotal evidence from users.

Hindenbug

A catastrophic bug resulting in a devastating loss (typically of data). “Oh, the humanity!”

headlessCamels

CamelCase words lacking a leading capital letter, as required or recommended for various languages, frameworks, and styles. As opposed to ProudCamels.

Heisenbug

First noticed on Usenet in the 80s, but still awesome: a bug that defies investigation because, during debugging (when you’re observing it), it behaves differently.

Hydra Code

Code so bug-riddled that killing one problem results in two more in it’s place, like the mythological Lernaean Hydra‘s many heads.

IRQed

Interrupted while you were trying to program. Not necessarily by somebody with an actual flag.

Loch Ness Monster Bug

An important bug, if ever it could be proven to exist. Only ever observed once or twice by users who were unable to back up or reproduce their claims. These users often go on to swear by the existence of the bug, blaming it for all kinds of unusual phenomena even in completely unrelated systems for years to come.

Ninja Comments

Comments which are so stealthy that you can’t see them at all. It’s almost as if the code weren’t documented at all!

NOPping

Like napping, but what programmers do while they’re downtiming while waiting for a computer to finish a task. Based on the NOOP or NOP operation found in many low-level languages.

NP Hilarious

An algorithm whose complexity is a joke, whether deliberately (e.g. Bogosort, but not Quantum Bogosort) or not.

Object Oriented Pasta

Spaghetti code wrapped up into classes to look like proper object-oriented code. Also Ravioli.

Pokémon Exception Handling

For when you positively, absolutely, “gotta catch ’em all.” I’m talking about hideous code like this:

try {
MessageBox.Show(message);
} catch(Exception exc) {
MessageBox.Show(exc.Message);
}

See also Try, Catch, Forget.

Refucktoring

As defined by Jason Gorman: refactoring code in such a way that you are now the only person capable of maintaining it. E.g. stripping all comments and whitespace from an arcane bit of code that you wrote in order to give yourself the illusion of being indispensable. Results in Mortgage Code (code which pays your mortgage because you can’t be fired while it exists).

Rubberducking

Sometimes you’re working on a problem and what you really need to do to solve it is to talk through the problem with somebody else. The other person doesn’t even need to be a developer: often, they don’t even need to listen – they just need to be there while you talk your way to your own solution. So much so, that they might as well be replaced with a rubber duck, sat atop your monitor. A name come up with by a programmer who apparently actually did this.

Scar Tissue

Commented-out blocks of old code, after refactoring, that have been checked in to the main codebase.

Shrug Report

A bug report which contains no reproducible information whatsoever, or is so unclear as to be ambiguous. Often contains phrases like “doesn’t work”, or doesn’t show how the anticipated behaviour differs from that observed (e.g. “when I click the print icon, the document is printed onto A4 paper from the feeder tray of the printer”).

Smug Report

A bug report submitted by a user who acts as if they know more about the system than the developer does.

Stringly-Typed

Use of strings for all kinds of inappropriate variables, like strings containing the words “true” and “false” for use in comparisons (not helped by the fact that some languages, like PHP, will let you get away with boolean comparisons on these). Also common among inexperience database developers, who’ll make an entire database of VARCHARs because they’re then able to store whatever they want in there, right?

Troolian Logic

Using a boolean variable to deliberately hold three states of information: true, false, and null. Often requires the use of the === operator to function properly.

Try, Catch, Forget

An exception handling strategy based purely on catching exceptions and then doing nothing with them. In other words, telling your program “if something goes wrong… carry on anyway!” Sometimes also seen as a Trynally – a block of code with a try and a finally block, but no catch blog at all. See also Pokémon Exception Handling.

Unicorny

Adjective used to describe a requested feature that’s so early in the planning stages it might as well be imaginary. Used by Yehuda Katz to describe some of Rails‘ upcoming features.

Yoda Conditions

Expressions that test for (literal == variable) rather than the more-common (variable == literal). The former is preferred by some programmers because it reduces the risk of accidentally using a single-equals rather than a double-equals (this mistake would produce a compiler error rather than simply misbehaving). So-called because it results in Yoda-like phraseology (e.g. “has no errors, the form does”).

×

The L-Word

I just thought I’d put some feelers out not for the first time, but for the first time online, to see if my theory is true that I am only only man in the known universe who enjoys the (now-finished) Showtime drama series  The L-Word. If I’m not, will somebody let me know!

I have an ongoing experience when I tell people about the series. I explain what it is and why I like it. Evidently my enthusiasm is sufficient to grab the interest of whoever I’m speaking to, because many of them will then go and watch it. What happens then divides strictly down gender lines. Virtually every woman I’ve introduced to the show goes on to watch and enjoy it, and virtually every man – except me – goes on to watch it and hates it. What gives?

I’ve jokingly said before that among my male friends, the gay ones don’t like it because there’s too much lesbian sex, and the straight ones don’t like it because there’s too little. That’s pretty cynical, I know, and I’m not convinced it’s true: after all, if this was genuinely among the major criteria for favouring or disfavouring a drama series, well, then most of my male friends wouldn’t watch any at all, and that certainly isn’t the case.

Maybe I’m just mis-selling it. I’m pretty much following the TV guide description when I tell folk about it: it’s a show about a group of (mostly lesbian) friends in LA – major themes are relationships, sex, sexuality, discrimination, social class, career, and art. That pretty much covers it. It’s compelling and intricate, and I’m honestly at a loss to explain the clear gender boundary between those who do and those who don’t enjoy it.

Ruth proposed to me that it could be to do with the way that women communicate: much of the impact of the show comes from the way that the characters share their feelings – more in subtle ways like choice of language and body language than in the actual face-value dialogue. Her thinking here is that (whether because of our biology or our upbringing), us gents aren’t as capable of picking up on these cues, which form a baseline of the action in the series. It’s possible, I suppose: most of the show’s producers and many of the scriptwriters, as well as most of the cast, are female and so would be expected to have this mysterious superpower. But it fails to explain how the show appeals to me… and to whichever other men enjoy it: I’m hoping that if I hear a positive response back from any, that we might be able to work it out together.

In any case, it’s a conundrum: if you’ve got any ideas, let me know. And if you haven’t, go watch the show and see if you can work it out. Careful with the spoilers, if you’re ahead of me (I’m half-way through season 3, with its fabulous guest star Alan Cumming).

This blog post has nothing to do with my earlier post, Women In Movies, although if you enjoyed this one you might like that one, too.

×

Right Feature, Wrong Project

Since I’ve been working from home, things with my “day job” at SmartData have ticked along pretty much the same as they ever did before. But once in a while, something goes wrong. Like this.

I checked my instant messenger, and saw a bit of text from my boss, Simon:

also, have you implemenmted a "message of the day" type feature as users login?
msg from [our contact with a client I've been working with]
[another requested feature]
[and a bug report]

That’s simple enough, then: our contact wants us to fix that bug and add two features: the second one (not listed), and a Message of the Day tool. Easy.

I implemented the MotD, first, because it’s trivial. It’s nice to implement the fast features first, because it gives the client something to play with, test, and get value from while they’re waiting for the rest of their project. Plus, a “Message of the Day” feature was a nice warm-up activity this morning while my brain picked up steam in order to tackle some of the bigger tasks of the day.

Later, I spoke to my boss via the instant messenger. The conversation went a little like this:

Dan: If you speak to [client name], let her know I've redeployed.
Dan: New version has [another feature] and the MotD tool.

Simon: MotD tool? For [name of completely unrelated project]

You see, the problem was that without a context of time (I’d ignored the timestamps on the messages), I wasn’t to know that the  message “also, have you implemenmted a “message of the day” type feature as users login?” referred to the previous conversation we’d been having. And didn’t apply to this project at all.

I just hope that my client likes the unsolicited “free” feature I’ve given them, because – well – they’ve got it, now.

Is an unsolicited feature a bug? I’m just not sure.

Troma Night Adventure

Because I promised you some Aber-nostalgia.

Do you remember the RockMonkey Wiki? Many years ago, Ruth bought the domain name rockmonkey.org.uk as a gift for Andy K, who’d been nicknamed “Rock Monkey” for longer than anybody could remember. He decided that what he wanted to host there was a wiki engine, and I helped him get one set up. Soon, every Abnibber and Troma Night veteran was using it, filling the pages with all kinds of junk.

Soon, Jon launched the wiki’s first WikiGame: a maze exploration game using littered with Dungeon Master Java screenshots and monsters aplenty (monsters like Tubgirl and Lesbians and The Splurg). This kicked off a series of other WikiGames, mostly by Jon, Andy R, and myself (although Andy K started about a dozen of them and Ruth got some way through developing her first).

My biggest contribution was probably TromaNightAdventure, a text-based adventure in which the player attempts to explore Aberystwyth to collect (at least) three Troma Night stars, some pizza, some beer, and some films. It was an epic quest, far larger than I’d meant for it to grow, with multiple non-linear ways to win and a scoring system that told you exactly by how much you’d beaten it (some, but few, people managed to score the maximum number of points).

The screenshot above isn’t from the RockMonkey Wiki. It’s from my relaunched version of Troma Night Adventure. That’s right: I’ve dug up the final backup of the RockMonkey Wiki, extracted the relevant content, knocked together a mini version of the wiki engine and the WikiGameToolkit, and re-launched the game. It’s read-only, of course: this isn’t a real wiki; the real wiki is long-gone. But it does have a few extra features than the original, like a pictorial inventory and a nippy Ajax-powered interface. If you’re looking for some nostalgia about the old RockMonkey Wiki or about Troma Nights back in Aberystwyth, here’s your ticket: