Out(of)line

So it’s finally happened… I’ve taken a step that part of me secretly hoped would never be necessary.

I’ve created an outline for my novel.

It might not seem like a big thing to a lot of people–it probably is even how a lot of folks would start off a project like writing a book. However, it hasn’t ever been my way of approaching it. A lot of that comes from the fact that very often when I’ve started my novels I don’t have all the mechanics/geography/history of the world worked out, and writing the first draft is kind of like exploring a new country.

That’s a lot of what makes this different. I have a “complete” novel… I’m working on completing the gaps I’ve found in the world and don’t really need the wide-open expanse before me to settle in. What I need now is to get a firm grasp on the story-line, how each piece builds into the plot and drags the reader along. The outlining is going well from that vantage point–I’m finding the chapters that just don’t go anywhere, determining what needs to happen instead, and shoring up the smaller gaps in other areas.

Does this mean that my next novel will start out life as an outline in Word? I’m not sure yet, but it just might happen. I do know one thing–whether it’s an outline or just some basic notes, I will be writing a lot more before I sit down to really get going on the next one.

Review: Anansi Boys

I finished reading Anansi Boys over the Christmas break, and have been meaning to write up some thoughts about it since then. To start off with, I’m a big Neil Gaiman fan. I’ve read the Sandman series a couple of times and was profoundly influenced by it during college. Since he’s moved over to writing more narrative fiction, though, nothing has caught me as strongly.

Except Anansi Boys that is! This book finally captured the mythology I associate with Gaiman, and merged it seamlessly with the tone of his writing. Anansi Boys is more comic than some of Gaiman’s other works, and it felt a lot like just talking to him or reading his excellent blog. It had some really funny moments that had me in stitches, and those scenes often were so hilarious because of the characters and the situations that he’d set up–the sort of jokes that you can’t really explain to someone, you just had to be there. His keen eye for detail and strong, unique descriptions also built into the whole atmosphere of the novel.

The story is well-constructed, with little sign-posts along the way that make you think you know where he’s headed. However, many of the things I expected to happen didn’t, and instead the clues turned on their heads into something different and far more satisfying. I don’t typically try to second-guess where an author’s taking me, but he quite deftly set up expectations and then fulfilled them in a way I couldn’t have anticipated.

Highly recommended.

I love blank books

I work with computers all day, do the largest part of my editing work in Word and generally spend a lot of time in front of a glowing screen. Beneath it all, though, I have a deep, abiding love for blank books of just about any variety. Whether it’s an old spiral notebook like I wrote on frequently in junior-high and high-school or the unlined sketchbooks I moved to later on, there’s just something magical about the feeling of paper spread out in front of you and a pen in your hand.

With the recent world and character development work I’ve been doing on my novel, I’ve had the chance to revert back to the world of paper and ink. Some good friends gave me a couple thin notebooks a couple birthdays back, which I’ve been hoarding ever since. I decided that this was finally the time to bust one out. I’m using it as a scratch-pad for details about the world–how it works, history, odd tidbits that I don’t want to forget about. I’m thoroughly enjoying it.

Soon enough, it’ll be back to the word processor and printouts, but for now I’ll luxuriate in using the notebook.

Why read sci-fi?

Why read science fiction?

I’m pretty picky about the books that I read anymore, so I don’t just pick up anything in the science fiction/fantasy section of my local bookstore. Anything I read must have decent characterization, an engaging plot, good writing… but all those things are general and apply to the non-sci-fi works I read too. So what is it about science fiction that keeps me reading (and writing!) it?

I think it boils down to the world creation. Science fiction, regardless of how close to the present day it is, builds a new world for me to learn about, explore and become comfortable with. While the story has to have all the other elements of good writing to keep me involved, it also has to be set in a universe with some interesting differences that I want to learn about.

This is all becoming clear to me as I continue to wrestle with my novel and what I need to do to improve it. As I worked through the different characters, I found a few holes in the world that I thought I’d completed. The more I’ve pressed, the more places I found that I don’t entirely understand and know about myself. Even if not all this information comes through in the text, it just isn’t acceptable to have those sorts of gaps.

It also has a bearing on the plot of the story. As I’m looking at sections that just don’t seem to be working, one thing that I’ve identified is that large tracts of it could happen entirely outside the imaginary world that I’m trying to build. Along with just having some broken pacing and unnecessary detail, the mundane nature of those sections is a huge problem. People will be reading this book to be transported to another place, to dig into a lush, rich world that’s different from their own. Failing to capitalize on those differences is dragging me down.

It’s interesting too, because these are all things that I “know.” I’ve read a lot of sci-fi, read a lot of writing about sci-fi, read a lot about writing fiction, and I could spew off these sorts of rules in my sleep. But when it comes to the page, it isn’t always clear while you’re in the thick of things exactly what’s going on, what wrong turns your taking. Now that I see it, though, it’ll get fixed and, hopefully, won’t happen as badly next time!

Saint Cupcake

Just a short note to recommend a cool place to any Portlanders out there. Saint Cupcake is pretty well exactly what it sounds like–a cupcake shop! A friend brought a bunch of wonderful cupcakes to our holiday soiree yesterday night, and they were great. Beautiful bright colors with sprinkles or coconut… Yummm, cupcakes.

