A COVID Contradictionary

Asymptomatic spread, n.

Science fiction.

Booster shot, n.

The first of many injections of a vaccine (QV) initially every 3 months, but increasing in frequency thereafter.

Breakthrough infection, n.

The most common type of COVID infection, now that most of the population have been vaccinated.

Clotting Agent, n.

A vaccine.

Common cold, n.

What you’ve got.

COVID-19, n.

A disease caused by a virus, SARS-COV-2, occasionally fatal, with an infection fatality rate of around 0.025%, but which has brought the world beating “our” NHS to its knees.

COVIDiot, n.

Piers Morgan.

Curve, the, n.

An arbitrary line, drawn at the artists whim, which shows how well or how badly a particular population has been affected by COVID-19 (QV).

Disabled, n.

Of the state of being differently abled. Formerly, a legitimate excuse for not wearing a mask (QV). Latterly, a legitimate reason to abuse someone for not wearing a mask.

Exponential, a.

Used to describe the curve (QV) by people whose job it is to instil fear (QV) in a recalcitrant population.

False Positive, n.

Any positive PCR test.

Fear, n.

The tool of choice for Governments to control the population.

Fit and healthy, adj.

Morbidly obese.

Friend, n.

Someone you are no longer permitted to meet.

Furlough, n.

  1. Delayed redundancy
  2. When combined with fear (QV), a means of preventing rebellion (QV).

Granny, n.

A prototypical old person, used to silence dissent. “Why don’t you wear a mask? Are you trying to kill my Granny?”

Influenza, n.

A disease caused by a number of different viruses, eradicated in 2020.

Lockdown, n.

A legal requirement for all small businesses to close their doors on a temporary (QV) basis so that larger businesses might prosper.

Lockdown sceptic, n.

Someone who wants to kill your granny (QV).

Mask, n.

  1. A disguise which covers the face
  2. A visible sign of acquiescence to government diktats
  3. A sign of the wearers virtue.

Media, the, n.

The means by which governments disseminate stories designed to frighten the gullible.

Neighbours, n. pl.

Nosey parkers. Shop them, before they shop you.

NHS, “our”, n.

A sacred object, revered by Politicians and Proles alike, which must be protected at any cost. Utterly, and demonstrably, useless in a crisis.

Nosocomial infection, n.

Community spread.

Pandemic, n.

A portmanteau word, from the Greek “Pan,” meaning “Everyone” and “Deimos” meaning “scare the shit out of”.

PCR test, n.

A method of adjusting the curve (QV).

Rebellion, n.

Taking your mask off just before you leave the shop.

Strategy, n.

Something we wish the Government had.

Temporary, n.

Just another three weeks (QV) to flatten the curve.

Truth Seeker, n.

Someone whose mind is already made up.

Unvaccinated, adj.

  1. Not having submitted to a vaccine.
  2. Having submitted to a vaccine within the past three weeks.
  3. Having last submitted to a vaccine more than three months ago.

Vaccinated, adj.

A person’s condition three weeks after receiving a vaccination until the next booster is due.

Vaccine, n.

A placebo, whose purpose is to get governments out of the hole they have dug themselves into.

Weeks, three, n.

Forever.

Bully Me! ™

Two themes have come together for me this week. First, we are told we must be positive and offer solutions to problems. Second, the problem of Online Bullying has once again raised its ugly head. Which leads me to my latest business idea, which I’m giving the working title of “Bully Me!™” and which offers a positive solution to the Online Bullying problem, thus killing two birds with one stone.

How It Works

Someone who wishes to be an Online Bully (hereafter known as “The Bully”) sends me a DM with a discussion topic (The Topic). On payment of the fee (see below) I will tweet on The Topic (The Tweet) and The Bully may then, for the next 24 hours, post as many derisory, nasty, vindictive and spiteful tweets about The Topic, The Tweet, make personal attacks on me, my family, my dog or my employer as they wish. Several Bullying Plans are available, see below for details.

Bullying Plans

Individual Bullying Plan: £107 – basic bullying package, as above. Single user only.

Multi-user Plan: £537 – As above, up to 7 users (a £212 saving on the standard price).

Armageddon Plan: £9,197 – Single user. Additional users at £1,797 per user. With this plan I will protest meekly for a period of time specified by The Bully/The Bullies (up to a maximum of 24 hours) after which I will tweet an announcement that I have been driven off the platform by The Bully/The Bullies and cancel my twitter account, never to darken this site again.

With so many bullies on twitter, I anticipate a high demand for this service so please book early to avoid disappointment.

Franchise Opportunity

I will shortly be offering “Bully Me!™” as a franchise. Full training will be given. DM me if you are interested. Serious applicants only.

A new method of Website repair

I ran a Website repair business for a while. It wasn’t very successful. Can you work out why?

I’ve hit upon an ingenious method of repairing broken websites, and I’m so excited about it I just have to share it. I hope you’ll be as excited about it as I am. First, the bullet points:

– It does no harm to your website.
– It works for all website problems, irrespective of the cause, or the technology used.
– It’s a panacea against hackers, coding errors, badly designed graphics, poor copy, bad search engine placement, it can even remedy flash sites.

My method is based on same principles as everyone’s favourite form of alternative medicine; the centuries old Homoeopathy. Here are the fundamental principles upon which it is based:

7/8ths of all website problems are caused by something I term “Psora”, or “Itch”. The “skin” of your website is covered with itchy spots, which have been inherited by all generations of websites from the very first HTML-based site created at CERN by Tim Berners-Lee, through all the intermediate generations of websites to the sparkly, Web 2.0 sites we have today. These Psora cause almost all website ailments.

The remaining 1/8th of website problems are caused by “Miasma”. This insidious disease is passed from website to website by your website’s visitors. If someone visits an infected website, and then visits yours, the chances are that simply by clicking on a link on your website, they will pass on the Miasma from the infected website to yours.

Like cures like. A website disease which has a particular set of symptoms can be remedied by applying small doses of a digital remedy which, in large doses, would produce similar symptoms. This is known as the Law of Similars, or in Latin: Similia similibus curentur (Let like be cured with like). Saying things in Latin is always impressive – I really must do it more often.

The more dilute the remedy, the more potent. I have come up with a system of increasing the potency of the cure to make it more effective than conventional website repair.

Ok, so how does it work? Let’s take a case study as an example.

An ecommerce site, http://www.somebrokenwebsite.com has a problem. Hackers have, using SQL Injection techniques, managed to hack in to the site, change the admin password, and delete a large number of products, changed the prices on others, and added some “humourous” (to hackers) products of their own. The site owner contacts me for help.

