Hunting Ghosts

I spend a lot of time fixing issues in my job. Software engineering is about creating solutions, yes, but it’s also about diagnosing and fixing problems. Some problems are run of the mill. You see the symptoms, you hear the complaints, you look at the context and it all points to one thing. A busted database, user error, cruddy printer heads.

Then there are those bugs that crop up and have no immediate solution. They are reported as ‘it sometimes crashes’ or ‘it intermittently goes slowly’. These are the ones to watch out for. It’s too easy to fob them off as ‘ah, user error’ or ‘an anomaly, nothing more’.

The report itself is full of assumptions, and these assumptions must be solidified. What was the user doing at the time? When does it normally occur? Is it the same terminal each time? Is it happening at other sites? In fact, there are so many possibilities of what it ‘could’ be, that it’s seemingly impossible to see what it really is. Worst of all, the assumption that the user has isolated the incident to where it broke is a terrible one. More often, the user has a prejudiced idea about what the nature of the problem truly is.

Jumping in to solve a problem at this point is prone to error, and one can easily find oneself chasing ghosts about, grasping at elusive problems in all the wrong places.

And that’s where being methodical comes in. If there is one rule I’ve found when busting bugs, it’s to go back to the very, very start. Take all of the current context with a grain (or spoonful) of salt. Stop, relax, take a breath and look at it from afar. Is the machine turned on? Is the application running? What version is it on? Is there network access?

All of these things, and more, can be assumed. Without testing, they cannot be taken for granted. It usually only takes a second to verify these basic things, and, from there, move onto the more complex issues. Funny thing, I would say that over half of the problems I face stem from something very simple, and half of the rest stem from something only marginally less simple.

And so it goes on, getting more and more complex until there’s nothing left. You find the code looks clean, the tests are working fine, and even when you artificially break the code to recreate the issue, it won’t fail.

And then it gets into hunch territory.

What’s the hunch? Your best and worst friend, the guy who pops up at the wrong time and gives you the right answer, but then talks utter crap for the rest of the week. The dude who hasn’t got the slightest clue why but knows for sure that the problem is a threading issue introduced by a third party integration. The hunch leads you up the garden path for a day, or gives you the answer in a sip of coffee.

The perfect thing about hunches is that we can often test them, test the assumptions, test the outcome. Sure, it can be wildly incorrect, and that’s where the mixing of the two mindsets comes into play: Be methodical, and rule out the obvious, then entertain your hunches by testing their claims, seeing if there’s any validity.

It is the same with Cooper Alley Ghost. The protagonist has had a bellyful of rigorous scientific methodology, and has been trained to ignore his feelings, what the nagging, unreasonable back of his mind is telling him. Until now.

Milena shows us that there is more to this world than the explainable, that so much is going on about us for we cannot account, that we cannot understand. We cannot put it all into a single sentence to explain it and we need our hunches, our guts, our feelings, to guide us.

The Professor is not so blinded as to dismiss feelings from his own personal convictions. Rather, we find that it is incumbent upon him, as a member of the scientific community, to maintain his rigorous methodology, or suffer the consequences of ridicule among his peers.

Less than a week!

Exeter, a bustling town with a wealth of surprises, is now home to the Professor. He has set up his laboratory and has fished for active hauntings and, to his great delight, has succeeded in finding what could be the most perfect case on record, one that might be used for scientific analysis on the nature of the other world.

They’ve already had run-ins with the locals, and now they are wiser to the lay of it all, so it’s time to investigate in earnest. Of course, the city has its own surprises waiting for them. What will all this mean?

You can find out in less that a week! The official launch of Cooper Alley Ghost is on Sunday 26th of April, 2020. But you can get it now, on pre-order, with the eBook up at all major retailers:

Smashwords
Google Play
Apple Books
Amazon
Kobo
Barnes & Noble

The audiobook has been submitted and is currently under review, but there seems to be a delay on the publishing. I’ll keep you posted about that. I know Ah’dhu is a fan of the Audio versions, because then he can get his ghosts on the run.

The Red Pen’s Revenge

The excitement builds. The whisky is poured. Draft two is complete. It is a relief. The first run, you see, doesn’t feel real, it doesn’t feel like the end product. It’s almost as if the first copy is a grainy image of what is to come. It can be lax. It can be unstructured. Things don’t necessarily need to follow or make sense. Great slabs of story are missing. Other flabby bits are hanging off the sides, waiting to be cut out.