Anyway, if you can check the place out, you definitely should!

Review: Montana 1948

A friend of mine with a more literary bend (he has his MFA and teaches English at a local college) loaned me Montana 1948, by Larry Watson. Not my typical fare, but he recommended it highly and pointed out that it was a quick read (it took maybe three hours).

After reading it, wholeheartedly agree with his assessment–what an excellent book! The prose was lean and tight, with pearls of description that brought rural Montana to life through just a few pen strokes. The core of the story is about family relations and the prejudices of a small town. I was impressed by how little time and text it took Watson to establish the complex relationships between the half dozen different family members. He brought them to life in a direct way that I admire.

As the afterward in the edition I read noted, it is also an excellent example of fiction which addresses a difficult subject–specifically the abuse of Native Americans–without preaching. It comes in to tell a story, builds the story effectively, and in the course of that reveals the injustice of the not-so distant past. Montana 1948 is an excellent novel, and I’m going to be looking up more of Watson’s work in the near future.

A question of character

Stepping back to take the broader view of my story has revealed things I never expected. I backed up to try and find my way around a couple troublesome spots, but in the process unearthed some important motivations for two of the main characters. Some of this existed in very vague form previously, but now I see how I need to crystallize those elements, bring them out clearly for the story to make sense.

I’ve come to these realizations while filling out a character worksheet that one of my critique group partners passed along. To be honest, I haven’t been a huge fan of those types of things before–sometimes it just feels a little too much like “follow step 1, 2 and 3 to a great novel!”–but these questions were definitely worthwhile. Since I don’t recall the exact source, I’m not going to post the whole list, but here’s a couple that have already strengthened my novel tremendously!

  • What is he afraid of? (I knew part of this, but discovered an entirely new fear that dove-tails nicely with the plot of the novel)
  • What polarizing events are in his childhood?
  • What is the inciting incident which starts the story in motion FOR HIM?

I’ve filled out the whole sheet for the protagonist and am starting on the primary “villain.” I’m really excited about the changes that I’ve got to make in the novel now!

CSV RFC

Hmm… all acronyms in a post title. Not sure exactly how I feel about that.

In any case, at work I’m busy creating a file import utility. Part of the requirements was to import Excel generated CSV (comma separated value) files. Seems simple enough, but as it turns out Excel has a number of peculiarities about how it exports that particular format. And nowhere on Microsoft’s sites could I find an exact explanation of what they do export.

This all stirred memories of going through a similar rigmarole a couple years go, searching for a CSV spec that just plain didn’t exist. But now the story had a happier ending. Although it didn’t top out my searches, I did eventually stumble on RFC 4180. This is exactly what I’d been searching for, laying out all the slight peculiarities I’d seen mentioned elsewhere about the format. Plus, now there’s a published document to point third parties when describing the format in which they should send data.

The RFC is only at the Informational stage, but it’s nice to see someone trying to get more standardization around a long-used, poorly-documented format.

One step forward, two steps back…

This December, I’m stepping back for a while from actively editing my novel, Dreams of a Shaper. I’ve been revamping a section of the book, ripping out and rewriting about five chapters worth to try and fix some plot issues. However, having brought the new chapters to my critique group, it was apparent that I’d missed the mark. I thought I knew how to fix the section, but it seems like the changes slipped back into similar problems.

For a couple days I was pretty glum about it, but with some motivation from my lovely wife I’m getting excited again. I’ve realized that I’ve got more development work to do–both on the characters and the world they inhabit. Some things I know in my head haven’t translated onto the page, and the critique group’s “gentle” prodding has revealed areas that are hazy even to me. I thought I had the whole thing wrapped up neat as a bow in my mind, but apparently that wasn’t the case.

I’m don’t know the extent of the plot changes I’ll be making, but I do know that the book will be richer, stronger and more fulfilling (to me and to my readers) because of the time I’m taking to back up, rethink and clarify.

SoapExtension and debugging

On with the technical arcana!

Today I was working on adding e-mail notification to one of our web services when an exception is thrown. We have plenty of other examples of this in our system, but they all involve the global.asax file’s Application_Error(). This is a problem because as is clearly indicated in this MSDN article:

A Web application can be comprised of multiple XML Web services, however the Application_Error event within the Global.asax file cannot be used for global exception handling.

The recommended alternative is to write SoapExtension. The instructions are pretty decent for how to get it set up, but once I’d created the class and made the necessary web.config changes, I couldn’t hit a breakpoint in the ProcessMessage(). Then I stumbled across this article, which buried near the end had my answer:

Debugging a SOAP extension can be a bit different from how you might normally debug a Web service hosted in ASP.NET. ASP.NET uses the DefaultWsdlHelpGenerator.aspx page as configured in machine.config to display test pages for your Web services. These test pages can be used to invoke your WebMethods, but the test harness does this by making HTTP POST requests to the server rather than HTTP SOAP requests. SoapExtensions only work with SOAP requests, and thus any requests to your Web service made using the default test page will result in your extensions not being used.

I had been using the test pages, and as soon as I changed over to hitting the web service through a SOAP call, all was well with the world.