The first thing I do is spend a couple of hours on the phone with the client. This doesn’t actually help, but it instills confidence and makes the website owner feel that I am taking him seriously.

Hmm, actually, that’s not true. I first outline my rates and get the client to agree to send an unspecified amount of money, irrespective of whether the “repair” works or not. This, as I am sure you will appreciate, is an important first step in any homoeopathic remedy, digital or otherwise.

Second, I take a look at the website, and note its symptoms. Hmm, some products have been deleted, some added, and some have had their prices and stock levels changed. I consult the book of provings; I see that this symptom is caused by hackers, and check the recommended remedy: a 6C solution of SQL injection.

Now, some homoeopathic Website Repairers would simply go and purchase an off-the-shelf remedy, apply it to the website, and charge the client for that. I believe that the personal touch is important, so all my homoeopathic remedies are prepared individually by hand, to order.

I first construct a malicious SQL statement which is in all respects the same as the one which the hackers used to break in to the site. However, this SQL statement, if applied directly to the site unaltered, would cause even more damage, so obviously it can’t be used in its current form.

The next step is to dilute the SQL statement to render it inert; For example, if the SQL is 80 characters long, I “dilute” it with 80 * 100, i.e. 8,000, random characters. (Actually, the characters are pseudo-random, since they are generated by a computerised algorithm, but since we are dealing with pseudoscience anyway I don’t think that’s too important a distinction).

Ok, that’s a 1C – 1 in 100 – dilution. But that’s not strong enough. I need to dilute the remedy five more times. My method of increasing the potency of the cure is simply to dilute the digital potion even more. The less of the remedy in the final “cure”, the more the potency. So I take 10 characters at random from the mixture, and combine these with another 1000 random characters. I do this another 4 times, until in the end there is an infintesimal likelihood of there being any of the active SQL in the final mixture. I then take 80 characters from this final mixture. This will be the curative which I will apply to the ailing website.

Aha! I hear you say; if there is none of the original SQL in the final statement, how can it have any effect? This is where the final, magical homoeopathic analogy helps us out. The characters which have been used to dilute the bad SQL now contain none of the original, but they “remember” having been in contact with it. They retain a mystical, magical energy which is a kind of metaphysical mirror image of the original malicious SQL statement. Huh? Not scientific enough? Ok, it’s all to do with quantums. Better?

Anyway, on creating the potentised dose (the weaker it is the stronger the effect, remember), I then apply it to the website. I dip my mouse into the random characters, and then gently brush it over the website, taking care to visit as many of the corrupted products as I can.

Most websites are cured by this method in a single application, although in severe cases (such as yours) the cure may take several applications, each one being individually prepared. Ideally (for me) a cure will take a couple of dozen applications, over the course of a year or so. By the time the client realises the “cure” doesn’t work, the website is dead, his business in ruins, and he has no money left (having spent it all on homoeopathic website repair) with which to sue.

I think it’s a winner; after all it works for “real” homoeopaths. What do you think?

Minus Forty

You might already know this. If you don’t then there is something you’ve never noticed before, that you will always notice from now on.

From time to time you will come across a report by someone who has visited one of Earth’s cold places. The Antarctic; The Himalayas; the meat fridge in Tesco. At some point in the report they will say something like “… I checked the thermometer – it’s still minus forty. Brrr ….”

The odds are that they are wrong. It’s quite likely that the temperature is much colder than that.

Why? I’m willing to bet they have a Mercury thermometer, and one of the things that “not a lot of people know” about mercury is that it freezes solid at around -39 degrees Celsius. So when it gets really cold – below minus 40 cold – a Mercury thermometer isn’t any use any more. Once that happens, and if it gets warm again reasonably quickly (not likely in Tesco, but very likely – according to Al Gore – in Antarctica) your thermometer is – to use a technical term – fuxxored, and you might as well throw it away and buy a new one.

By the way, there’s something else peculiar about minus forty: it’s the point at which the Fahrenheit and Celcius scales intersect. So if you know it really is minus forty, you don’t have to say which temperature scale you are using. If it’s minus forty Celsius, it’s also minus forty Fahrenheit.

Something in my eye

One Thursday morning, I noticed a strange artefact in my eyesight; whenever I moved my eyes, I’d get a faint flash just below the centre of my vision. When it hadn’t cleared after a couple of hours, and I was out in the town anyway, I wandered around to my Opticians to see if I could make an appointment to get it checked out. The sign on the door said “Closed for stock-taking, back tomorrow”.

Friday morning, and I phone at 9am, “The Optician isn’t here yet, we’ll call you back to arrange an appointment”. 9:05am the phone rang, “Can you come in straight away?” “Ok,” I said.

A few eye drops, then back to the waiting room for 40 minutes while my pupils dilated, while trying to read the only newspaper available – the Express. What a dreadful rag; I was almost pleased when my vision became so blurred I had to put it aside.

Back in the consulting room, and after a slit-lamp examination the Optician told me she needed to refer me to the hospital eye clinic, as there’s something strange going on with my retina but she doesn’t really know what it is. I ask what they will do differently at the clinic and she tells me that they have the necessary tools to actually remove my eye so they can get a better look. I must have turned a little green, as she smiled and said “Well, they probably won’t take it all the way out, just lever it forward a bit.” I asked her to stop telling me what they might do, because if she told me any more I might be too scared to go to the appointment.

Phone rang in the early afternoon. The appointment was for today (Saturday), at 10:30am. Hmm, can’t be all that serious then.

10:30am this morning found my wife and me at the eye clinic (DW very kindly drove me there, as I thought I might be unable to drive after whatever the procedure might be). The Consultant, a Mr Lamassios, seemed a really nice guy, put me at my ease, sat me down. Quick vision test, then more eye drops. He tells me these are an anaesthetic, not the pupil dilator I was expecting.

“Uh, oh,” I thought.

“Is this the bit where you take my eye out?” says I.

“Beg pardon?”

“My optician told me she was sending me here because you have the tools to take my out out so you can get a better look inside.”

He laughed like a drain. “No, I only take eyes out when I’m not going to put them back in.”

Ok, so I’ve been April-fooled, I think. Hey, ho.

“Well, excuse me,” I said, “But I want to be seen by someone who knows how to put them back.”

More laughter, which is always a good thing. And it turns out the anaesthetic is so they can use an instrument to measure the pressure inside the eyeball. It contacts the front of the eye, so they don’t want you flinching. Fair enough.