What a mess! What a disaster! How can we clean this thing up and get it into something readable? Well that’s where the second draft comes in. Still on the machine, I read through it all, start to finish, and cut out what needs to be cut out and put in what needs to be put in. I correct obvious errors or grammar and spelling and correctness. I think whether the timing makes sense, the locations, the people and the settings.

Is that what this character would do? Is that really the best way to describe that? Bit by bit I massage the story out from its amorphous shape and, with a pinch here and a cut there, it becomes a story with a purpose. Great. That’s the point I’m at now. That’s the moment of ‘woot’ where I can take a breather and fix up the garage or fly a kite with Joey.

That’s not the end of it, though. For now comes the nasty part – the Red Pen.

The Red Pen is ruthless. The Red Pen cares not for fancy constructs, nor for passive tense. The Red Pen spots that naughty comma and herds it into the right spot. It scrawls its thoughts down in haste, it draws arrows and brackets and, when it gets really steamed, it draws thick lines through words, sentences, even whole paragraphs!

That’s what happens when you leave a Red Pen in a cup for half a year. It gives it time to plot and scheme. I only hope there’s something left after it has had its fill.

Cooper Alley Ghost Cover – Pt 4

I’ve used the same general layout for the Paranormology series – Two thirds picture at the top, one third writing at the bottom. The top is of the haunted building. The bottom contains the title and author upon a close up of some of the material making up the structure.

The Smashwords guidelines specify a minimum width of 1400 pixels, with a height greater than the width. I use 1400 x 2278. For the lower section, I’ve chosen a piece of wall with some cracks and flaking paint:

The two sections of the book – house and brickwork

After that, I’ll add in the title and the author, along with a flourish to separate the two. I used the font Augustus because it was narrow and crisp. I’ve made a duplicate of the writing layer to have a slight coloured rim around the lettering.

Title and author, with a flourish to separate them

Now that’s alright by itself, but the brickwork needed to be contrasted a tad more with the writing, so I added a glow to it, reduced the contrast and added in a purple and yellow wash. I then put a shroud on the outside and bordering the two images, to give it a slightly darker look.

Shroud around the outside, purple haze and yellow wash

I threw in some faint plasma for a swirling, mystic look and finally added some snow at the bottom panel to tie it all in. The result:

Add the series number caption at the top, too

Tada! And we’re good to go!

Cooper Alley Cover – Pt 2

I really needed a picture of this house for the front cover. But taking the photo is only the first part of the job. Next was turning this rather old looking piece into something one might consider haunted.

The image of the house, without cyclist or Joey (although he would have been a cute addition)

The house, captured in broad daylight, was not exactly ‘creepy’ looking. Not only that, as you can see there are artefacts within that would not belong in a Victorian era story. Anachronisms, perhaps? Either way, they had to go:

First things first, get rid of the bits what don’t belong in there.

We can see the walker, the plastic bins, the electrical junctions and the wires. The letterbox looks fine and the number on the door is too small to make out, so that’s good, too. Oh, right, and the compact fluorescent lamp as well. Another little ditty is the reflection in the glass – there’s a ute in there. Aaaand that building over to the right.

To get rid of these things, I used the good old ‘clone’ tool in Gimp. The technique is to carefully clone parts of the surrounding background and surface over the top of the unwanted anomalies.

This works best with consistent (like the grey bricks) or noisy (like the mulch on the ground) backgrounds. It’s a pain in the bum with distinct, contrasting objects like the fence rods and the window. For these, I had to match up the cloning very carefully indeed to avoid a glaring inconsistency with the straight lines.

Not that anyone is looking that closely, but still. It’s also a heck of a lot easier when you don’t have a Joey jostling your arm every few seconds.

Tada! Purple and red shades bring the house a mouldy feel.

I then removed the sky, twiddled with it, darkened it and kept it for later. The colour of the house and the leaves needed to be duller and more dreary. For this I adjusted the grey bricks to be more purple, and the green leaves to be more yellow. The top windows needed dulling (because we can’t reflect a blue sky at night, right?) which was a matter of using the magic selector and reducing the lightness.

With all that done, it was time to add some layering in there.

