Me in my Halloween costume this year. I won second place at the costume contest at work!

I figured, hey, I’m writing about music pirates, why not be a music pirate? (Thanks to Sam for the use of his iPod.)

Not a music-pirate monk, though. Although I suppose I could claim that the bandanna covers my tonsure…

Less than 24 hours to NaNo…

I can feel my sanity fraying already.

I did decide to start through the Snowflake Method for plotting my novel, and after a couple hours of work, I was hooked. It could use another month or two of work before I start writing, but, oh well. It’s already fleshed out much more than I would have dreamed; I’m up to three pages of outline (single-spaced). I even figured out what the third crisis was going to be (though, truth be told, I just ripped something off from a Final Fantasy game I’d been playing).

I especially liked thinking about the story from each character’s point of view, and thinking about how each character changes, not just the lead. I think that’ll add a tremendous amount of richness to the story and characters.

Still not quite sure if I want to use the busty lesbian pirate ninjas, though they’re presenting a compelling case.

Anyway, I should quit rambling and get some sleep. I’ll need it. Especially if I’m going to install Linux and get the second computer up and running tomorrow night, so Jennie can write her novel too.

The Snowflake Method: novel writing goes fractal

I love the NaNo forums. They’re such a good way to avoid writing a novel.

They’re also a good way to avoid sleeping, and get tips on novel-writing in the process. In a thread about outlining, several people recommended the Snowflake Method. It looks pretty intriguing: start with a one-sentence summary of your story, and then go through several more passes, adding more detail each time, until you’ve got a novel.1

I’d try it this year, except that it’s got several weeks worth of planning before you start writing your first draft, and I don’t have several weeks between now and November. It’s frightening enough to think that I have less than a week, and still no character sketch for the confidant or the romantic interest. (Still stuck trying to write Section Sheet 4.)

Maybe next year. Duly filed away in my blog for future reference.

1 The geeks in the audience will recognize fractals and recursion at work. The non-geeks will have no idea what this footnote is talking about.

This year in NaNoWriMo

As you can probably tell from the word-count widget in my sidebar, I’m planning to do NaNoWriMo again this year. (For any who haven’t heard of it, that means I’m going to be writing a novel. In a month. Yes, I am insane, thanks for asking.)

My first NaNo novel (“The Littlest Evil Overlord“) was humorous fantasy, and was decent (for a novel written in a month). The second one (“Here Be Dragons“) was somewhat darker urban fantasy, and it sucked. In retrospect, and having read a few more books about writing, I think that a big reason for this is that I don’t read urban fantasy. I read humorous fantasy, like Discworld novels. So that’s what I’m going to write this year.

The NaNo rules allow you to put together as much of a plot outline as you want before the beginning of November (though actual prose is punishable by death), so I’m diligently working on my outline every now and then. I figure I’ve already done the “make it up as you go” thing in previous years, so this time I’ll try “plan ahead” and see how I like it.

This year’s topic: Pirates.

Pirate monks, to be exact.

(I mean, think about it; it makes sense. Back before the printing press, what did monks do with their time? They copied books. Illuminated Bibles and all that. So what do they do now? They copy music. Pirates, arr. Sailing under the skull and cross.)

Of course, there are also going to be the evil pirate ninjas. And the princess who just dyed her hair purple. And you know there’s gotta be a dragon in there somewhere.

I will not, however, be putting my novel on the public Web this year. I’m toying with the idea of trying to get it published for money if it doesn’t suck too bad (denial springs eternal), and that means not “publishing” it online first. But that doesn’t mean I can’t share it with a few people. So if you’re curious about what the hell I’ll be coming up with, drop me a line via my contact form. I’ll be writing the novel on Google Docs, which makes it easy to share a document with a group of people. Come One! Come All! …well, okay, not all; “not all” is kinda the point.

So reserve your place in line. See a legend in the making.

Okay, enough procrastinating. Back to the character sketches…

(Someone else’s) open-source Delphi parser

Alert reader David Champion told me that there’s another open-source Delphi parser out there. It’s called castaliadelphiparser, and is, as I understand it, the actual parser that’s used in the Castalia add-in for the Delphi IDE. (We’ve got the Borland Edition of their add-in installed on a few of our computers at work. It’s pretty nice, and I need to get around to sending them some feature requests that would make the full version worth buying.)

Anyway, if anyone plays around with their parser, I’d love to hear how well it works, so please post comments here and let me know. If it can parse the entire Delphi language, including conditional compilation, typed constants, records with methods, nested types, class variables, strict private/protected, etc., then it’s way ahead of my parser. (If it can’t do all that yet, then you can take the italics off the “way”.)

If anyone’s wondering about the status of my parser… I’ve been making progress, but I probably won’t make any more progress between now and the end of November, since I’ll be spending the whole month of November writing a novel. And I can’t open-source what I’ve got because I’m still waiting on corporate red tape. (My employer owns my brain unless otherwise specified, but I’m tantalizingly close to getting them to otherwise specify.)

Webcomic to watch: El Goonish Shive

I discovered El Goonish Shive over the weekend. It’s a webcomic featuring an alien-hybrid were-squirrel, women with giant hammers, anime-style martial arts, and a gender-bending transformation gun. And also a demonic duck of some sort, which I just may have to feature in my NaNo novel this year. (The “Duck senses… tingling!” strip just about made me fall off my chair.)

There’s a New Reader Guide, which is probably a fine place to start reading. The site is a bit confusing, as there are three separate archives: EGS (the main comic), EGS:NP (off-topic stuff), and FILLER (other off-topic stuff). They mostly have the same characters, but the main strip has the most continuity. The best place to start (after the New Reader Guide) is with the first EGS strip. Be warned that it will take a while to dig through the archives, as the strip started in 2002 and was daily for a while.

Go. Enjoy. And if you don’t happen to like it, then… hey, is that a demonic duck of some sort?

Console out from a non-console app

We found out something interesting yesterday: Windows applications can write to STDOUT.

Well, not when you’re using Delphi. If a Delphi/Win32 app tries to WriteLn(), it will get an exception, saying, in effect, “You idiot, you don’t have a console to write to!”

On the other hand, if you’re coding in C# (or even Delphi for .NET), and you do a Console.WriteLine (or Console.Out.WriteLine or Console.Error.WriteLine), you don’t get an error. I had always assumed that was just a convenience, so you could put debug output into your code, and then not have to remove it when you compile that code into a Windows app. I had always assumed that Console.Out went to Stream.Null when you were in a Windows application.

Nope. Go try it. Go into Visual Studio and create a new WinForms app. Make a button-click event that does Console.Out(). Build. Then go to the command prompt and type

WindowsApplication1 >out.txt

Run it. Click the button. Exit. And look at out.txt. Your output will be there. Cool, huh?

(Later I’ll blog about how we found this, and what we’re using it for. Unless Brian or Sam beats me to it.)