Next more drops – these are the pupil dilators, and after a 20 minute wait it’s back to the slit lamp. Look up; hold that; up to the left; hold that; all the way to the left; … first the one eye then the other. Then more anaesthetic, he clags a lens directly onto one eye, and again more with the slit-lamp, brighter light this time. All the while I am fascinated by being able to see the network of blood vessels on my retina, I presume reflected back from the front of my eye.

I am reminded of that scene from Bladerunner. No, not the famous eyeball-squeezing scene when Deckard has to fight Roy Batty. The other one, at the beginning, where whats-his-name is testing Leon with the machine to see if he is a replicant. “You are in the desert, and you see a tortoise,” – “What’s a tortoise?” – “You know what a turtle is?” – “Uh, huh” – “Same thing.” Having a slit-lamp exam is rather like that, except it doesn’t normally end with you shooting the Consultant in the chest.

Anyway, it turns out I have a minor tear on my retina. It’s not anything he wants to do anything about immediately, and I’m to go back in three weeks to make sure it’s not got any worse. In the meantime, I’m to look out for [list of symptoms] and if any occur I should phone for an emergency appointment The emergency clinic is open three evenings a week. Hmm. “Please arrange to have an emergency within the following hours …”

The worst part of the whole experience, though, wasn’t anything that happened in the clinic. It was the drive home. We’ve had pretty overcast skies for the last several weeks, today was the first really sunny day for quite a while, and it happens when my pupils are artificially dilated. Even with sunglasses it was pretty uncomfortable. Obvously there really *is* a God, and he hates me.

What Happened Last Thursday

Another five+ year old post, recovered from elsewhere. Why now? Why not?

What happened Last Thursday

I have a story to tell. It’s a true story, or at least as true as I remember. I suspect the new people on ecademy won’t find it particularly interesting, although some of the older hands might, Either way, I’m not really writing this for anyone but me. It’s a story I need to tell; have needed to tell for about five years. The story covers approximately nine months of my life and so it’s perhaps longer than most “blogs” you encounter. Sorry about that.

I will mention some people by name, but only where it is necessary to help the story along, or where the people concerned were influential to events. What I will not do is point my finger at anyone in accusation. Well, perhaps that’s not true: but I’ll only point at myself, because LT’s failure as a business was entirely my fault.

I’m quite sure I’ll upset someone by writing this. That’s not my intention, but you can’t write history about living people without that happening, and it’s likely I’ll be dead before most of the rest of the people in the story, so there doesn’t seem to be very much sense in waiting.

On the off-chance that anyone is still reading, I’ll start with a very brief overview of Last Thursday.

That Very Brief Overview in Full

Last Thursday was – and still is – a Social Networking site based on drupal, a later branch of the code upon which ecademy is based, and initially owned and operated by five (later to become six) members of ecademy. It’s inception in late summer 2005 was partly a reaction to ecademy’s rules at the time, which were somewhat stricter than they are now. This was the time of the ecademy swear filter (which hasn’t really gone away, it just doesn’t operate when you are signed in) ecademy jail, (which has gone away, at least in name), and fairly regular bannings (which don’t appear to happen all that often nowadays). My involvement in Last Thursday began in August 2005, and ended around May 2006. Most of that time was quite stressful.

The beginning

It began with ecademy.

I joined ecademy one Thursday in November 2004, didn’t really look at it again until the weekend, but once I did I became captivated, and began my paid subscription within a few hours. I didn’t know whether it would be worth it – I was, as I saw it, just a nobody with no business experience, and I was over-awed by all the high-flying business-types on ecademy.

Fairly quickly I became involved with some local “regional clubs” and made some contacts relatively local to me. It wasn’t difficult in those days – I lived in Milton Keynes – networking capital of the UK – and so there were plenty of people keen to make my acquaintance. Through Lawrence Archard I was introduced to the Baldock regional club, at that time run jointly by Mike Marr and Gary Stapleton, and the monthly meetings became an essential part of my networking, as it did many others – people came to that monthly meeting – and for that meeting alone – from near and far, even from as far away as the USA. But more about Baldock later.

Maida Vale

In February 2005 I attended an “Open Space” session, hosted by Jim Wade, for the Business Referral Club. I won”t go into detail about what Open Space is – if anyone is interested drop me a PM and I’ll introduce you to Jim, who can explain it far better than I possibly could.

I was quite scared when I arrived at the event because I wasn’t sure how I would fit in with all these high-flyers. Would they look down on me? The one thing I was genuinely looking forward to was meeting Mitch Sullivan, who had assured me he would be there. In the meantime I “mingled”.

While I was mingling I was introduced, or plucked up courage and introduced myself, to a number of even then well known ecademists. Mike Segall, Patrick Moore (no, not the astronomer!), Fay Olinsky (BTW you ignored me, Fay – although you were at the time knee deep in Jamaican pancakes or something similar, so I forgive you). William Buist, Kate Shaw, others; people of whom I was in some awe. But all throughout I had half an eye on the door, watching for Mitch.

I should explain. Mitch is a phenomenon. Those of you who joined ecademy more recently than about September 2005 won’t understand, but Mitch – well, Mitch was in those days the King of Blog. I’m not even going to try to explain why; you’d have to read his stuff to understand. That isn’t to say that everyone liked what he had to say, but that’s when you knew he was at his best.

Anyway, Mitch arrived, I made my excuses to whoever I was talking to at the time and made a bee-line.

We did the pleasantries; “Good journey?” “Liked your blog the other day.” “You did? Yours wasn’t bad either.” And so on. Mitch introduced me to Jim Wade, and assured me that Jim is “one of the good guys”. I was pretty sure at that stage that all ecademists were good guys, but I didn’t want to upset Mitch, so I didn’t say anything. And anyway, Jim seemed a straightforward kind of guy, if a little distracted, since he was running the show.

We took our seats, Mitch and I, and after a minute or two I owned up to my fears. “I feel a bit out of place here, ” I said. “Surrounded by all these heavy-weights, and me, just a bloke.”

“They are all c***s,” Mitch reassured me. “Just c***’s.” (The asterisked word can’t be written on ecademy, but it shares three letters with “Aunt”.)

I remember I laughed. I didn’t believe him. It wasn’t until much later that I came to realise that everyone is someone’s Auntie.

Back to Baldock