The story is set in winter, and while it is not full-blown midwinter, it’s still cold and there is a smattering of snow about. Well, that means I needed to add snow. Where and how the heck could I do that? It took some doing, but I think I got there. More on that in a tick.

Cooper Alley Cover – Pt 1

It’s getting harder and harder to find houses that fit the front covers for my stories. The latest, Cooper Alley Ghost, needed to be old, craggy, two storey and squishy. Why? Because it’s in an alley, not a street or avenue. Trolling the haunts of Moonee Ponds and Essendon, hunting about for the right one, I came up with a whole lot of not much. This one is single storey. This one is too grand. This one is way too modern. The houses in that area, you see, tend to be sitting on large blocks. There’s a nice, comfortable feel about them and those that have be squishified into apartments and the like tend to have been built only within the past decade or two. Not at all suitable.

So I gave up on that and scratched my head some and thought and thought and thought. If only I had a jet-pack, I could fly about the suburbs and rapidly cull from my list the houses and buildings that weren’t suitable, and narrow in on those that were. I don’t have a jet-pack. And even if I did, I doubt that it would be the most practical way to… and I struck upon an idea. Google Street View, of course! Why bother driving around, slowly crawling the backstreets and looking creepy, when some gigantic tech company has done that already? No, really, have you seen the cars? It’s a little creepy the way they putter up and down, and even more creepy when they go into the back-alleys of Carlton and show you the insides of people’s backyards.

Anyway, after comparing the tomato gardens of the people of Fitzroy and Carlton, I got back to my task and hunted about for a house that would fit the bill. After twenty minutes, boom, there it was – the ideal house. Two storey, slightly creepy and crumbled, squished between two other houses. A tiny front yard and a smattering of plants. Perfect. Now I just had to get there and take a photograph.

Well, it’s school holidays, and that means I’m taking care of Joey, dragging him about, taking him to the pool, to work, to boxing, to the shops. None of those places are anywhere near Carlton. Bum. OK, so we had to make a special trip. On the hottest day of the year. And we were in Port Melbourne, had to fight through the city traffic to reach the other side. That, or go on a long, sweep around. Either way would be unpleasant. The city, at that time in the morning, I reasoned, shouldn’t be so terrible. That’s a relative term. The traffic was lighter than peak-hour, granted, but that doesn’t mean it wouldn’t have been faster walking. And don’t get me started on the terrible driving. The day was getting hotter, Joey was getting crankier and my patience was getting drier. We finally popped out the other side and reached Nicholson Street.

Parking. Yay, hadn’t thought about that. I normally ride a scooter, so there’s no need to worry about parking. On Nicholson Street was not an option – all the parks were gone. So I hit up Leicester Street and poked about there. Permit parks over here, no standing over there and lots and lots of ticketed parking. Heck, all I wanted to do was jump out, take a happy snap and go home. Not happening. So then it’s around to the next street and the next and, a stroke of luck! There was a two hour spot just waiting for us next to a (much needed) water bubbler.

We got out, headed to the house (just up the road) and, wouldn’t you know it? There was roadworks signs and parked cars all over the place, with no clear shot. I tried from a few angles. No good. I stood closer and further, tried the zoom on the camera. Still no good. Joey was at boiling point. So was I. “Blow it,” I said, “Wasn’t there a 7-Eleven on the way over?” A slurpee took joey off the boil and shut him up for at least thirty seconds while I thought. I didn’t fight all that way to give up, and considering the general feel and age of the suburb, there had to be other samples about. We wandered up and down for a little while. At last! A house! Two floors, old, etc. Sure, there’s a car parked in front but it’s back far enough that with the wide angle on I should be able to…

And just at that moment, the occupant of the house comes home on his bike. No, seriously. I wasn’t doing anything illegal, of course. I was on the sidewalk, taking photographs, but you can appreciate how uncomfortable it got. So there were a few shots with said occupant in the picture, putting his bike inside. Can’t use those:

Oh dear…

Nope. I went to the house next door, but its front was way too close to the street, so that was no good. Nope, it was this one or nothing. I stole back, distracted Joey with something shiny in an alley, flipped the phone to wide-angle and took the shot. Boomshakalaka and thar she blows, a fine specimen of an aged house… complete with treadmill out the front, plastic garbage bins and electricity.

I’ll have to do something about those.