Mr. Smith’s Robbery

This piece of fiction’s been floating around the Internet, recently: I first saw it on Faye‘s blog and wanted to share it. I believe it’s originally written by a Susan from Glasgow, but I haven’t find anything else to pinpoint the original author.

The law discriminates against rape victims in a manner which would not be tolerated by victims of any other crime. In the following example, a holdup victim is asked questions similar in form to those usually asked a victim of rape:

“Mr. Smith, you were held up at gunpoint on the corner of 16th and Locust?”

“Yes.”

“Did you struggle with the robber?”

“No.”

“Why not?”

“He was armed.”

“Then you made a conscious decision to comply with his demands rather than to resist?”

“Yes.”

“Did you scream? Cry out?”

“No. I was afraid.”

“I see. Have you ever been held up before?”

“No.”

“Have you ever given money away?”

“Yes, of course–”

“And did you do so willingly?”

“What are you getting at?”

“Well, let’s put it like this, Mr. Smith. You’ve given away money in the past–in fact, you have quite a reputation for philanthropy. How can we be sure that you weren’t contriving to have your money taken from you by force?”

“Listen, if I wanted–”

“Never mind. What time did this holdup take place, Mr. Smith?”

“About 11 p.m.”

“You were out on the streets at 11 p.m.? Doing what?”

“Just walking.”

“Just walking? You know it’s dangerous being out on the street that late at night. Weren’t you aware that you could have been held up?”

“I hadn’t thought about it.”

“What were you wearing at the time, Mr. Smith?”

“Let’s see. A suit. Yes, a suit.”

“An expensive suit?”

“Well–yes.”

“In other words, Mr. Smith, you were walking around the streets late at night in a suit that practically advertised the fact that you might be a good target for some easy money, isn’t that so? I mean, if we didn’t know better, Mr. Smith, we might even think you were asking for this to happen, mightn’t we?”

“Look, can’t we talk about the past history of the guy who did this to me?”

“I’m afraid not, Mr. Smith. I don’t think you would want to violate his rights, now, would you?”

It’s an effective story, I think, despite the reinforcement of the illusion that rape victims are at most risk from the hypothetical “stranger in a dark alley” (when in actual fact, most rape is conducted by somebody known personally to the victim).

The crime of rape is a whole minefield of complications: the issue of consent; the fact that the only witnesses are generally the victim and their attacker(s), and the sometimes-fuzzy definitions used in many countries’ laws, to name a few. We’re less than a week since a particularly troublesome and emotive case being tried in Cheltenham. In this particular incident, a 15 year-old girl accused a 14 year-old boy of raping her, but it later became clear through the vast inconsistencies in her story that this almost certainly a fabrication. Now, naturally, she’s now being convicted of attempting to pervert the course of justice.

The statement from Women Against Rape? “It is awful that a girl so young has been prosecuted in this way.”

Whoah, whoah – let’s step back a moment. Let’s get this clear: it’s awful that a young woman who lies about being raped, threatening a young man with prison and a lifetime of being on the sex offenders’ register, is being convicted for this? That’s your stance on this? Did I accidentally turn over two pages at once, because I feel like I’ve missed something here.

It’s already awful and tragic that we live in a world where a majority of rape goes unreported. Let’s not also try to make it into a world where it’s acceptable to knowingly make false accusations of crimes, especially those with life-altering consequences.

Fox News on IPv6

Here’s what Fox News have to say about IPv6:

Web developers have tried to compensate for [the IPv4 address shortage] by creating IPv6 — a system that recognizes six-digit IP addresses rather than four-digit ones.

I can’t even begin to get my head in line with the level of investigative failure that’s behind this sloppy reporting. I’m not even looking at the fact that apparently it’s “web developers” who are responsible for fixing the Internet’s backbone; just the 4/6-digits thing is problematic enough.

Given that Wikipedia can get this right, you’d hope that a news agency could manage. Even the Daily Mail did slightly better (although they did call IPv4 addresses 16-bit and then call them 32-bit in the very next sentence).

Oh; wait: Fox News. Right.

For the benefit of those who genuinely want to know, one of the most significant changes between IPv4 and IPv6 is the change from 32-bit addresses to 128-bit addresses: that’s the difference between about 4 billion addresses and 340 undecillion addresses (that’s 34 followed by thirty-eight zeros). Conversely, adding “two digits” to a four-digit number (assuming we’re talking about decimal numbers), as Fox News suggest, is the difference between a thousand addresses and a hundred thousand. And it’s not web developers who are responsible for it: this change has nothing to do with the web but with the more fundamental architecture of the underlying Internet itself.

Puppy Eating Time

My boss, Simon, and his family have recently gotten a new puppy, called Ruby.

Ruby, my boss’s new puppy. Aww.

Apparently the little girl’s full of energy and bounce and is taking up a lot of time while she gets settled in to her new home. While talking on an instant messenger with my boss earlier this week, he was telling me about how he’d had to get up in the middle of the night and take her for a run around the garden, because the little tyke was still full of beans and not sleepy. And that’s why I made one of those fabulous moments in instant messaging: when you type something that can be read multiple ways:

Dan: Puppy eating time?

Obviously, I had meant:

Dan: [Is the] puppy eating [i.e. consuming a lot of your] time? [Poor you, you're not getting much sleep.]

Just three words. So simple. But a split second later the other, inevitable way of reading it became clear:

Dan: [Is it] puppy-eating time? [I want to eat your puppy!]

A puppy sandwich: probably the best way to eat a puppy – dressed with a little mustard and lettuce and presented in a bap. Or a french stick, if it’s a dachshund.

Shit. That’s not what I meant! I tried to correct myself:

Dan: I don't want to kill your puppy!

Then I realised: what if my boss didn’t read it the wrong way at all? What if he already understood that I was asking about how much time and energy the new family member was taking up… if that’s the case, then I’d just made myself look like a psychopath who’s contemplating killing his family pets. I backpedalled:

Dan: That came out all wrong. I mean: of course I don't want to kill your puppy - I just didn't want you to think that I did, in case you thought that for some reason.

That didn’t help. This was just going from bad to worse. Then, salvation came:

Simon has reconnected.
Simon: Sorry, had to reboot - did you get my message about our new puppy?

× ×

Argh, It Burns! Night

This weekend the other Earthlings and I celebrated Burns Night. Of course, we’re just a little bit eccentric between the four of us to celebrate it like normal people, so we decided to apply a little bit of a twist to a tried-and-tested theme.

A traditional Burns Night consists of a hearty meal of haggis, ‘neeps and tatties, drinking of whisky, and the recitation of songs, poems, and stories (with a particular emphasis on works by the poet himself). We all enjoy a nice haggis – albeit a veggie one, which I dubbed a vaggis, for Ruth and Paul – and a dram or two of decent whisky – with the exception of Paul, who substituted a series of Irn-bru-themed cocktails – so these aspects were kept intact. But we decided to swap out the traditional songs, poetry and storytelling for something a little more contemporary…

In our newly-invented, “Argh, It Burns! Night”, attendees each perform a reading of the worst piece of fan fiction that they can possibly find. There’s a wealth of truly awful fan fiction in the world, and we wanted to do justice to it by performing readings and voting on which was the most awful, or most entertainingly terribly. I suppose this was inevitable: after Troma Night gave us years of watching the worst films imaginable, the next step had to be to expand to other media.

After finishing our supper and fortifying ourselves with a drink or two, we drew lots to determine who was to go first. JTA began.

JTA begins his reading.

JTA had chosen to read Guywars, by Josh Vandergriff, a strange crossover between the Monkey Island and Star Wars franchises, with an embarrassing number of “jokes” stolen verbatim from Spaceballs. Depite lurching between the past and present tense and riddled with humour a little immature even for the playground, we couldn’t help but laugh out loud at some of the accidental moments of literary genius, like this gem:

Guyvador [a Darth Vader-like character] breaths like someone breathing out of a paper bag might breath, only without that great lunchy smell.

Paul and Ruth appreciating the... umm... "art?"

Next up was Ruth, who shared with us all Garfield: First Blood, the first in a two part series of stories in which Garfield repeatedly rescues Natalie Portman from vampire gangsters. And I’m ashamed to say that I really enjoyed this piece. Not because it was good – far from it – but because it was so beautifully awful.

“HAHA Garfield!, We demand the blood Bank of USA give us 600 million gallons of blood, all in one hundred dollar bills or else we will be making evening breakfast out of Natalie Portman!” Said the head Vampire Gangster with menace.

I’m honestly not convinced that the author  is even aware of who Garfield is, because instead of being a lasagne-eating, lazy feline, the Garfield in this story carries a handgun (difficult with paws), drives a pickup truck (very difficult when your knees are backwards), and woos movie stars. I would love to see somebody make a comic book of this story.

But although the author – the optimistically-titled “ShakespeareHemmingway” – may not know who Garfield is, he certainly knows who Natalie Portman is. The story ends with a postscript to let her know, if she’s reading this, that if she would like to date him, that would be okay.

Ruth performing a reading.

Paul took the chair next, giving us a reading of the first six chapters (they’re miniscule, although one gets the feeling that this is perhaps because large chunks of them are missing, based on the continuity problems) of HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH – yes, that’s really it’s title.

Listening to this story is like going to Azathoth‘s house and dropping acid. While outwardly it sort-of appears to be Harry Potter fanfiction, I’m convinced that it’s something more: I’m not sure what. Perhaps it’s a chant to summon demons of insanity, or perhaps it’s a piece of neo-Dadaist genius, but there’s something there. What I can tell you, though, is this: hearing it makes you feel like your brain is at risk of melting out through your ears.

Harry vomited steam and summoned a great meteor from space to smash into Hogwarts and kill everyone there, for no reason at all… He encased the entire meteor in a wreath of holy fuckfire and flew through Mercury, killing the fuck out of it. Then he sent Mercury’s carcass into Venus, killing the fuck out of it and making every vagina in the galaxy explode, and inside every vagina a booby sang of mortal life’s fleeting precipice.

Seriously. You can’t tell me that doesn’t mean something?

Paul and JTA listen and prepare for the voting...

For my story, I’d selected QUAKE THE EPIC FIGHT!, which is – I hope – probably the only piece of Quake-themed fanfiction to have ever been written. It’s starts – and finishes – with Chapter One, which kind of makes me wonder why it bothers with a chapter title in the first place, and tells the story of old schoolfriends Bill and Norman as they fight together against the, and I quote, “evill strogg robot alien things who kill humans”.

It’s pretty dire, and remarkably hard-to-read on account of it’s random tense changes, spelling (both awful and inconsistent), and the absence of punctuation. Let me share a sentence:

ther vas loud boom when bills ship crash but ther vas louder more BOOM when normans did. “oh no is he ded!” bill sayed lik sad but ther vas body who climed up from shp and they ran to others in happy!

Ballot papers.

Finally, it came time for the voting – by STV, of course, because we’re not savages. After a run-off round between tied winners Ruth and Paul, Ruth finally came out on top! Garfield had it!

The prize! Jack Daniels and ginger. In a can.

JTA has decided to provide a prize that fit with the theme. Fanfiction is a good way to ruin a perfectly good story… so what happens if you ruin whisky? You get this, it turns out: Jack Daniels and ginger, in a can. Ruth was less-than-delighted by her prize (it didn’t taste too bad all by itself, but the soapy aftertaste was pretty grim), but managed to gulp down the whole can with minimal help from the rest of us.

Ruth with her "prize".

Ruth mentioned that there existed a sequel to the piece of fan fiction she’d read, and we insisted that she give us a reading of this, too. And so, we got the dubious pleasure of a live reading of Garfield: First Blood Part II: The Legend of the Warrior of the Forever Fist, feature fantastic paragraphs like this closing moment:

Garfield and Natalie Portman went on her bed and embraced for love makings. They rubbed eachother with oil and perfume and touched eachother all over. Their bodies then joined like peanut butter and jelly and created delicious loving all night long.

Wow. The author even updated his postscript to let his admired Natalie Portman know that he’s still single (shocking, I know, that a talented author like this can’t get a date) if she’s interested.

All in all, the first ever Argh, It Burns! Night was an amazing, hilarious, and only sometimes painful, success. We’re totally going to have to do this again next year.

× × × × × × ×

Mobile One-Time-Passwords in Ruby

I recently came across the Mobile One-Time-Passwords project, which aims to make a free, secure alternative to commercial two-factor authentication systems (like SecurID). The thinking is pretty simple: virtually everybody now carries a mobile phone capable of running basic applications, so there’s no reason that such an application couldn’t provide the processing power to generate one-time-passwords based on a shared secret, a PIN number known only to the authenticating party and to the server, and the current date and time stamp.
Great! But it turns out that despite there being libraries to produce server-side implementations of the technology in PHP, Perl, and C, nobody had yet bothered to write one in that most marvelous of programming languages, Ruby.

Well, now I have. So if anybody’s got the urge to add one-time-password based security to their Rails or Sinatra app, or would like to write an MOTP client for their Ruby-capable smartphone: well, now you can.

Copy-Pasting Passwords into Steam

Just want to know how to ‘fix’ Steam’s password field? Scroll down to “How to Fix It”

Steam & Security Theatre

You’re a smart guy. You’re not stupid about computer security. And that’s why you always make sure that you use a different password for every service you use, right? You might even use a different password for every account, even when you have different passwords on the same service. You know that there are really, really good reasons why it’s simply not good enough to, for example, have “high-security”, “general use” and “low security” passwords, and re-use each of them in several places. And if you don’t know that: well, take my word for it and I’ll explain it in detail later.

It’s no great hardship to have lots of long, complex, effectively-random passwords, these days. Tools like SuperGenPass, LastPass, and KeePass, among others, mean that nowadays it’s so easy to use a different password for every service that there’s no excuse not to. So you probably use one of those (or something similar), and everything’s great.
Except for that one application – Steam. I have Steam save my password on my desktop PC (by the time somebody steals my desktop PC and breaks into the encrypted partition on which my data files lie, I have bigger problems than somebody stealing my Just Cause 2 achievements), but it forgets the password every time that Ruth uses her Steam account on my computer. No problem, I think: I can easily copy-paste it from my password manager… nope: Steam won’t let you paste in to the password field.

What? If you ask Valve (Steam’s creators) about this, they’ll say that it’s a security feature, but that’s bullshit: it’s security theatre, at best. And at worst, it means that people like me are inclined to use less-secure passwords because it’s harder to memorize and to type out that a more-secure password would be.

How to Fix It

Well, obviously the best way to fix it would be to successfully persuade Valve that they’re being stupid: others are already trying that. But what would be nice in the meantime would be a workaround. So here is is:

  1. Edit Program FilesSteamPublicSteamLoginDialog.res (Program FilesSteamPublicSteamLoginDialog.res on 64-bit Windows, somewhere else entirely on a Mac) using your favourite text editor (or Notepad if you don’t have a favourite). Take a backup of the file if you’re worried you’ll break it.
  2. In the "PasswordEdit" section (starting at about line 42), you’ll see name/value pairs. Make sure that the following values are set thusly:
  • "tabPosition" "1"
  • "textHidden" "0"
  • style="TextEntry"

The next time you load Steam, you’ll be able to paste passwords into the password field. The passwords won’t be masked (i.e. you’ll see the actual passwords, rather than asterisks), but the dialog never loads with a password pre-populated anyway, so as long as you make sure that nobody’s looking over your shoulder while you type, you’re set!

Update: let’s face it, Valve’s security policies suck in other ways, too. Please read the tale of a friend-of-a-friend who’s desperate to change her Steam username.

New Look, New Protocols

Oh yeah: I changed the look-and-feel of scatmania.org the other week, in case you hadn’t noticed. It’s become a sort-of-traditional January activity for me, these years, to redesign the theme of my blog at this point in the year.

This year’s colours are black, white, greys, and red, and you’ll note also that serifed fonts are centre-stage again, appearing pretty-much-universally throughout the site for the first time since 2004. Yes, I know that it’s heavier and darker than previous versions of the site: but it’s been getting fluffier and lighter year on year for ages, now, and I thought it was time to take a turn. You know: like the economy did.

This new design has elements in common with the theme before last: a big blue header, an off-white background, and sans-serif faces.
This new design has elements in common with the theme before last: a big blue header, an off-white background, and sans-serif faces.

Aside from other cosmetic changes, it’s also now written using several of the new technologies of HTML5 (I may put the shiny new logo on it, at some point). So apologies to those of you running archaic and non-standards-compliant browsers (I’m looking at you, Internet Explorer 6 users) if it doesn’t look quite right, but really: when your browser is more than half as old as the web itself, it’s time to upgrade.

I’ve also got my site running over IPv6 – the next generation Internet protocol – for those of you who care about those sorts of things. If you don’t know why IPv6 is important and “a big thing”, then here’s a simple explanation. Right now you’re probably viewing the IPv4 version: but if you’re using an IPv6-capable Internet connection, you might be viewing the IPv6 version. You’re not missing out, either way: the site looks identical: but this is just my tiny contribution towards building the Internet of tomorrow.

(if you really want to, you can go to ipv6.scatmania.org to see the IPv6 version – but it’ll only work if your Internet Service Provider is on the ball and has set you up with an IPv6 address!)

×

Ask for What You Want

Something I’ve been thinking about, recently; presented in three parts, for clarity:

Part One – Polyamory and Negotiations

There’s a widely-understood guideline in nonmonogamous relationships that you should always be willing to ask for what you want, not what you think you can get away with. To me, it feels to be a particularly valuable maxim. Like the majority of suggestions touted by the polyamorous community, it’s a tip that holds value for both monogamous and nonmonogamous relationships… but is naturally of more importance to those which are nonmonogamous because these have a tendency to depend more-heavily on honest and open negotiation.

I’m sure I don’t have to spell out to you why asking for what you want (rather than what you think you can get away with) is important. But just in case I do, here’s the three top reasons, as far as I see it:

  1. When you ask for what you want, there’s a chance that you’ll get it. When you ask for anything else, getting what you want is a lucky coincidence. Don’t you want the chance of getting what you want?
  2. Being honest about what you want and how important it is to you – and listening to what’s your partners want and how important those things are to them – you’re in the best possible position to come to the fairest possible compromise, if the things that you want are not completely compatible. Don’t you want the best for you, your partner(s), and your relationship(s)?
  3. Being open about what you’re looking for is an important part of being honest. Don’t you want to be honest with your lover?
Polyamory networks can grow quite large, and the management of this requires honest, open communication even more than a monogamous relationship does.

There are times that it’s okay not to ask for what you want, too, though. Sometimes it’s hard to be sure what you want; and it’s fine to say you need time to think about it. Sometimes we change our minds (shocking, I know!), and it’s more-admirable to be honest than consistent. Sometimes there are more important things to deal with. There’s no rush.
But it works. The more specific you can be – even to the point of “too much information” – the better this kind of communication can work, because the better your partner understands you, the better you both can negotiate. As ‘dirty surface’ writes“I’d like to get my butt caned by a professional Dom while you watch once every six months or so” represents a very different commitment of time, money and emotional energy than what someone might picture when you say “Let’s hire and share a sex worker regularly.”

Part Two – The Anchoring Effect

There’s a known psychological phenomenon called the anchoring effect. In order to demonstrate it, I’m going to plagiarise an example used in this article – if you want to see the effect in action; don’t click that link yet! Just follow the instructions below:

Venezuela
  • Now: without checking – do you think that Venezuela has a higher or a lower population than that country?
  • Finally, in millions, what do you estimate that the population of Venezuela is?

You’ll get the answer a little further down the page. But first, it’s time to come clean about something: when you clicked that link to WolframAlpha, you’ll have gone to one of two different pages. There’s a 50% chance that you’ll have found yourself looking at the population data of the United Kingdom (about 62 million), and a 50% chance that you’ll have found yourself looking at the population data of Switzerland (about 7½ million).

If you originally saw the United Kingdom and you guessed lower, or you originally saw Switzerland and guessed higher, you were right: the population of Venezuela is somewhere between the two. But if we took all of the guesses by all of the people who correctly guessed lower than the United Kingdom, and all the people who correctly guessed higher than Switzerland, then – statistically speaking – we’d probably see that the people who looked at the United Kingdom first would make higher guesses as to the population of Venezuela than those people who looked at Switzerland first.

The population of Venezuela’s about 29 million people. What did you guess? And what country were you shown first, when you clicked the link? Leave me a comment and let me know…

The anchoring effect is explored in detail by Ariely, Loewenstein, and Prelec 2004, in which studies are performed on groups of people who are told a (randomly-determined) price for some goods, and then asked to state how much they’d be willing to pay for them: those people who are given higher random values will consistently offer more money for the goods than those who were told a lower value.

It’s not a new idea. For hundreds of years, at least, salespeople have practiced the not-dissimilar door-in-the-face technique (sort-of the opposite of the more well-known foot-in-the-door technique), in which an unsatisfactory offer is made first in order to make the second offer – which is actually what the salesperson wants to sell – seem more desirable than it actually is.

Part Three – Hey, But That Means…

Taking the two previous parts of this article at face value can quickly lead to an unwelcome conclusion: we’re more likely to get what we want when we ask for more than what we want – and then back down to a false compromise position. A greedy but carefully-deployed “salesman” approach has been shown to work wonders when you’re negotiating for a pay rise, selling a product, motivating volunteers, or getting people to under- or over-estimate the value of goods and services. Surely it’d work when negotiating in a relationship, too?

“Hey, honey: it’d really mean a lot to me if I could could have a threesome with you and your mother…”

“What? No way! That’s disgusting.”

“Okay, okay, then… I suppose I could make do with having sex with your sister.”

Despite the extremity of the example above, the answer is that for the individual, this strategy can work: I’ve known people who’ve fallen victim to exactly this kind of con. Worse yet, I suspect that there are perpetrators of this kind of strategy who don’t even realise that they’re doing it: they’re just responding in the Pavlovian style to the “rewards” that they’re getting by continuing to act in what it – let’s face it – an unscrupulous and unethical manner.

Does it work, then? Yes, more’s the pity. But everything it gets for you is something that it’s taking away from your partner, or from your relationship. And maybe that’s the kind of strain that the relationship can take, but there are always limits.

Me? I’ll stick to what I believe in: so far as I can, putting my hand on the table and saying, “Here’s what I’m playing with: what’ve you got?” It’s a trusting and diplomatic strategy, but it’s the best solution to finding the best middle-ground for everyone. There are those who find that it makes them feel too vulnerable – at too much risk of their openness being used against them – to try to say what they want so openly. And to them, I say: if you don’t trust your lover with the way that you feel, then working on that trust that should be your first priority.

Now get on with loving one another, y’all!

× ×

They Say that Programmers Never Die

They just gosub without return. That is, of course, a joke (with all due apologies to those of you to whom it means nothing), but there’s a kernel of truth in the saying. In their own way, programmers are like authors or artists in that their work can easily outlive them, and their unique and distinct style can be found in their creations: and in that created by those that learn from or imitate them.

This morning I was working on some legacy Perl code that holds together a part of a client’s web site. In particular, I was refactoring the code that displays dates and times in an appropriate format, as part of an effort to simplify the code after fixing a bug that would, under some unusual conditions, use the “pm” suffix for morning times (e.g. 11pm, when it means 11am). Under normal circumstances this would have been a simpler job than it was, but this particular piece of software has been passed from developer to developer, and (until it came into my hands) I’m pretty sure that none of them took the time to understand what their predecessors had done. Several different stylistic and semantic styles are used in the code, and several different solutions are used for the same problem, depending on who was in charge at any given time. In short, the code’s a mess, but the client is on a tight budget and can generally only afford to pay for the minimum amount of work, and not for the sweeping overhaul that the system so badly needs.

I came across a particular line of code, today (evidence, perhaps, of a previous developer looking into a related issue to the one with which I was tasked):

$leu_something .= $hour . " - " . $amorpm;

Even without the developer’s name embedded within the variable name, I could have told you who wrote this code because of its distinct style. Even this single line has a defining appearance of its own, to the trained eye. To illustrate this, consider that the line could equally have been written in any of the following ways (among hundreds of others, without even looking at the optional space characters and interchangeable types of quotation marks used), and would have functioned identically:

  • $leu_something = $leu_something .= $hour . " - " . $amorpm;
  • $leu_something .= "${hour} - ${amorpm}";
  • $leu_something = join($leu_something, $hour, " - ", $amorpm);
  • $leu_something .= sprintf('%s - %s', $hour, $amorpm);

Some of these methods have specific advantages or disadvantages, but all have the exact same fundamental meaning meaning. However, even from a glance I could tell that this code belonged to the former developer named Leu (and not any of the other developers whose names I’ve seen in the project) because of the style in which he chose to write it.

Non-programmers often fail to understand why I describe programming as being as much an art as a science. The work of a programmer has been compared to the work of a poet, and I agree with this sentiment. Even merely on a superficial level, both computer code and poetry:

  • Can be good or bad (by consensus, or subjectively).
  • Attach significant importance to proper syntax and style (you need the right rhyming pattern in a limerick and the right number of brackets in a loop).
  • Express a concept through the artistic use of a language.
  • When used to express complex ideas, benefit from creative and sometimes out-of-the-box thinking.
  • Often lose value if they are literally translated to another language.

Not only that, program code can be beautiful. I’ve examined code before that’s made me smile, or laugh, or that has saddened me, or that has inspired me. I shan’t argue that it’s on a par with the standard of spoken-language poetry: but then, programming languages are not designed to appeal to the pathos, and are at a natural disadvantage. Sometimes the comments for a piece of code can in themselves carry a beauty, too: or they can serve simply to help the reader comprehend a piece of code, in the same way as one can sometimes find guidance in the interpretation of a poem from somebody else’s research.

However, it’s possible to say things with code that one simply can’t convey in the same way, using a spoken language. To prove this point, I’ve composed a short haiku in the medium of the Ruby programming language. For this purpose, I’m defining a haiku as a poem whose lines contain 5, 7, and 5 syllables, respectively. It’s an existentially nihilistic piece called Grind:

def grind(age = 0)
  die if age == 78
  grind(age + 1); end

Vocalised, it would be read as follows:

Def grind: age equals zero,
Die if age equals seventy-eight,
Grind (age plus one); end.

I enjoy the subtlety its use of recursion to reinforce the idea that every year of your life gives you a bigger burden to carry (and a larger amount of memory consumed). This subtlety does not adequately translate to a spoken language.

The line of code I showed you earlier, though, is neither interesting nor remarkable, in itself. What makes it interesting to me is that it persisted – until today, when I removed it – in this piece of software. The author, Leu, died several years ago. But there will exist software that he wrote, being read again and again by tireless machines on a daily basis, for years to come.

I wonder how long the code I write today will live.

As an Aquarius, I’m shocked…

This week, the Internet went mildly crazy for a few minutes when people suddenly started discovering that their astrological sign might not have been what they previously thought. My favourite line in the linked article is “…the Minneapolis Star Tribute published an article, stating that our horoscopes are wrong,” to which my first thought was, “Well, duh.” This all comes about because when Ptolemy accidentally invented contemporary astrology, almost two millenia ago, he never specified whether his system should be based on the calendar year, or on the actual relative positions of the stars. While the calendar year has pretty much remained the same since Ptolemy’s time, our solar system has rotationally drifted slightly relative to the rest of the galaxy, and so the constellations aren’t quite in line with the calendar any more.

In theory, at least, if we were to plot a sun sign by the stars (as is practiced in some Eastern astrology) rather than by the calendar (as is practiced in most Western astrology), that’d make me not a Capricorn, as you might expect, but a Sagittarius.

I had a friend, once, who attached a not-inconsiderable amount of importance to her horoscope. However, she had a strange approach to the subject. I remember one particular morning when she got up and read her horoscope in the newspaper. She didn’t like what she read, and decided that it must therefore be wrong, and instead looked up the one on Teletext instead. Still unsatisfied, she eventually looked up her horoscope on the web, and – finally finding a fortune that she was happy to accept as hers – accepted it.

Thankfully, there’s no cause for concern for me, because I’m an Aquarius. I was born a Capricorn, but I never really felt comfortable as one, so I had my star sign changed to one that I felt suited me better. I have a certificate and everything, printed on an old inkjet printer and folded up in a drawer ever since. Once or twice, people have tried to tell me that it doesn’t work; that you can’t just “change” your star sign simply because you want it to be different. When this happens, I simply point out that my bit of paper is just as official, as believable, and as scientific as astrology is in the first place. And despite the (disputed) idea that our star signs might all have changed, as has flooded Facebook, my scrap of paper still says “Aquarius” on it, as relevant today as it always has been!

The Worst Server Infection I’ve Ever Seen

With my day job at SmartData I’ve recently been doing some work for a client, transporting their data from the Microsoft SQL Server that back-ends their desktop application and converting it to a different schema on a different database for a new, web-based application. Because there’s quite a lot of data, the schema are quite different, and the data needs to be converted in a “smart” way: I’ve written a program to help with the task.

My program takes data from our client’s old server and moves it to their new server, making several alterations along the way.

Unfortunately, it’s  a slow process to move all of the data over. So, to test my program as I continue to develop it, I thought it might be useful if I could take a copy of the “live” database to somewhere more local (like my computer). This would remove the overhead of going through the Internet each time, and reduce the run time of the program significantly – an important consideration during its ongoing development.

Unfortunately, a quirk in the way that Microsoft SQL Server works is that the backup file I can make (ready to restore onto my computer) doesn’t appear on my computer, but appears on the old server. And I don’t have a means to get files off  the old server. Or do I? I have a username and password: I wonder if there are any other services running on the server to which I might have access. To find out, I use a program called Nmap to try to get a picture of what services are running on the server.

The results of running Nmap on the server. That’s a lot of open ports…

And that’s when I realised that something might be wrong. For those of you who aren’t inclined toward understanding the ins and outs of network security, the screenshot above should be considered to be more than a little alarming. There’s pretty obvious and clear signs that this computer is infected with Trinoo, NetBus, Back Orifice, and quite probably other malware. It’s almost certainly being used as part of denial of service attacks against other computers, and could well be stealing confidential information from our client’s server and the other computers on their network.

How have things gotten so out of control? I’m not sure. I’ve never seen such a rampant runaway set of infections on a server system before. Computers belonging to individuals, especially individuals inclined to installing BonziBuddy, Smiley Central/Cursor Mania, and so on, are often littered with malware, but one would hope that a server administrator might have a little more wisdom than to let unauthorised code run on a server for which they were responsible. At the very least, a Windows-based, Internet-accessible server ought to be running a strict firewall and antivirus software (virtually all antivirus software would have detected all three of the infections I’ve named above).

Just about  anybody can get onto the ‘net, these days, and I can just about forgive a regular Jo who says says, “I don’t know anything about computers; I just want to play FarmVille.” It’s disappointing when they end up inadvertently helping to send email advertising “$oft C1ALIS tabs” to the rest of us, and it’s upsetting when they get their credit card details stolen by a Nigerian, but it’s not so much their fault as the fault of the complexities they’re expected to understand in order to protect their new computer. But when somebody’s running a service (as our client is paying for, from a third-party company who’s “managing” their server for them), I’d really expect better.

The Bit for the “Regular Jo”

And if you are a “regular Jo” on a Windows PC and you care enough to want to check that you’re part of the solution and not part  of the problem, then you might be interested in a variety of free, trusted:

  • Anti-virus software (essential)
  • Adware/spyware removal tools (useful if you routinely install crap downloaded from the web), and
  • Firewall software (essential if you connect “directly” to the Internet, rather than via a “router”, or if you’re ever on networks on which you can’t trust the other network users – e.g. free wi-fi access points, shared Internet connections in student houses, etc.)

Edit: And don’t forget to regularly install your Windows Updates. Thanks to Gareth for the reminder that regular Jos should be encouraged to do this, too.

× ×

Thirty – Part Two

Last weekend, I turned thirty. As I described earlier, I had originally planned to write a retrospective summary of what I’d been doing for my life so far (y’know; what’ve I been up to these decades). I wasn’t terribly satisfied with what I’d written, so far, and by the time that the party was over I’d changed my mind completely. So I threw out everything I’d written so far and wrote this, instead.

Part II: The bit that’s different from what I expected to write.

As I said in Part I, I had originally planned to write a long and drawn-out retrospective, looking back on my life. I wanted to try to encapsulate it in some kind of bubble or capture it in some way that condensed it into something concise and manageable. But every time I tried to begin to put down words to express it, it always came out looking cynical and pessimistic. And that doesn’t reflect how my life has been this far: to the contrary, my original plan to write about the last time years has nestled within it most of the very best years of my life thus far. I took a moment to contemplate my situation: why was I unable to describe this period with the liveliness and joy with which it deserves. And then I realised: the reason that I was writing so pessimistically is because – unusually, those who know me will surely agree – I’ve had a somewhat pessimistic view of the world, recently… and this depressing outlook was infecting my words.

This last year and a bit have been hard, for me. Things like this, and this, and this, and this – among other events – have worn me down and made feel, quite often, that I’m fueled only by nostalgia and that I’ve been struggling to find motivation for the future. Even happy events, like Ruth & JTA’s wedding, have often been an intense emotional rollercoaster ride, full of ups and downs that would be an easy ride under normal conditions but which were each just “one thing to many” when combined with everything else. In short: it’s been a tough year.

The last ten weeks or so have been the worst. Struggling with a variety of different issues and, buried deep in the cold and the dark of a particularly bleak and challenging winter, I’ve periodically found myself a very long way out into the Not OK half of the room.

It’s been particularly unpleasant: not just for me but, I’m sure, for the folks who’ve had to put up with me while I’ve been so irritable and grumpy.

But it’s not all bad. The worst has passed, I think, and things are getting better. I’ve got all the support I could need, and it’s been getting better a little at a time – a little more each day. My birthday, though, was different. It wasn’t a step forward: it was a flying leap! Where I expected to be looking back over the past, I instead found myself looking forwards to the future. And being surrounded by the wonderful (infectious) bounciness and enthusiasm of so many great friends, piled into one place, was incredibly liberating. For the first time in weeks I felt a surge of optimism that persists even now.

I managed to find the time – but not the words – to try to tell some of you who were there how important it was for me that you’d been able to come and make the party a success. I hope that this blog post makes everything clearer.

Thanks to everybody involved for a fantastic party.

All comments on this post will be moderated before publication. If you don’t want your comment to be published, please state this in your comment or instead use the contact form.

 

Thirty – Part One

Last weekend, I turned thirty. I had originally planned to blog this weekend in a retrospective manner- looking back over the last decade or so of my life: a particularly common theme for the time of year, when we look back over our resolutions and count the years as they pass, and also a common activity suitable for a birthday so (arbitrarily, but apparently appropriately) significant as one’s thirtieth. However, I’ve had a change of heart, for two reasons.

Firstly, but least significantly, the numerical significance of a decade of life truly is arbitrary. This was expressed quite clearly, I think, when Finbar looked at my birthday cake, and, misinterpreting the writing on top of it, said, “You’re… 3D years old?” After a few seconds of mental arithmetic, I replied: “Not for another thirty-one years, I’m afraid.” Unfortunately my joke – based on the implication that my age was being expressed in hexadecimal base – was wasted on those within earshot (Angharad, Ele, and Lee, I think), but still gave me a moment to think: seriously: is the significance of my age really dependent upon the fact that it’s an exact multiple of the (modal – this isn’t quite true for all) number of digits on the uppermost two limbs of a human?

But more importantly, the reason behind my change of heart was primarily because of a shift in my attitude, brought about, I think, as a result of the birthday celebrations. I’ll talk about that in the next blog post. But first, I thought I’d tell you all about the party:

Part I: Surprise! Or: how to organise a surprise party that’s still surprising even though the person being honoured knows it’s happening.

Ruth tried ever so hard to keep my surprise party a surprise. It’s generally hard for her to keep secrets about which she is excited, and she’d become ever so proud of herself for managing to keep her plans under wraps for so long. Unfortunately, there was a miscommunication, and Finbar first heard about the party without being told that it was to be a surprise.

I received a text message from him towards the end of last year:

Hey Dan, I haven’t been watching my inbox and Angharad tells me you’re doing a thing on the 6th for your birth cycle. If we attended, could we pitch a tent behind earth? Happy birth cycle, by the way. Hard to believe you’re already 25.

This caused some confusion. Not only had he gotten the date wrong (a separate misunderstanding), but he was also talking about an event about which I know nothing. I began to compose a response, correcting him and explaining that no, nothing is planned – but perhaps if he and a few other people were free we could get together anyway. As I typed, I quizzed Ruth to see if she knew from where the confusion might have arisen. And so: the truth came out.

A 'Happy Birthday' banner in the hallway of Earth.
A ‘Happy Birthday’ banner in the hallway of Earth.

Nonetheless, the party was a success. Particular highlights (and surprises) included:

  • The attendance of so many people, and from such far-flung corners of the country! I was honestly overwhelmed by the attendance of so many friends at (what felt to me, at my late discovery) such short notice.
  • A beautiful cake produced by Ruth to show a group of Pikmin of various colours crowding around a large object that would require 30 of them to lift it: a wonderful interpretation of the (adorable) Pikmin characters for the medium of a birthday cake.
My birthday cake. With pikmin on it!
My birthday cake. With Pikmin on it!
  • Drinking cocktails out of the largest martini glass I’ve ever seen. Seriously: I could easily have drowned in this thing (sorry; no picture – others took some, though, and I’ll add one to this post if somebody can supply one).
  • A mixture of party games both silly (like the Christmas-themed pass-the-parcel which used up a lot of our spare Christmas supplies) and spectacular (like JTA‘s clever and complex treasure hunt, which has hampered only by the sheer number of guests involved even after Liz, Suz and I kindly offered to sit on the couch and take managerial roles). Even those games that didn’t get off the ground, like the short-lived game of charades, the on-again-off-again game of Apples To Apples which finally went ahead the following morning, and the ill-conceived fruit-passing game – not suitable for seated players, we now know – that ultimately lead to the spillage of lots of booze were fun in their own ways.
  • Discovering new things about old friends (the kinds of things that earn them even more Awesome Points™).
  • The thought and consideration that evidently took place in the minds of my fellow Earthicans, from the kids-party themed food and drink (plus alcohol, naturally) that I know that Ruth and JTA were up far too late preparing, to the blatantly catered-to-me playlist that first appeared on the music collection (thanks, Paul!). Even down to the detail of taking me outside again after everybody had arrived so that I could come in any everybody could shout “Surprise!”, as if I didn’t know (sorry, folks: I knew).
Leading candidates in the ad-hoc 'best boobies' competition. I still like Ele's.
Leading candidates in the ad-hoc ‘best boobies’ competition. I still like Ele’s.
  • Feeling like I was the core of a group of people that varied, over the course of the evening, between one and three parties (which shall be referred to as Party A, Party One, and The Upstairs Party).

Put simply, the party was fantastic. Everybody who came helped to make it awesome by bringing a bit of their own magical selves (or by contributing from afar by ordering the pizza, of course). Thank you all so very much.

The following morning, Matt eats a breakfast of muffins... and milk???
The following morning, Matt eats a breakfast of muffins… and milk???

Edit: Part 2 is now online. It’s significantly less jolly, but ultimately optimistic.

× × × ×

On This Day In 2004

A little bit tongue-in-cheek, this one.

Looking Back

On this day in 2004, I’d just finished my first marathon session of playing Half-Life 2, a spectacular new video game that quickly became one of the best-selling computer games ever. Despite New Year celebrations and other distractions, I managed to sit and play the game for a couple of days and finished it very soon after.

The launch of the game was delayed – I’d pre-ordered it 17 months before it eventually got released – after being plagued with development difficulties. One of the many delays to it’s launch was blamed on the theft of part of the source code: I remember joking, after the thief had been caught, that now that they’d got the code back they’d be able to release the game, right?

Meanwhile, Paul swore that he would have nothing to do with the digital distribution platform – Steam – that remains the only way to get a legitimate copy of Half-Life 2. On his blog – then on LiveJournal – he listed all of the many problems that he saw with Steam, and I countered a few of them in an argument in the comments. For years to come, he’d go on to refuse to play some of the most fantastic computer games to be released on principle.

Looking Forward

Things change. I can’t remember the last time I saw Paul playing a video game that he didn’t buy on Steam, for one (except for a handful that he bought from Good Old Games – which is well worth visiting, if you haven’t already).

Some things stay the same: Half-Life 2 remains one of the best first-person shooters ever made, and has been followed by two spectacular sequels (Episode 1 and Episode 2) and a number of spin-offs (including the mind-blowingly awesome Portal, which stole my life for a while, although not for long enough to make my 2007 list of life-stealing games). We’re still all waiting on the much-delayed Episode 3, though…

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

The Wedding – Unanswered Questions

The photos from Ruth & JTA’s wedding are coming soon, I swear. In the meantime, here are a few questions that I’m still puzzling over:

What kind of chord do I think I’m playing?
What does my mother think smells so good; and why does Becky disagree?
Why is Fiona kissing me?
Why is Chris saluting in this picture?
On what subject is Bryn pondering? And did his mighty brain come to a conclusion on the subject?
Why is Owen carrying Robin around? And is this truly the happiest day of Robin’s life?
Who choreographed Matt P and I’s dance moves? And why do we look so awesome?
Who’s just hit Matt R in the back of the head with a snowball?
To whom is Liz threatening fisticuffs? And does anybody other than Finbar even use the word ‘fisticuffs’?
What does that look on JTA’s face mean? No, wait… I know this one…
If Robin is interviewing Tom, why is he using an invisible microphone?
What has startled JTA so badly?

Some or none of these questions will be answered in time (and, perhaps, when you see the whole picture). Keep an eye on the wedding blog for updates just as soon as Ruth and JTA find the time to update it! And I’ll look forward to hearing your caption ideas for some of the “sillier” pictures.

Meanwhile, if you’re among the people who took photos at the wedding and who hasn’t yet given me nice, hi-res copies, please get in touch!

× × × × × × × × × × × ×