Sometime early in the summer of 2005, at one of the Baldock meetings, Nick Gendler and I were talking about ecademy and the now relatively frequent bannings. Nick asked me what I’d do if I was banned. I shrugged. Not something I was really worried about, but if it happened, I’d probably start my own networking site. It was one of those throwaway comments that you forget about almost immediately – particularly when you have someone else to drive you home and the bar is still open. And I did, and it was, so I did.

One Friday in August, the day before I went on holiday, I received a phone call from Gary Stapleton.

“Do you remember talking to Nick about setting up a networking website if you were ever kicked off ecademy?”

“Yes,” I said.

“Well, how do you fancy setting one up anyway?”

“Sure, ” I said. Well how hard could it be?

When I got home from holiday the following Saturday – a fantastic week of walking in the Lake District – I set to work. By Sunday afternoon we had a basic site up and running in a sub-domain of my then business website – and Gary announced its arrival in the Last Thursday club he had set up on ecademy.

The Directors

I should mention at this point that Gary had a specific business plan in mind, and to fulfil that plan he had identified several roles, the holders of which he recruited from his ecademy contacts. I was the code monkey (I gained a grander title than that later, but that’s really all I was). Paul Turgoose was Marketing Director. Steve Bridson Sales. Helen Moore – forgive me, Helen, I can’t remember what your official title was. I think Gary was CEO. Damon Surridge joined the team a couple of months later as MD.

The business plan

It wasn’t particularly imaginative (that’s not a criticism, Gary, if you are reading). It was simply this: get a networking site started, bootstrap it and then run it for a couple or three years. As soon as it was up and running properly we’d sell it for a few million and split the proceeds. I think we all bought into it – I certainly did. But first we had to get things going.

Bootstrapping

Social networks need members, and they are the one thing you don’t have when you first start out. The challenge is to recruit enough members to reach a critical mass, after which point the site becomes self-sustaining. Without enough members posting interesting content, people get bored and move on to pastures new. Gary’s first attempts gained us maybe a hundred and fifty members; when you realise that the active membership of a typical site is around 5% to 10% of the actual membership, you’ll appreciate we had a problem. If we were to survive, we needed to get some more people on board.

Let’s back up a little

If you’ve been around ecademy for a while; if you have happened to notice my blogs and comments; you might have noticed a certain “style” I have. I tend to be direct in my postings; this annoys some people, and that is how it should be. I also accept that occasionally I am too direct. That’s not how it should be, and I’m working on that. But …

That style I learned from usenet – the predecessor to web forums like ecademy. On usenet you stand or fall on what you know, and what you share of that knowledge. It really is the nearest thing I’ve come across to a meritocracy. When you arrive on usenet you arrive empty handed, without kudos, and you have to earn your place. That might sound harsh, but I much prefer it to pink-and-fluffy love-ins mixed with a liberal dose of blog-verts, which was what ecademy had become back then.

And I had this idea. A web-forum which operated on the same principles as usenet. I’d not seen it done before, but I was convinced it would work. The vision was of a community which ran on cooperative grounds. Where any moderation that was required was done by the members. Not by hiding or cancelling posts and comments, but by debate and argument and (dis)approval. Where grown-up people behaved like grown-ups, and chastised or sanctioned those who behaved like children or were abusive or were spammers. Where anyone was permitted to make an a*** of themselves, and from time to time everyone did – because we are all human.

That was my vision. The basis of the dream. It was also my first mistake. And my fellow directors first mistake was to not tell me it was crazy to even attempt it. Perhaps I was too persuasive.

Back to Bootstrapping

We needed to get members on board. We had a nice site, but we were something of a backwater. We knew that we ultimately wanted to become a pay site, and we also knew that we needed members or nobody would be prepared to pay to join. If you want to run a networking site there is one important fact that you need to bear in mind. The site is not the product. The members are.

In desperation, we hit on an idea. The idea was this: anyone who joins Last Thursday before the end of October 2005 would enjoy one year’s free membership. Normal price £97.97 – you know the drill.

According to expectation, recruitment started to increase – word had obviously got around. But it still wasn’t enough. We needed a miracle.

The Miracle

Early in October 2005, Jim Wade posed a blog on ecademy that the management didn’t like. It was something to do with an interview on Radio Four, where Penny made some claims about ecademy which Jim questioned. He was banned immediately.

Jim was at that time a member of Mitch’s ecademy club “Reservoir Dogs”. Although he couldn’t post to the club – banned members can’t do anything, not even log on – somehow he was able to email the other members. Somewhere on one of my machines I still have a copy of that email, but in essence it said: “Huh? What did I say that was so terrible?”

Speaking of “terrible”, I almost forgot about Mitch. By coincidence, the same day, Mitch posted a blog. There is something you should understand about Mitch’s blogs. Mitch doesn’t post blogs about juggling, or cake making, or cars. Nor does he post blogs about how awful it is that the postman didn’t deliver his Love Film DVD on time, or how much better the Cornish Pasties were from the bakery near the house he used to live compared to the bakery nearest to this new place. Mitch’s blogs ask questions which you have to dig deep to answer. Well, sometimnes. Other times he just tries to shock you out of your comfortable niceness, or make you laugh or cry. Often all three at the same time.

So: on the day Jim was banned for asking a question, Mitch was banned for posting his usual challenging stuff. I didn’t even see it. It, along with Mitch and all the rest of his content, was gone within a few minutes. All I saw was Mitch’s email (remember, banned members can’t talk to ecademists) expressing his astonishment at having being banned for something so – well, run-of-the-mill.

You said there was a miracle

Oh, sorry. I digressed a bit. Yes, there was a miracle. It turns out I wasn’t not the only one who thought highly of Jim and Mitch. When Jim and Mitch were banned, a number of active ecademists were quite upset. Some of them were upset enough to follow Jim and Mitch to Last Thursday. Well, in those days, pre-Facebook – where else were they going to go? Our membership doubled, quadrupled, and so on. We hit the 1000 mark well before the end of October; the cut-off, as I am sure you remember, for the “free one year’s membership”.

There was a pause in membership at around the 998 mark. We’d been seeing sometimes a couple of dozen sign-ups a day, and then when the counter got to 998 it just seemed to stop. We waited for ages for member 999 but they never appeared; it seemed to me that everyone was hoping to claim member number 1,000. Finally I added a new account, and recruitment started again. Weird. But there were a number of weird things happened like that. For example we noticed that the site was busiest during the working day, then got quiet around 5-6pm – we assumed it was “drive time”, and then started to pick up in the evening but never reaching the same level of activity as it had during the day. Weekends were reasonably busy, but 9-5 on weekdays could often be mental.

This was the bulk of our “easy” membership – they had all arrived in a flurry of anger at Jim and Mitch’s bannings and they wanted blood. Any blood would do. And we’d promised one year’s free membership for anyone who signed up before the end of October.

I can tell you are way ahead of me: you know where this is going.

Community Moderation

I told you already I had a vision of a web forum where the members moderated themselves. Although I don’t recall ever putting it this way at the time, essentially this meant shouting down anything you disagreed with.

And so we set out our stall. We were the antithesis of ecademy. We would not moderate. We would not censor. We would only ever remove posts if they were deemed to be illegal. You could say anything here, as long as it was legal and you were prepared to stand by it, it was ok. This was our USP, and our members bought into it.

In the early days, it seemed to be effective. The few members who were active seemed for the most part to rub along very well together, and when the odd disagreement did occur it was in every case cleared up by discussion. “Look,” I said to the other directors at every opportunity. “Community moderation really works!” And it certainly appeared that way.

However, once the site started to fill up – particularly with angry, resentful people who needed to lash out at someone – the trouble started. Some just wanted the opportunity to post swearwords, or photos of people vomiting (I kid you not). People liked being able to assume an alias, and use a “funny” picture on their profile (ecademy at the time insisted that people’s profile pictures we photographs of themselves. I don’t know if this rule is still in place, but it doesn’t appear to be enforced any more).

Some members wanted to poke fun at ecademy members who hadn’t yet come over to LT – some even posted material which bordered on the libellous, or even crossed the line on some occasions. Some of these were removed, and the member would be notified of the reason, and they usually accepted it, although not always happily.

It should be said that not everyone on LT was posting this stuff. Many, I think probably most, members just wanted a networking site free of censorship. Many of them didn’t like what was being posted but I think they realised, just as LT’s directors did, that freedom to post whatever you like and can stand by means just that: you can post anything you like. There were arguments, and falling’s-out, and a lot of members we would have liked to keep asked me to remove their accounts. I’d usually ask them to reconsider; they were the kind of member we wanted (yes, I know how that sounds) but the majority stuck by their decision and so were blocked.

So: for the first couple of weeks after the mass arrival, almost every other post was about ecademy, its members or its officers. “They’ll settle down eventually,” we (the directors) said to one another. “They can’t keep harping on about ecademy forever.” But as it turned out, they really could. It seemed that ecademy was a well that never ran dry. Two weeks turned to three, then to a month. But finally, just when we felt the gig was up and we had to either throw in the towel or introduce moderation, the anti-ecademy postings seemed to slow down to a trickle.

Interlude: Finding work

In the months since August I’d been spending so much time working on the Last Thursday code that I’d not really had much time for anything else, much less paying work, but that couldn’t go on for much longer. I needed to find work. As luck would have Gordon (I forget his surname), a former colleague from my contracting days, called out of the blue telling me there was a contract for a COBOL programmer at a company where I’d worked for a few years in the Nineties and early Naughties. I didn’t know the manager of the department concerned, but I did have a few contacts in the company, so made a couple of calls. I was interviewed a couple of days later.

The interview was strange, by the way. When Gordon called he told me that he’d been interviewed, but had been rejected. When he asked why, the manager who interviewed him was kind enough to tell him it was because he failed to answer a particular question in “the right way”. The question went something like this:

“You are working at GCHQ, attending a meeting in a sealed room with an “A-Team” who have been selected to solve a particular problem. Someone has come up with a possible solution, but it can only work if the amount of water – H2O – on Earth is within one degree of magnitude of a particular number. You have no reference materials, and no internet access, how would you go about establishing whether the solution could work?”

Apparently, this was a question which was designed to reveal how the candidate thinks. In my case, with fore-warning, it really only tested my ability to use a search engine. Armed with some figures which I had googled the day before regarding the circumference of the earth, the average land coverage, and the average depth of Earth’s oceans, plus my existing knowledge of how to work out the volume of a sphere (which is the only maths you really need) and realising I only had to be within one order of magnitude, I passed the interview with flying colours.

It was a bit of a shame; I much prefer technical interviews, where they ask about database triggers, SQL syntax, common storage or esoteric COBOL verbs. I guess I’m a bit of a show-off when it comes to my craft. But hey, I got the job, so that was ok.

Back to Last Thursday

Even though I was working in a new department, it is inevitable that I’d want to catch up with former colleagues too. After a couple of weeks I found myself chatting with my old team, and somewhat hesitantly I told them about my new venture: a networking site. I told them the URL, said I’d be pleased if they would have a look and let me know what they thought. I’ll admit, I was proud of what we’d accomplished, and how far we’d come in such a short time.

The drive home from London was mercifully short. You know how some days the usual obstructions just don’t appear; there was no snarl-up on the A40; Staples Corner was a dream; J10 for Luton was like it must have been in the old days, before they built an airport there. I arrived home 40 minutes after I’d set out, at around 5pm.

The first thing I did after kissing the family “hello” was to log on to Last Thursday, see what was new. Top of the blogs list was a post by a very angry member: “Why Thomas Power Is Somebody’s Aunt” (That wasn’t really the title – I couldn’t post the real title on ecademy). I read the blog, and it was a diatribe about something quite trivial (IMHO) that Thomas had done which had upset the author.

I’ll admit it, I flipped. I’d just invited some of my friends and former colleagues to take a look at the site, and now this … Aunt … had started the anti-ecademy stuff again. I wrote a long, shouty blog with the unassuming title of “I RECOMMEND YOU READ THE WHOLE OF THIS POST!” I admit it, it wasn’t subtle.

Anyway, what it basically said was: “This isn’t on. We aren’t ecademy, and we aren’t interested in ecademy. If you want to slag off ecademy or it’s members or officers, do it somewhere else. If anyone posts anything else negative about ecademy on this site, I’ll ban them, and they won’t be coming back.”

My fellow directors thought I’d gone mad, and maybe I had, but hey. Freedom has its limits.

There was a pause for a few hours (this was evening, and would normally be very busy, with several of new blogs an hour). Then, after a while, the protests began. Some members complained that it was censorship. I agreed, and said so, but it was how things were going to be. Some asked if they’d get their money back if they were banned. I told them they would (it seemed the fairest thing to do.)

For a couple of weeks it worked, but then the anti-ecademy stuff started again. Quite subtle to begin with, we noticed it but nobody really crossed the line, and foolishly we thought “as long as it only stays at that level, it’s ok”, and let it pass. We should have exercised a zero-tolerance policy, but weren’t smart enough to do it, because if you let something mild through, and then something a bit stronger, then yes, there *is* a line to be drawn, and *yes* you do know when someone has crossed it, but they can then point at the ones you didn’t moderate as evidence their post is ok.

We also knew that the first time we banned someone would be the last time we saw the majority of our members. I think the learning point for me here was: don’t make threats you aren’t prepared to carry out.

The answer

Finally, in desperation, we hit upon a solution. Up until that point practically all the site’s content was in the form of blogs. We had a handful of forums but they were mostly for things like bug reports, suggestions for improvements, and for asking questions about the site.

The big idea was to move the member’s content into closed clubs. A basic drupal install is essentially all open or all closed. I wrote a “club” module which emulated the drupal forums, but enabled privacy (a bit like the “groups” on ecademy, although with some differences). We set up some “official” clubs and also enabled members to create and manage their own clubs. We appointed member moderators to police the public, official clubs, and gave them role-specific user ids to help keep them anonymous.

To the clubs module also added the concept of a “library”; a club in which no new postings were possible, but members of the library club could read the content. All the past blogs were moved into the library, so all those old threads were still available to members but couldn’t be added to. We considered deleting the old stuff and starting again, but in the end we felt that the content was the property of the authors, so it was only fair that they should have access to it.

People could still operate their own blog, but it was isolated from the rest. There was no place where you could go to view all the blogs in one place. The idea was that people could use the clubs socially with other members, but also have a blog which would behave more like a personal blog, even though it was on the LT site. This was, actually, a dreadful idea on a social site, and not something we could have sustained long-term, but it was a stopgap solution; for the time being we needed to lose the “melting pot” which was the cause of our problems. The irony is that that same melting pot is the lifeblood of a site like LT.

There were complaints, tantrums, some people left (actually, lots of people left: they left to the site which was eventually to become the new Last Thursday) but we stuck to our guns. We had to. We knew that if we didn’t do something it was only a matter of time before a writ flopped through the letterbox. We also knew that the anti-ecademy content was driving people away. Who wants to join a site whose primary focus is to slag off the site next door? And a social networking site needs people; one run as a business especially so.

We also changed some of our policies, the most important of which was that people must post using their real name (remember, prior to that, we’d allowed people to post under aliases).

We muddled along like that for a few months, but in reality, we directors had had the stuffing knocked out of us. The site wasn’t making money: recall that most of our members had a year free (although some were gracious enough to pay anyway, for which we were grateful) and what little money we had was being eaten up by hosting fees. I don’t recall what was the final straw, but one day in May 2006 all but one director resigned, gave up their shares, and became ordinary members. I agreed to stay on as techie until a replacement was found, although as I suspected there really wasn’t anything for me to do.

Within a couple of weeks Gary sold gave the site, domain names, everything to Richard Alberg. I’m not sure how long it was before Richard also threw in the towel although he did last quite a while, and since I’ve not asked him his reasons for doing so I won’t speculate on that here. But ultimately the keys to the domain were handed over and LT is now run on a not-for-profit basis.

In summary

It’s a long time since I’ve looked in over there; John’s policy is to block inactive accounts, so I don’t expect I have a login any more. But the last time I visited there was some ecademy stuff but not as much as there used to be. Maybe we just needed to hang on in there, but frankly, six years was rather too long to wait.

I promised at the beginning of this blog that I would point the finger at only one person, and I stick by that. I, and I alone, was the author of the Last Thursday’s failure. Not the members. Not my fellow directors. It was me, who believed that it was possible to run a site without moderation, and who staked everything on that belief, who was to blame.

Was it a bad experience? At the end, yes. I fell out with a number of people who up until then I had considered friends. I’ve since made peace with some, hope eventually to make peace with all. And I accept, finally, that none of the people with whom I was angry were to blame at all. They were just behaving in the way that people do.

Would I do it again? Possibly, although probably not for money. I learned a great deal from “The LT Experience” and I’ve helped several others set up networking sites. Nothing on the scale of Facebook yet, but there’s always time.

How to plagiarise without getting caught

Isn’t it frustrating when you copy and paste someone else’s writing into your blog, only to have some interfering busybody point out that you aren’t the original author. They might even go so far as to email the *real* author to tell them you have copied their work. And all you were doing was quite innocently trying to pretend you had some knowledge you didn’t have. How unsporting of them. But it doesn’t have to be this way.

The next time you get the urge to plagiarise someone else’s work, just follow these simple steps, and you’ll never have to worry about being caught out again:

1) Copy the text as you normally would.

2) Go to Google’s translate page, here: https://translate.google.com/

3) Paste the article’s text into the translate box, and choose “English to Russian”.

4) Paste the “Russian” text into the translate box, and choose “Russian to English”.

5) Paste the “Engrush” text into the translate box, and choose “English to German”.

6) Paste the “Germish” text into the translate box, and choose “German to French”.

7) Paste the “Freman” text into the translate box, and choose “French to English”.

8) Paste the “Engirunch” text into your blog, and post.

If you follow these steps carefully you’ll have produced a blog which almost certainly cannot be identified as having been plagiarised from elsewhere. For example, the first paragraph of this blog comes out thus:

Is not it frustrating when you copy and someone wrote in his blog, but there is noise meddler from the point that you are not the original author. You could even go as far as creating a real * writers to tell them how you copied his work to send. And all you did was try innocently enough, so that you have some knowledge, you should not. How unsporting of them. But it should not be.

It will look just as if you thought of it yourself. Nobody will never know.

Core Process

Another one from some years ago, when I was a member of the now-defunct business networking site, ecademy. Only two comments in this preface: First, I’m surprised that the links still work – after a fashion, at least. The new owner had his developers hack the guts out of ecademy and so top-posts are mangled beyond legibility, and much of the following discussions – where the real value lay – has been lost. Second, the phrase we came up with still resonates with me. At the time, I didn’t really expect it to stay with me as long as it has.

Anyone who has been around ecademy for a while might recall a blog I wrote a few years ago on a fictitious self improvement program named CPR. This was a light-hearted poke at a something which seemed to be quite in vogue at the time: Core Process. The blog enjoyed a brief flurry of activity and I hope the participants had fun but after a fairly short time it disappeared from the front page and was forgotten. Or so I thought.

A couple of weeks ago I received a telephone call from Nick Heap. Nick explained that part of his business offering is Core Process and he also runs a Core Process group on Linked In. He told me that someone had recently posted a link to my CPR blog, and that was the reason for his call. My first thought was that I was going to get a telling off but instead, Nick asked me if I would like to try Core Process for myself. It would take a couple of hours at the most, and I might find it useful. If nothing else, at least I’d then know a bit more about what it was. He also said it would be OK for me to post my thoughts about it in a blog.

Although I’m quite sceptical about such things, honest scepticism requires that from time to time, if not all of the time, we re-examine our attitudes and beliefs, so I accepted Nick’s offer and we arranged a call on Skype a few days later.

The conversation followed a set format, which Nick outlined at the beginning of the call. Without going into too much detail, Nick first gave a brief history of what Core Process is and how it came to be invented, after which I was asked to come up with three or four stories about events during my life when I had felt particularly “good”. I found this difficult, but managed to dredge up three stories and we were going to move on to the next stage when another story came into my head and I asked to tell it. During the course of each story, Nick captured the essence of it by jotting down a handful of key words.

Next Nick asked me to choose one story to focus upon and to extract from it three verbs and three nouns which describe the main themes running through that story. From these we then settled on two words – again a verb and a noun – which was intended to encapsulate the theme that ran through the chosen story. Coming up with the noun was easy; almost obvious. But it took several minutes to settle on the verb, but when I did it was a real “Aha!” moment. Surprisingly to me, neither of the words was in the original list.

Once the two-word phrase had been selected, we tested it by examining the other stories: was it a good fit? It turned out it was for three of them and could be “made to fit” in the remaining story, although it wasn’t perfect. However, that story had been told in desperation while I was anxiously racking my brains for stories where I had “felt good” and so I wasn’t too concerned about that.

There was a final check which I won’t spoil for anyone who might decide to explore their own Core Process, but I have to say it was the only point where my sceptical gland came into play during the entire conversation.

Overall, I was left with a good impression of the process and of Nick. He has a very good voice on the telephone and although I was a little nervous at the start of the call his relaxed manner and reassuring tone put me at my ease almost immediately. My moments of brief panic when I got “stuck” at various stages were calmed by Nick’s reassurances that this was a normal reaction and to just relax; the story will come.

At the time I felt elated and I almost wanted to write this blog straight away, however I’ve been on too many “personal skills” courses when in corporate life to not recognise that the novelty might wear off and I might feel very differently about it after a few days. It’s been a little over a week now, and indeed that initial elation has faded somewhat but I’m still more than happy with the result.

Will determining my “Core Process” change my life in any significant way? Probably not. I don’t think I subscribe to the central idea of Core Process: that there is a single theme running through each of our lives which Core Process can expose. On the other hand I am confident that it captures an important part of my personality, quite probably the most important and almost certainly that which informs much of what I do and how I think and behave. I think what I am saying is that I am no longer sceptical about Core Process: I don’t buy the whole package but I think it will be useful to me.

I’m not going to tell you what we came up with, mainly because it has real meaning only to me: as a phrase taken on its own it is open to various interpretations, none of which would match mine.

I expect this post will make some people laugh: that’s fine – laughter is good, and I used to laugh too so in that sense I deserve it. I hope I’ve done justice to the process in my description and I’m sure I must have forgotten some significant detail but my excuse is that I was concentrating too hard on the various activities to take very much notice of how the process actually worked.

If this blog has made you curious about Core Process, please get in touch with Nick who can tell you more about it. The challenge I have now is to work out how to condense this post into a testimonial.

Welcome To Oz: Living In The Matrix

In the 1939 film The Wizard of Oz we discover at the end that the events of the story are a dream from which Dorothy eventually wakes (this is different from the book The Wonderful Wizard of Oz by L Frank Baum upon which the film was based.) We can empathise with Dorothy – when we look back on our dreams in the minutes after waking we are often amused at how ridiculous they are in retrospect but during the dream it all seemed perfectly logical.

Philosophers and Writers have long speculated about this inability to tell the difference between dreams and “reality”.

In the 4th Century BC, Zhuangzhi said:

Once Chuang Chou dreamt he was a butterfly, a butterfly flitting and fluttering around, happy with himself and doing as he pleased. He didn’t know he was Chuang Chou. Suddenly he woke up and there he was, solid and unmistakable Chuang Chou. But he didn’t know if he was Chuang Chou who had dreamt he was a butterfly, or a butterfly dreaming he was Chuang Chou. Between Chuang Chou and a butterfly there must be some distinction! This is called the Transformation of Things. (2, tr. Burton Watson 1968:49)

Zhuangzi could not know whether he really was Zhuangzi and not a butterfly dreaming of being Zhuangz.

Descartes expanded on this with cogito ergo sum – I think, therefore I am – explaining that all any of us can know is that we exist; nothing more. And the Brain in a Vat thought experiment considers the impossibility of knowing whether we are experiencing the Real World or some artificially induced view of the world.

In H.P Lovecraft’s short story, Polaris, the subject of the story awakes from a dream of guarding a city on a far off planet, only to realise with horror that it is this apparent reality which is the dream, he has fallen asleep at his post and the city’s enemies will now pass undetected.

And so on.

But recently another idea has begun to penetrate the public consciousness. The idea that we do not dwell in a physical universe but are, in fact, simulated beings in a highly-sophisticated virtual reality environment. We have already become used to this idea through the mediums of film, such as The Matrix series, or in novels and short stories by writers such as Greg Egan, a Computer Programmer turned Science Fiction Writer whose stories are centered around human-like consciousnesses inhabiting virtual worlds, or people whose brains have been replaced by sophisticated Quantum computers known as Qusps. But what many people don’t realise is that this idea is being seriously explored by modern philosophers, perhaps the most recent and best known of whom is Nick Bostrom, whose Simulation Argument rests on three propositions one of which, Bostrom argues, must be true:

“… at least one of the following propositions is true: (1) the human species is very likely to go extinct before reaching a “posthuman” stage; (2) any posthuman civilization is extremely unlikely to run a significant number of simulations of their evolutionary history (or variations thereof); (3) we are almost certainly living in a computer simulation. It follows that the belief that there is a significant chance that we will one day become posthumans who run ancestor-simulations is false, unless we are currently living in a simulation.”

Most people who come across this argument dismiss it, believing the notion that we are living in a simulation is nonsense: “Of course it’s not a simulation. I can look around me, see the world, touch it, smell, taste, feel it. It seems pretty real to me.” But how can we be so sure? Our five senses – sight, hearing, touch, smell and taste – are as far as we know all relayed to us. We do not experience anything directly; the information from our senses is first filtered and interpreted by the brain. Those sensations could just as easily by artificially induced; like the Brain in the Vat, we have no way of knowing whether our experience is real or fed to us by sophisticated Virtual Reality software.

Consciousness: We find it hard to believe that a computer could be conscious. But why? Personally, I find it just as plausible that a lump of meat can be conscious – an opinion shared by the machines in Terry Besson’s short story They’re Made Out Of Meat. And many theorists and futurists point to the year 2045 as the most likely point when machine intelligence – that is, simulated intelligence – will finally equal and then begin to surpass our own.

We make a distinction between our normal conscious state and the unconscious state when we are asleep. But nobody can agree what consciousness is; neither Philosophers, Psychologists, Neuroscientists or anyone else. Some even suggest that consciousness doesn’t actually exist, and that what we experience as consciousness is an illusion.

Free Will: In a strictly rule-based simulation such as might be implemented on a computer, there would be no such thing as free will. Since everything comes from software operating according to predefined rules, then it follows that everything that happens will be predetermined (although it might not be knowable in advance). So since we have free will, we can’t be a simulation, right? Wrong. Time and time again, experiments to determine the extent of our free will have come to the same conclusion: we don’t have it. In his classic experiment, Benjamin Livet found that the decision to perform an action actually trailed behind the neurological impulses required to perform the action. In other words, his subjects decided to do something only after they had done it. Of course, there might be something wrong with the experimental setup, or the experimenters might have made some errors, but similar experiments have been performed many times and all with the same result.

I’d argue that we can’t know for sure that we are not part of a computer simulation. This does beg the question, though: how could we tell if we were? Some ideas.

Software bugs: What if we could find a fault in the software? In modern programming terms, perhaps we could discover a state which will put part of the program into an infinite loop, or cause a variable to overflow. Of course, we don’t know what this would look like until we try it, but perhaps we could keep an eye out for anything “out of the ordinary” which might be an indication that here is an area worthy of further exploration.

Easter Eggs: Computer programmers are notorious for adding what are known as “Easter Eggs” into software. In-jokes, extra (but usually non-useful) functions, handy tricks and so on. What if the programmers who created our simulated world added some easter eggs to our simulation?

There might be some clues already lurking, as you might expect, in the realm of the very small; I hardly dare say the phrase, but here goes – Quantum Physics:

Heisenberg’s Uncertainty Principle states that we can’t know with any accuracy both the position and the momentum of a particle. Observation of one of these prevents any observation of the other. This strange phenomenon might be as a result of the programmers attempting to limit the amount of computer processing power required, similar to the way in which computer games only render information which is deemed necessary at a particular time. 3D games, for example, only calculate for display those parts of the virtual world the player can see.

The double-slit experiment has as it’s explanation a single, indivisible particle – a photon – being in two places at the same time. Unless the particle is “virtual” then it is hard to see how this is possible; and if the particles are virtual, doesn’t it follow that everything else that is made from those particles is also virtual? Aside: this odd result might just be the evidence of a software bug mentioned earlier.

In A Brief History Of Time and elsewhere, Stephen Hawking explains that there is nothing in the Laws of Physics which would prevent the universe working equally well if time ran in either direction. This rather odd-seeming result might suggest an entirely deterministic universe.

The race condition so unlikely it’s not worth worrying about will probably occur on day one.

I’ve spent the last week or so optimizing a set of scripts which analyse and report on competence scores for employee assessments. As with most optimization tasks, the key to improved performance was in the I-O, in this case reading a SQL database.

By replacing SQL reads with cached lists, accessed via Linq, I took several scripts which were taking over a minute to run down to a much more acceptable 5 seconds or less.

To improve performance further I decided to cache the data between page loads. To do this I implemented a singleton class which used a static instance to store the data between page loads. Since it was static this had the added benefit of all users being able to share the same data; so we only have to generate the instance once. Code fragment:

public class ReportingCache
{
private List<AssessmentInstance> assessments;
// more lists of objects…

private static ReportingCache _instance;

private ReportingCache()
{
Initialise();
}

public static ReportingCache Instance
{
get
{
if (_instance == null)
{
_instance = new ReportingCache();
}
return _instance;
}
}

// Getter for assessment, with just-in-time load of assessment list.
public AssessmentInstance GetAssessmentInstance(int id)
{
if (assessments == null)
{
assessments = new List<AssessmentInstance>();
new AssessmentInstance().Iterate("SELECT * FROM assessment_instances", AddAssessmentInstance);
}

AssessmentInstance assessment = assessments.Where(i => i.Id == id).FirstOrDefault();
if (assessment == null)
{
assessment = new AssessmentInstance();
}
return assessment;
}

private void AddInstance(AssessmentInstance assessment)
{
assessments.Add(assessment);
}

// More accessors/JIT loads.
}

Whenever a script needed to access, e.g., an assessment instance, instead of going to the database, it instead made a call such as:

ReportingCache.Instance.GetAssessmentInstance(id);

This worked really well, and there was very little else needed to bring the runtimes down. However, there was a potential problem.

If two users happened to simultaneously access the same list in the instance before it had initialized, they would both attempt to perform the initialization at the same time, leading to incorrect results or even an exception. I did some benchmarking and decided because list population took less than a second or so, and there were only a handful of users of these particular scripts, this was unlikely to happen very often, if at all, so decided to worry about it in the future if it ever became a problem. In other words, I filed the problem under YAGNI: “You Ain’t Gonna Need It.”

Release day was today, and I received a call around 11am to say that the script had thrown an exception, and would I look into it. It turned out that this was caused by the exact race condition I’d anticipated but dismissed as being so unlikely it wasn’t worth worrying about.

What I hadn’t considered was users talking to one another while they ran the reporting scripts, and in particular the site owner training other users in its use. He’d been on Skype with one of the end users explaining how to run the scripts, starting with the slowest running but also the most useful report. In a “Do it with me” session he and the user had both opened the report at the same instant, and one of the scripts promptly fell over. Fortunately, it was the owner’s script which died and not that of the end user, but it still needed fixing.

How to fix it quickly? I considering setting flags on the object while lists were being created, having the ReportingCache object script sleep for a few seconds on exception before retrying, and so on, but in the end I did the simplest thing I could think of: catch the exception in each reporting script at the highest possible level, present the user with a message that the report’s data was being regenerated, and auto-reload the page after a few seconds. It’s not the prettiest solution but it should work as a stop-gap while I work out something more permanent.

What I learned: the race condition with a one-in-a-thousand chance of occurring, is probably going to happen on day one.